kernel-fxtec-pro1x/drivers/ata
David Milburn 9ae794ac5e ahci: do not request irq for dummy port
System may crash in ahci_hw_interrupt() or ahci_thread_fn() when
accessing the interrupt status in a port's private_data if the port is
actually a DUMMY port.

00:1f.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller

<snip console output for linux-3.15-rc1>
[    9.352080] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x1 impl SATA mode
[    9.352084] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ccc
[    9.368155] Console: switching to colour frame buffer device 128x48
[    9.439759] mgag200 0000:11:00.0: fb0: mgadrmfb frame buffer device
[    9.446765] mgag200 0000:11:00.0: registered panic notifier
[    9.470166] scsi1 : ahci
[    9.479166] scsi2 : ahci
[    9.488172] scsi3 : ahci
[    9.497174] scsi4 : ahci
[    9.506175] scsi5 : ahci
[    9.515174] scsi6 : ahci
[    9.518181] ata1: SATA max UDMA/133 abar m2048@0x95c00000 port 0x95c00100 irq 91
[    9.526448] ata2: DUMMY
[    9.529182] ata3: DUMMY
[    9.531916] ata4: DUMMY
[    9.534650] ata5: DUMMY
[    9.537382] ata6: DUMMY
[    9.576196] [drm] Initialized mgag200 1.0.0 20110418 for 0000:11:00.0 on minor 0
[    9.845257] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    9.865161] ata1.00: ATAPI: Optiarc DVD RW AD-7580S, FX04, max UDMA/100
[    9.891407] ata1.00: configured for UDMA/100
[    9.900525] scsi 1:0:0:0: CD-ROM            Optiarc  DVD RW AD-7580S  FX04 PQ: 0 ANSI: 5
[   10.247399] iTCO_vendor_support: vendor-support=0
[   10.261572] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   10.269764] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[   10.301932] sd 0:2:0:0: [sda] 570310656 512-byte logical blocks: (291 GB/271 GiB)
[   10.317085] sd 0:2:0:0: [sda] Write Protect is off
[   10.328326] sd 0:2:0:0: [sda] Write cache: disabled, read cache: disabled, supports DPO and FUA
[   10.375452] BUG: unable to handle kernel NULL pointer dereference at 000000000000003c
[   10.384217] IP: [<ffffffffa0133df0>] ahci_hw_interrupt+0x100/0x130 [libahci]
[   10.392101] PGD 0
[   10.394353] Oops: 0000 [#1] SMP
[   10.397978] Modules linked in: sr_mod(+) cdrom sd_mod iTCO_wdt crc_t10dif iTCO_vendor_support crct10dif_common ahci libahci libata lpc_ich mfd_core mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper ttm drm i2c_core megaraid_sas dm_mirror dm_region_hash
dm_log dm_mod
[   10.426499] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc1 #1
[   10.433495] Hardware name: QCI QSSC-S4R/QSSC-S4R, BIOS QSSC-S4R.QCI.01.00.S013.032920111005 03/29/2011
[   10.443886] task: ffffffff81906460 ti: ffffffff818f0000 task.ti: ffffffff818f0000
[   10.452239] RIP: 0010:[<ffffffffa0133df0>]  [<ffffffffa0133df0>] ahci_hw_interrupt+0x100/0x130 [libahci]
[   10.462838] RSP: 0018:ffff880033c03d98  EFLAGS: 00010046
[   10.468767] RAX: 0000000000a400a4 RBX: ffff880029a6bc18 RCX: 00000000fffffffa
[   10.476731] RDX: 00000000000000a4 RSI: ffff880029bb0000 RDI: ffff880029a6bc18
[   10.484696] RBP: ffff880033c03dc8 R08: 0000000000000000 R09: ffff88002f800490
[   10.492661] R10: 0000000000000000 R11: 0000000000000005 R12: 0000000000000000
[   10.500625] R13: ffff880029a6bd98 R14: 0000000000000000 R15: ffffc90000194000
[   10.508590] FS:  0000000000000000(0000) GS:ffff880033c00000(0000) knlGS:0000000000000000
[   10.517623] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   10.524035] CR2: 000000000000003c CR3: 00000000328ff000 CR4: 00000000000007b0
[   10.531999] Stack:
[   10.534241]  0000000000000017 ffff880031ba7d00 000000000000005c ffff880031ba7d00
[   10.542535]  0000000000000000 000000000000005c ffff880033c03e10 ffffffff810c2a1e
[   10.550827]  ffff880031ae2900 000000008108fb4f ffff880031ae2900 ffff880031ae2984
[   10.559121] Call Trace:
[   10.561849]  <IRQ>
[   10.563994]  [<ffffffff810c2a1e>] handle_irq_event_percpu+0x3e/0x1a0
[   10.571309]  [<ffffffff810c2bbd>] handle_irq_event+0x3d/0x60
[   10.577631]  [<ffffffff810c4fdd>] try_one_irq.isra.6+0x8d/0xf0
[   10.584142]  [<ffffffff810c5313>] note_interrupt+0x173/0x1f0
[   10.590460]  [<ffffffff810c2a8e>] handle_irq_event_percpu+0xae/0x1a0
[   10.597554]  [<ffffffff810c2bbd>] handle_irq_event+0x3d/0x60
[   10.603872]  [<ffffffff810c5727>] handle_edge_irq+0x77/0x130
[   10.610199]  [<ffffffff81014b8f>] handle_irq+0xbf/0x150
[   10.616040]  [<ffffffff8109ff4e>] ? vtime_account_idle+0xe/0x50
[   10.622654]  [<ffffffff815fca1a>] ? atomic_notifier_call_chain+0x1a/0x20
[   10.630140]  [<ffffffff816038cf>] do_IRQ+0x4f/0xf0
[   10.635490]  [<ffffffff815f8aed>] common_interrupt+0x6d/0x6d
[   10.641805]  <EOI>
[   10.643950]  [<ffffffff8149ca9f>] ? cpuidle_enter_state+0x4f/0xc0
[   10.650972]  [<ffffffff8149ca98>] ? cpuidle_enter_state+0x48/0xc0
[   10.657775]  [<ffffffff8149cb47>] cpuidle_enter+0x17/0x20
[   10.663807]  [<ffffffff810b0070>] cpu_startup_entry+0x2c0/0x3d0
[   10.670423]  [<ffffffff815dfcc7>] rest_init+0x77/0x80
[   10.676065]  [<ffffffff81a60f47>] start_kernel+0x40f/0x41a
[   10.682190]  [<ffffffff81a60941>] ? repair_env_string+0x5c/0x5c
[   10.688799]  [<ffffffff81a60120>] ? early_idt_handlers+0x120/0x120
[   10.695699]  [<ffffffff81a605ee>] x86_64_start_reservations+0x2a/0x2c
[   10.702889]  [<ffffffff81a60733>] x86_64_start_kernel+0x143/0x152
[   10.709689] Code: a0 fc ff 85 c0 8b 4d d4 74 c3 48 8b 7b 08 89 ca 48 c7 c6 60 66 13 a0 31 c0 e8 9d 70 28 e1 8b 4d d4 eb aa 0f 1f 84 00 00 00 00 00 <45> 8b 64 24 3c 48 89 df e8 23 47 4c e1 41 83 fc 01 19 c0 48 83
[   10.731470] RIP  [<ffffffffa0133df0>] ahci_hw_interrupt+0x100/0x130 [libahci]
[   10.739441]  RSP <ffff880033c03d98>
[   10.743333] CR2: 000000000000003c
[   10.747032] ---[ end trace b6e82636970e2690 ]---
[   10.760190] Kernel panic - not syncing: Fatal exception in interrupt
[   10.767291] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)

