* [PATCH] firewire: ohci: do not bind to Pinnacle cards, prevent panic
[not found] ` <20110709235410.08004e5d@stein>
@ 2011-07-09 22:23 ` Stefan Richter
[not found] ` <4E1A161D.1050304@ladisch.de>
1 sibling, 0 replies; 4+ messages in thread
From: Stefan Richter @ 2011-07-09 22:23 UTC (permalink / raw)
To: linux1394-devel; +Cc: linux-kernel
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.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: <stable@kernel.org>
---
drivers/firewire/ohci.c | 6 ++++++
1 file changed, 6 insertions(+)
Index: b/drivers/firewire/ohci.c
===================================================================
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -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 pc
int 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;
--
Stefan Richter
-=====-==-== -=== -=-=-
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
[not found] ` <4E1A161D.1050304@ladisch.de>
@ 2011-07-10 23:24 ` Stefan Richter
2011-07-10 23:30 ` Bjørn Forbord
2011-07-10 23:50 ` Stefan Richter
0 siblings, 2 replies; 4+ messages in thread
From: Stefan Richter @ 2011-07-10 23:24 UTC (permalink / raw)
To: Clemens Ladisch
Cc: Joel bourrigaud, Bjørn Forbord, linux1394-devel,
linux-kernel
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 <stefanr@s5r6.in-berlin.de>
Cc: <stable@kernel.org>
---
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
===================================================================
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -260,6 +260,8 @@ static inline struct fw_ohci *fw_ohci(st
static 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 pc
int 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;
--
Stefan Richter
-=====-==-== -=== -=-==
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
2011-07-10 23:24 ` [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, " Stefan Richter
@ 2011-07-10 23:30 ` Bjørn Forbord
2011-07-10 23:50 ` Stefan Richter
1 sibling, 0 replies; 4+ messages in thread
From: Bjørn Forbord @ 2011-07-10 23:30 UTC (permalink / raw)
To: Stefan Richter
Cc: Clemens Ladisch, Joel bourrigaud, linux1394-devel, linux-kernel
I 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:
> 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<stefanr@s5r6.in-berlin.de>
> Cc:<stable@kernel.org>
> ---
> 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
> ===================================================================
> --- a/drivers/firewire/ohci.c
> +++ b/drivers/firewire/ohci.c
> @@ -260,6 +260,8 @@ static inline struct fw_ohci *fw_ohci(st
>
> static 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 pc
> int 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;
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, prevent panic
2011-07-10 23:24 ` [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, " Stefan Richter
2011-07-10 23:30 ` Bjørn Forbord
@ 2011-07-10 23:50 ` Stefan Richter
1 sibling, 0 replies; 4+ messages in thread
From: Stefan Richter @ 2011-07-10 23:50 UTC (permalink / raw)
To: Clemens Ladisch
Cc: Joel bourrigaud, Bjørn Forbord, linux1394-devel,
linux-kernel
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...)
--
Stefan Richter
-=====-==-== -=== -=-==
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-07-11 0:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20110604002938.78c85881@stein>
[not found] ` <20110604010625.1a37638e@stein>
[not found] ` <4DEA697A.1090104@bourrigaud.info>
[not found] ` <20110612145303.2099aa81@stein>
[not found] ` <4DF4FF4F.4020607@bourrigaud.info>
[not found] ` <20110612210111.3e979131@stein>
[not found] ` <4DF528CF.50407@bourrigaud.info>
[not found] ` <20110709235410.08004e5d@stein>
2011-07-09 22:23 ` [PATCH] firewire: ohci: do not bind to Pinnacle cards, prevent panic Stefan Richter
[not found] ` <4E1A161D.1050304@ladisch.de>
2011-07-10 23:24 ` [PATCH] firewire: ohci: do not bind to Pinnacle or Fujitsu HCI, " Stefan Richter
2011-07-10 23:30 ` Bjørn Forbord
2011-07-10 23:50 ` Stefan Richter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox