• Ondrej Zary's avatar
    sata_via: Enable hotplug only on VT6421 · 3cf86452
    Ondrej Zary authored
    Commit 57e5568f ("sata_via: Implement hotplug for VT6421") adds
    hotplug IRQ handler for VT6421 but enables hotplug on all chips. This
    is a bug because it causes "irq xx: nobody cared" error on VT6420 when
    hot-(un)plugging a drive:
    
    [  381.839948] irq 20: nobody cared (try booting with the "irqpoll" option)
    [  381.840014] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.10.0-rc5+ #148
    [  381.840066] Hardware name:          P4VM800/P4VM800, BIOS P1.60 05/29/2006
    [  381.840117] Call Trace:
    [  381.840167]  <IRQ>
    [  381.840225]  ? dump_stack+0x44/0x58
    [  381.840278]  ? __report_bad_irq+0x14/0x97
    [  381.840327]  ? handle_edge_irq+0xa5/0xa5
    [  381.840376]  ? note_interrupt+0x155/0x1cf
    [  381.840426]  ? handle_edge_irq+0xa5/0xa5
    [  381.840474]  ? handle_irq_event_percpu+0x32/0x38
    [  381.840524]  ? handle_irq_event+0x1f/0x38
    [  381.840573]  ? handle_fasteoi_irq+0x69/0xb8
    [  381.840625]  ? handle_irq+0x4f/0x5d
    [  381.840672]  </IRQ>
    [  381.840726]  ? do_IRQ+0x2e/0x8b
    [  381.840782]  ? common_interrupt+0x2c/0x34
    [  381.840836]  ? mwait_idle+0x60/0x82
    [  381.840892]  ? arch_cpu_idle+0x6/0x7
    [  381.840949]  ? do_idle+0x96/0x18e
    [  381.841002]  ? cpu_startup_entry+0x16/0x1a
    [  381.841057]  ? start_kernel+0x319/0x31c
    [  381.841111]  ? startup_32_smp+0x166/0x168
    [  381.841165] handlers:
    [  381.841219] [<c12a7263>] ata_bmdma_interrupt
    [  381.841274] Disabling IRQ #20
    
    Seems that VT6420 can do hotplug too (there's no documentation) but the
    comments say that SCR register access (required for detecting hotplug
    events) can cause problems on these chips.
    
    For now, just keep hotplug disabled on anything other than VT6421.
    Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    3cf86452
sata_via.c 20.6 KB