Bug 51706

Summary: kernel locks up toshiba notebook
Product: [Retired] Red Hat Linux Reporter: hjl
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED RAWHIDE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-08-15 14:57:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 53209    
Attachments:
Description Flags
A patch
none
slightly modified patch
none
An updated patch none

Description hjl 2001-08-14 04:45:23 UTC
kernel 2.4.6-3.1 locks up toshiba notebook portege 3480ct
when the multi media port replicator model pa3042u-1dst
is connected to my notebook. It happens when I do

# modprobe yenta_socket

With the port replicator,

# lspci -v
00:00.0 Host bridge: Intel Corporation 82440MX I/O Controller (rev 01)
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, medium devsel, latency 64

00:00.1 Multimedia audio controller: Intel Corporation 82440MX AC'97 Audio
Controller
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, fast devsel, latency 0, IRQ 11
        I/O ports at fd00 [size=256]
        I/O ports at fcc0 [size=64]

00:02.0 Communication controller: Lucent Microelectronics 56k WinModem (rev
01)
        Subsystem: Toshiba America Info Systems: Unknown device 0002
        Flags: bus master, medium devsel, latency 0, IRQ 11
        Memory at ffefff00 (32-bit, non-prefetchable) [size=256]
        I/O ports at 02f8 [size=8]
        I/O ports at 1c00 [size=256]
        Capabilities: [f8] Power Management version 2

00:04.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/MX-/IX (rev
11) (prog-if 00 [VGA])
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, medium devsel, latency 248, IRQ 11
        Memory at f0000000 (32-bit, non-prefetchable) [size=128M]
        Expansion ROM at 000c0000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 1

00:06.0 PCI bridge: Toshiba America Info Systems: Unknown device 061b (rev
03) (prog-if 01 [Subtractive decode])
        Flags: bus master, user-definable features, medium devsel, latency
64
        Bus: primary=00, secondary=01, subordinate=13, sec-latency=64
        I/O behind bridge: 0000c000-0000cfff
        Memory behind bridge: efd00000-efefffff
        Capabilities: [c0] Power Management version 2
        Capabilities: [c8] Slot ID: 0 slots, First-, chassis 00

00:07.0 Bridge: Intel Corporation 82440MX PCI to ISA Bridge (rev 01)
        Flags: bus master, medium devsel, latency 0

00:07.1 IDE interface: Intel Corporation 82440MX EIDE Controller (prog-if
80 [Master])
        Flags: bus master, medium devsel, latency 64
        I/O ports at bff0 [size=16]

00:07.2 USB Controller: Intel Corporation 82440MX USB Universal Host
Controller (prog-if 00 [UHCI])
        Flags: bus master, medium devsel, latency 64, IRQ 11
        I/O ports at bf80 [size=32]

00:07.3 Bridge: Intel Corporation 82440MX Power Management Controller
        Flags: medium devsel

00:09.0 IRDA controller: Toshiba America Info Systems FIR Port Type-DO
        Subsystem: Toshiba America Info Systems FIR Port Type-DO
        Flags: bus master, slow devsel, latency 64, IRQ 11
        I/O ports at bf60 [size=32]
        Capabilities: [80] Power Management version 2

00:0b.0 CardBus bridge: Toshiba America Info Systems ToPIC95 PCI to Cardbus
Bridge with ZV Support (rev 20)
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, slow devsel, latency 64, IRQ 11
        Memory at 10000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=14, subordinate=14, sec-latency=0
        I/O window 0: 00000000-00000003
        I/O window 1: 00000000-00000003
        16-bit legacy interface ports at 0001

00:0b.1 CardBus bridge: Toshiba America Info Systems ToPIC95 PCI to Cardbus
Bridge with ZV Support (rev 20)
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, slow devsel, latency 64, IRQ 11
        Memory at 10001000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=15, subordinate=15, sec-latency=0
        I/O window 0: 00000000-00000003
        I/O window 1: 00000000-00000003
        16-bit legacy interface ports at 0001

01:03.0 IDE interface: Toshiba America Info Systems: Unknown device 0105
(rev 01) (prog-if d5)
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, slow devsel, latency 64, IRQ 11
        I/O ports at cff8 [size=8]
        I/O ports at cff4 [size=4]
        I/O ports at cfe8 [size=8]
        I/O ports at cfe4 [size=4]
        I/O ports at cfa0 [size=16]
        Capabilities: [80] Power Management version 2

01:04.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100]
(rev 08)
        Subsystem: Toshiba America Info Systems: Unknown device 0003
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at efeff000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at cf40 [size=64]
        Memory at efd00000 (32-bit, non-prefetchable) [size=1M]
        Capabilities: [dc] Power Management version 2

