Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1341949
| From | "Rafael J. Wysocki" <rafael@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] acpi, pci, irq: account for early penalty assignment |
| Date | 2016-02-24 14:10 +0100 |
| Message-ID | <r5Hmy-4ZE-11@gated-at.bofh.it> (permalink) |
| References | <r2uvw-3zL-17@gated-at.bofh.it> <r2BGG-8tA-5@gated-at.bofh.it> <r2Dp9-1gU-21@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi, On Tue, Feb 16, 2016 at 3:15 AM, Sinan Kaya <okaya@codeaurora.org> wrote: > On 2/15/2016 7:26 PM, Rafael J. Wysocki wrote: >> On Mon, Feb 15, 2016 at 5:41 PM, Sinan Kaya <okaya@codeaurora.org> wrote: >>> A crash has been observed when assigning penalty on x86 systems. >>> >>> It looks like this problem happens on x86 platforms with IOAPIC and an SCI >>> interrupt override in the ACPI table with interrupt number greater than >>> 16. (22 in this example) >>> >>> The bug has been introduced by "ACPI, PCI, irq: remove interrupt count >>> restriction" commit. The code was using kmalloc to resize the interrupt >>> list. In this use case, the set penalty call is coming from early phase >>> and the heap is not initialized yet. >>> >>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 >>> IP: [<ffffffff811e8b9d>] kmem_cache_alloc_trace+0xad/0x1c0 >>> PGD 0 >>> Oops: 0000 [#1] SMP >>> Modules linked in: >>> CPU: 0 PID: 0 Comm: swapper Not tainted 4.5.0-rc2Feb-3_RK #1 >>> Hardware name: HP Superdome2 16s, BIOS Bundle: 007.006.000 SFW: 033.162.000 >>> 10/30/2015 >>> [<ffffffff813bc190>] acpi_irq_set_penalty+0x60/0x8e >>> [<ffffffff813bc1df>] acpi_irq_add_penalty+0x21/0x26 >>> [<ffffffff813bc76d>] acpi_penalize_sci_irq+0x25/0x28 >>> [<ffffffff81b8260d>] acpi_sci_ioapic_setup+0x68/0x78 >>> [<ffffffff81b830fc>] acpi_boot_init+0x2cc/0x533 >>> [<ffffffff810677c8>] ? set_pte_vaddr_pud+0x48/0x50 >>> [<ffffffff81b828cf>] ? acpi_parse_x2apic+0x77/0x77 >>> [<ffffffff81b82858>] ? dmi_ignore_irq0_timer_override+0x30/0x30 >>> [<ffffffff81b77c1e>] setup_arch+0xc24/0xce9 >>> [<ffffffff81b6e120>] ? early_idt_handler_array+0x120/0x120 >>> [<ffffffff81b6ed94>] start_kernel+0xfc/0x506 >>> [<ffffffff81b6e120>] ? early_idt_handler_array+0x120/0x120 >>> [<ffffffff81b6e120>] ? early_idt_handler_array+0x120/0x120 >>> [<ffffffff81b6e5ee>] x86_64_start_reservations+0x2a/0x2c >>> [<ffffffff81b6e73c>] x86_64_start_kernel+0x14c/0x16f >>> >>> Besides from the use case above, there is one more situation where >>> set_penalty is being called from the init context like. There is support >>> for setting the penalty through kernel command line. >>> >>> Adding support to be called from early context for limited number of >>> interrupts. >>> >>> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> >> >> This looks somewhat hackish to me to be honest. > I know. So after an e-mail exchange with Bjorn I've decided to revert the problematic commit for 4.5, so please submit it again with the fix folded in (or a better way to address the issue if you have one). Thanks, Rafael
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH] acpi, pci, irq: account for early penalty assignment "Rafael J. Wysocki" <rafael@kernel.org> - 2016-02-24 14:10 +0100 Re: [PATCH] acpi, pci, irq: account for early penalty assignment Sinan Kaya <okaya@codeaurora.org> - 2016-02-24 15:50 +0100
csiph-web