Cc: Alexander Gordeev <agordeev@redhat.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-of-by: David Milburn <dmilburn@redhat.com>
Fixes: 5ca72c4f7c ("AHCI: Support multiple MSIs")
2014-04-16 12:51:52 -04:00
..
acard-ahci.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
ahci.c ahci: do not request irq for dummy port 2014-04-16 12:51:52 -04:00
ahci.h ata: ahci_platform: runtime resume the device before use 2014-02-22 15:35:43 -05:00
ahci_da850.c ata: add new-style AHCI platform driver for DaVinci DA850 AHCI controller 2014-03-25 15:17:13 -04:00
ahci_imx.c ahci_imx: Put #ifdef CONFIG_PM_SLEEP around suspend / resume functions 2014-03-06 14:31:13 -05:00
ahci_platform.c ata: move library code from ahci_platform.c to libahci_platform.c 2014-03-25 15:17:13 -04:00
ahci_st.c ata: ahci_st: remove deprecated struct ahci_platform_data usage 2014-03-14 14:26:29 -04:00
ahci_sunxi.c ata: ahci_sunxi: fix code formatting 2014-03-17 10:46:54 -04:00
ahci_xgene.c ata: Fix compiler warning with APM X-Gene host controller driver 2014-03-18 16:01:04 -04:00
ata_generic.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
ata_piix.c ata_piix: minor typo and a printk fix 2013-10-13 16:17:48 -04:00
Kconfig ata: fix i.MX AHCI driver dependencies 2014-04-08 08:31:48 -04:00
libahci.c ata: remove superfluous casts 2014-03-26 12:36:53 -04:00
libahci_platform.c ata: move library code from ahci_platform.c to libahci_platform.c 2014-03-25 15:17:13 -04:00
libata-acpi.c ACPI and power management updates for 3.15-rc1 2014-04-01 12:48:54 -07:00
libata-core.c libata: Update queued trim blacklist for M5x0 drives 2014-04-02 13:10:21 -04:00
libata-eh.c libata, libsas: kill pm_result and related cleanup 2014-03-18 16:08:38 -04:00
libata-pmp.c ata: enable quirk from jmicron JMB350 for JMB394 2014-01-31 07:05:44 -05:00
libata-scsi.c Merge branch 'for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-01-21 18:16:08 -08:00
libata-sff.c libata: update "Maintained by:" tags 2013-05-14 11:13:04 -07:00
libata-transport.c libata: Fix display of sata speed 2013-10-27 07:43:25 -04:00
libata-transport.h
libata-zpodd.c libata: zpodd: eliminate odd_can_poweroff 2014-03-14 11:23:47 -04:00
libata.h ATA / ACPI: remove power dependent device handling 2013-10-17 15:38:53 +02:00
Makefile ata: add new-style AHCI platform driver for DaVinci DA850 AHCI controller 2014-03-25 15:17:13 -04:00
pata_acpi.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ali.c ata: use pci_get_drvdata() 2013-06-02 22:22:03 -07:00
pata_amd.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_arasan_cf.c pata_arasan_cf: fix ata_host_activate() failure handling 2014-04-14 13:50:03 -04:00
pata_artop.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_at32.c ata: use dev_get_platdata() 2013-07-30 08:59:24 -04:00
pata_at91.c pata_at91: fix ata_host_activate() failure handling 2014-04-02 13:17:31 -04:00
pata_atiixp.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_atp867x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_bf54x.c ata: use platform_{get,set}_drvdata() 2013-05-24 10:26:13 +09:00
pata_cmd64x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cmd640.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cs5520.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cs5530.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cs5535.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cs5536.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_cypress.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_efar.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ep93xx.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt3x2n.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt3x3.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt37x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt366.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_icside.c Drivers: ata: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pata_imx.c Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
pata_isapnp.c pata_isapnp: Don't use invalid I/O ports 2013-10-07 15:17:32 -04:00
pata_it821x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_it8213.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ixp4xx_cf.c DMA-API: others: use dma_set_coherent_mask() 2013-10-31 14:49:07 +00:00
pata_jmicron.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_legacy.c pata_legacy: Remove dead code 2014-03-11 08:30:53 -04:00
pata_macio.c ata: use pci_get_drvdata() 2013-06-02 22:22:03 -07:00
pata_marvell.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_mpc52xx.c ata: use platform_{get,set}_drvdata() 2013-05-24 10:26:13 +09:00
pata_mpiix.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_netcell.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ninja32.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ns87410.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_ns87415.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_octeon_cf.c DMA-API: ata: pata_octeon_cf: convert to use dma_coerce_mask_and_coherent() 2013-10-31 14:48:49 +00:00
pata_of_platform.c Drivers: ata: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pata_oldpiix.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_opti.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_optidma.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_palmld.c Drivers: ata: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pata_pcmcia.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_pdc202xx_old.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_pdc2027x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_piccolo.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_platform.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_pxa.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_radisys.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_rb532_cf.c Drivers: ata: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pata_rdc.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_rz1000.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_samsung_cf.c pata_samsung_cf: fix ata_host_activate() failure handling 2014-04-15 08:48:56 -04:00
pata_sc1200.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_scc.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_sch.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_serverworks.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_sil680.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_sis.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_sl82c105.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_triflex.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_via.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pdc_adma.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_dwc_460ex.c ata: remove superfluous casts 2014-03-26 12:36:53 -04:00
sata_fsl.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
sata_highbank.c ata: sata_highbank: remove superfluous cast 2014-03-26 11:42:01 -04:00
sata_inic162x.c libata: make it clear that sata_inic162x is experimental 2013-07-22 17:11:14 -04:00
sata_mv.c Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-02-20 12:04:15 -08:00
sata_nv.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_promise.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_promise.h
sata_qstor.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_rcar.c sata_rcar: Add R-Car Gen2 SATA PHY support 2013-11-29 15:41:17 -05:00
sata_sil.c Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
sata_sil24.c ata: use pci_get_drvdata() 2013-06-02 22:22:03 -07:00
sata_sis.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_svw.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_sx4.c ata: remove superfluous casts 2014-03-26 12:36:53 -04:00
sata_uli.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_via.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_vsc.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sis.h