firewire: ohci: do not bind to Pinnacle cards, prevent panic
A message that is not in the archive (sent off-list or not yet received): 20110604002938.78c85881@stein
A message that is not in the archive (sent off-list or not yet received): 20110604010625.1a37638e@stein
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): 20110612145303.2099aa81@stein
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): 20110612210111.3e979131@stein
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): 20110709235410.08004e5d@stein
PATCH 1/1 firewire: ohci: do not bind to Pinnacle cards, prevent panic
When firewire-ohci is bound to a Pinnacle MovieBoard, eventually a "Register access failure" is logged and an interrupt storm or a kernel panic happens. https://bugzilla.kernel.org/show_bug.cgi?id=36622
Until this is sorted out (if that is going to succeed at all), let's just prevent firewire-ohci from touching these devices.
--- drivers/firewire/ohci.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/firewire/ohci.c +6 -0
@@ -263,6 +263,7 @@ static char ohci_driver_name[] = KBUILD_#define PCI_DEVICE_ID_AGERE_FW643 0x5901#define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380#define PCI_DEVICE_ID_TI_TSB12LV22 0x8009 +#define PCI_VENDOR_ID_PINNACLE_SYSTEMS 0x11bd#define QUIRK_CYCLE_TIMER 1#define QUIRK_RESET_PACKET 2
@@ -3202,6 +3203,11 @@ static int __devinit pci_probe(struct pcint i, err;size_t size; +if (dev->vendor ==PCI_VENDOR_ID_PINNACLE_SYSTEMS ) { +dev_err (&dev->dev,"Pinnacle MovieBoard not yet supported\n" ); +return -ENOSYS ; + } + ohci =kzalloc (sizeof (*ohci),GFP_KERNEL );if (ohci ==NULL ) { err = -ENOMEM ;
Signature · 3 lines
Stefan Richter -=====-==-== -=== -=-=- http://arcgraph.de/sr/
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
When firewire-ohci is bound to a Pinnacle MovieBoard, eventually a "Register access failure" is logged and an interrupt storm or a kernel panic happens. https://bugzilla.kernel.org/show_bug.cgi?id=36622
Until this is sorted out (if that is going to succeed at all), let's just prevent firewire-ohci from touching these devices.
This device with link layer PCI IDs 11bd:0015 and 1394 PHY IDs 00000e:086613 is apparently a Fujitsu MB86613 --- hence the PHY IDs. Therefore, blacklist the MB86613 too (PCI IDs 10cf:200c). We only check the vendor ID because there is no other Fujitsu OHCI-1394 PCI device known besides this one.
---
Supersedes patch "firewire: ohci: do not bind to Pinnacle cards, prevent panic"
drivers/firewire/ohci.c | 8 ++++++++ 1 file changed, 8 insertions(+)
drivers/firewire/ohci.c +8 -0
@@ -260,6 +260,8 @@ static inline struct fw_ohci *fw_ohci(ststatic char ohci_driver_name[] =KBUILD_MODNAME ; +#define PCI_VENDOR_ID_FUJITSU 0x10cf +#define PCI_VENDOR_ID_PINNACLE_SYSTEMS 0x11bd#define PCI_DEVICE_ID_AGERE_FW643 0x5901#define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380#define PCI_DEVICE_ID_TI_TSB12LV22 0x8009
@@ -3202,6 +3204,12 @@ static int __devinit pci_probe(struct pcint i, err;size_t size; +if (dev->vendor ==PCI_VENDOR_ID_FUJITSU || + dev->vendor ==PCI_VENDOR_ID_PINNACLE_SYSTEMS ) { +dev_err (&dev->dev,"Controller type is not yet supported\n" ); +return -ENOSYS ; + } + ohci =kzalloc (sizeof (*ohci),GFP_KERNEL );if (ohci ==NULL ) { err = -ENOMEM ;
Signature · 3 lines
Stefan Richter -=====-==-== -=== -=-== http://arcgraph.de/sr/
Re: [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
Quoted 3 lines · On Jul 11 Stefan Richter wrote:
This device with link layer PCI IDs 11bd:0015 and 1394 PHY IDs 00000e:086613 is apparently a Fujitsu MB86613 --- hence the PHY IDs. Therefore, blacklist the MB86613 too
On the other hand, maybe the original MB86613 does not exhibit the issue. The Pinnacle device is combined with another device or function, hence not identical with MB86613:
0c:07.0 Multimedia controller [0480]: Pinnacle Systems Inc. AV/DV Studio Capture Card [11bd:bede]
Subsystem: Pinnacle Systems Inc. Device [11bd:0023]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort+ <MAbort+ >SERR- <PERR- INTx-
Latency: 64 (2000ns min, 4000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fb7ff000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
0c:07.1 FireWire (IEEE 1394) [0c00]: Pinnacle Systems Inc. Device [11bd:0015] (prog-if 10 [OHCI])
Subsystem: Pinnacle Systems Inc. Device [11bd:0023]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (8000ns min, 20000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fb7fe800 (32-bit, non-prefetchable) [size=2K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: firewire-ohci
BTW, I dimly remember hear-say about Fujitsu controllers, particularly because they are among the few (or the only ones?) that featured a programmable PhysicalUpperBound. So there was at least one Linux users who had such a controller; perhaps as onboard controllers of a Fujitsu notebook. (Which has got a shorter service life expectancy than a PCI card...)
Signature · 3 lines
Stefan Richter -=====-==-== -=== -=-== http://arcgraph.de/sr/
Re: [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
In reply to Stefan RichterI saw these mails just now and it's late. I will check my machine and answer tomorrow
Best regards
Bjørn
Den 11. juli 2011 01:24, skrev Stefan Richter:
Quoted 49 lines
When firewire-ohci is bound to a Pinnacle MovieBoard, eventually a "Register access failure" is logged and an interrupt storm or a kernel panic happens. https://bugzilla.kernel.org/show_bug.cgi?id=36622
Until this is sorted out (if that is going to succeed at all), let's just prevent firewire-ohci from touching these devices.
This device with link layer PCI IDs 11bd:0015 and 1394 PHY IDs 00000e:086613 is apparently a Fujitsu MB86613 --- hence the PHY IDs. Therefore, blacklist the MB86613 too (PCI IDs 10cf:200c). We only check the vendor ID because there is no other Fujitsu OHCI-1394 PCI device known besides this one.
Signed-off-by Stefan Richter<[email protected]>Cc <[email protected]>---
Supersedes patch "firewire: ohci: do not bind to Pinnacle cards, prevent panic"drivers/firewire/ohci.c | 8 ++++++++ 1 file changed, 8 insertions(+)Index:
b/drivers/firewire/ohci.c
===================================================================drivers/firewire/ohci.c +8
-0@@ -260,6 +260,8 @@ static inline struct fw_ohci *fw_ohci(ststatic char ohci_driver_name[] =KBUILD_MODNAME ; +#define PCI_VENDOR_ID_FUJITSU 0x10cf +#define PCI_VENDOR_ID_PINNACLE_SYSTEMS 0x11bd#define PCI_DEVICE_ID_AGERE_FW643 0x5901#define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380#define PCI_DEVICE_ID_TI_TSB12LV22 0x8009@@ -3202,6 +3204,12 @@ static int __devinit pci_probe(struct pcint i, err;size_t size; +if (dev->vendor ==PCI_VENDOR_ID_FUJITSU || + dev->vendor ==PCI_VENDOR_ID_PINNACLE_SYSTEMS ) { +dev_err (&dev->dev,"Controller type is not yet supported\n" ); +return -ENOSYS ; + } + ohci =kzalloc (sizeof (*ohci),GFP_KERNEL );if (ohci ==NULL ) { err = -ENOMEM ;