01:05.0 CardBus bridge: Toshiba America Info Systems ToPIC95 PCI to Cardbus
Bridge with ZV Support (rev 40)
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, slow devsel, latency 64
        Memory at efe00000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=01, secondary=12, subordinate=12, sec-latency=0
        I/O window 0: 00000000-00000003
        I/O window 1: 00000000-00000003
        16-bit legacy interface ports at 0001


kernel 2.2.18 worked fine. kernel 2.4.7-0.13.1 has the same problem. It
looks
like 2.4.x doesn't know how to deal with cardbus and pci bridge in port
replicator.

Comment 1 hjl 2001-08-14 16:30:19 UTC
Please note that there is another cardbus bridge on the
port replicator.  That may confuse yenta_socket.

Comment 2 Arjan van de Ven 2001-08-14 16:32:35 UTC
Strange question: could you try the enterprise kernel on this ?

Comment 3 Glen Foster 2001-08-14 19:08:04 UTC
This defect is considered SHOULD-FIX for Fairfax.

Comment 4 hjl 2001-08-14 21:00:23 UTC
The enterprise kernel also locks up the machine.

Comment 5 hjl 2001-08-14 22:18:52 UTC
One more thing. There is no IRQ assigned for the
CardBus bridge on  the port replicator. It may
confuse the kernel.

Comment 6 hjl 2001-08-14 23:59:29 UTC
I think one fix may be to ignore the socket without an IRQ
during init.

Comment 7 hjl 2001-08-15 02:08:28 UTC
Here is a patch. With it applied, I got

Linux Kernel Card Services 3.1.22
  options:  [pci] [cardbus] [pm]
PCI: Found IRQ 11 for device 00:0b.0
PCI: Found IRQ 11 for device 00:0b.1
PCI: Sharing IRQ 11 with 00:00.1
CardBus bridge (1179:0617, 1179:0001) without PCI interrupt is ignored!
Yenta IRQ list 0000, PCI irq11
Socket status: 30000007
Yenta IRQ list 0000, PCI irq11
Socket status: 30000020

Does kernel  know how to assign an IRQ to a pci device?

Comment 8 hjl 2001-08-15 02:09:06 UTC
Created attachment 27855 [details]
A patch

Comment 9 Arjan van de Ven 2001-08-15 09:17:33 UTC
Created attachment 27877 [details]
slightly modified patch

Comment 10 Arjan van de Ven 2001-08-15 09:18:24 UTC
The kernel should be able to assign irq's. If it doesn't, that's a bug, but the
check should only be done after enabling the device, attached patch does that
first.

Comment 11 hjl 2001-08-15 14:45:41 UTC
Created attachment 27973 [details]
An updated patch

Comment 12 hjl 2001-08-15 14:51:27 UTC
Here is the new kernel message. I don't think Linux knows how
to assign an IRQ to a PCI device, at least on x86. It has to be
assigned by BIOS.

Linux Kernel Card Services 3.1.22
  options:  [pci] [cardbus] [pm]
PCI: Found IRQ 11 for device 00:0b.0
PCI: Found IRQ 11 for device 00:0b.0
PCI: Found IRQ 11 for device 00:0b.1
PCI: Sharing IRQ 11 with 00:00.1
PCI: Found IRQ 11 for device 00:0b.1
PCI: Sharing IRQ 11 with 00:00.1
PCI: No IRQ known for interrupt pin A of device 01:05.0. Please try using
pci=biosirq.
PCI CardBus bridge (1179:0617, 1179:0001) without IRQ is ignored!

Passing pci=biosirq to kernel, I got

Linux Kernel Card Services 3.1.22
  options:  [pci] [cardbus] [pm]
PCI: Found IRQ 11 for device 00:0b.0
PCI: Found IRQ 11 for device 00:0b.0
PCI: Found IRQ 11 for device 00:0b.1
PCI: Sharing IRQ 11 with 00:00.1
PCI: Found IRQ 11 for device 00:0b.1
PCI: Sharing IRQ 11 with 00:00.1
PCI: No IRQ known for interrupt pin A of device 01:05.0.
PCI CardBus bridge (1179:0617, 1179:0001) without IRQ is ignored!


Comment 13 hjl 2001-08-15 14:57:29 UTC
FYI,  I updated my patch to print out

PCI: CardBus bridge (1179:0617, 1179:0001) without IRQ is ignored!

to be consistent with other PCI messages.

Comment 14 Arjan van de Ven 2001-08-15 15:45:54 UTC
patch added to the kernel; thanks!