On 2/24/2016 8:04 AM, Rafael J. Wysocki wrote: > Hi, > > On Tue, Feb 16, 2016 at 3:15 AM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote: >> On 2/15/2016 7:26 PM, Rafael J. Wysocki wrote: >>> On Mon, Feb 15, 2016 at 5:41 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> >>> >>> 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). > OK, I'll post a new version of the removed patch with this included. We can discuss on the list if there is a better way of doing things. > Thanks, > Rafael > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Sinan Kaya Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html