Bug 5678

Summary: endless loop/kernel crash after memory card insert into 6-in-1 pcmcia memory card reader reader
Product: IO/Storage Reporter: Khashayar Naderehvandi (khashayar.lists)
Component: IDEAssignee: Bartlomiej Zolnierkiewicz (bzolnier)
Status: REJECTED WILL_NOT_FIX    
Severity: normal    
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.13*, 2.6.14* Subsystem:
Regression: --- Bisected commit-id:
Attachments: logs+config; 2.6.14.3-vanilla

Description Khashayar Naderehvandi 2005-11-29 15:31:18 UTC
Most recent kernel where this bug did not occur: Not sure; it might have worked
with 2.6.12 :-/

Distribution: ArchLinux

Hardware Environment: 

00:1f.1 IDE interface: Intel Corp.: Unknown device 24ca (rev 03) (prog-if 8a
[Master SecP PriP])
	Subsystem: Citicorp TTI: Unknown device 11ab
	Flags: bus master, medium devsel, latency 0, IRQ 11
	I/O ports at <unassigned>
	I/O ports at <unassigned>
	I/O ports at <unassigned>
	I/O ports at <unassigned>
	I/O ports at 2420 [size=16]
	Memory at 34000000 (32-bit, non-prefetchable) [size=1K]
</snip>
1:0a.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ab)
	Subsystem: Citicorp TTI: Unknown device 1254
	Flags: bus master, medium devsel, latency 168, IRQ 11
	Memory at d0203000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=01, secondary=02, subordinate=05, sec-latency=176
	Memory window 0: 30000000-31fff000 (prefetchable)
	Memory window 1: 36000000-37fff000
	I/O window 0: 00003400-000034ff
	I/O window 1: 00003800-000038ff
	16-bit legacy interface ports at 0001

01:0a.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ab)
	Subsystem: Citicorp TTI: Unknown device 1254
	Flags: bus master, medium devsel, latency 168, IRQ 11
	Memory at d0204000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=01, secondary=06, subordinate=09, sec-latency=176
	Memory window 0: 32000000-33fff000 (prefetchable)
	Memory window 1: 38000000-39fff000
	I/O window 0: 00003c00-00003cff
	I/O window 1: 00001000-000010ff
	16-bit legacy interface ports at 0001

Software Environment:
GNU bash, version 3.00.16(1)-release (i686-pc-linux-gnu)
KDE/Gnome/E17 - any software environment really

Problem Description:

I have been trying this with various 2.6.13 and 2.6.14
kernels including (archck/ck/kanotix/vanilla etc). 

I start the pcmcia services with /etc/rc.d/pcmcia start, after
which dmesg gives this:

------------------------------------------
Yenta: CardBus bridge found at 0000:01:0a.0 [10cf:1254]
Yenta: ISA IRQ mask 0x04b8, PCI irq 11
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
pcmcia: parent PCI bridge Memory window: 0xd0200000 -
0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x30000000 -
0x33ffffff
ACPI: PCI Interrupt 0000:01:0a.1[B] -> Link [LNKB] ->
GSI 11 (level, low) -> IRQ 11
Yenta: CardBus bridge found at 0000:01:0a.1 [10cf:1254]
Yenta: ISA IRQ mask 0x04b8, PCI irq 11
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
pcmcia: parent PCI bridge Memory window: 0xd0200000 -
0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x30000000 -
0x33ffffff
---------------------------------------------

Now, if I would insert a memory card (I have only tried this
with SD-cards, as those are the only ones I have at the
moment), I get this:

---------------------------------------------
Probing IDE interface ide2...
hde: Memory Card Adapter, CFA DISK drive
ide2 at 0x3100-0x3107,0x310e on irq 11
hde: max request size: 128KiB
hde: 29120 sectors (14 MB) w/1KiB Cache, CHS=455/2/32
hde: cache flushes not supported
hde:hde: status error: status=0x7f { DriveReady
DeviceFault SeekComplete DataRequest CorrectedError
Index Error }
hde: status error: error=0x00 { }
ide: failed opcode was: unknown
hde: drive not ready for command
ide2: reset: master: ECC circuitry error

ide-cs: hde: Vcc = 3.3, Vpp = 0.0
hde:
hde:
hde:
hde:
hde:
hde:
hde:
hde:
-------------------------------------------------

and 'hde:' continues endlessly, sometimes causing a
very noticeable overall slowdown of the entire system.
Rarely, it even causes a kernel crash and a forced cold
reboot.

Steps to reproduce:
1) start pcmcia service
2) insert SD-memory card

(Note: This bugreport was written a while back but I never posted it. Just to
make sure, I tried it with 2.6.15-rc2-mm1 right now and the results were even
worse. After services are started I get a message saying "no pcmcia driver in
/proc/devices", and after card insertion the kernel will oops badly and then crash)
Comment 1 Bartlomiej Zolnierkiewicz 2005-11-29 23:50:14 UTC
Please post:
- OOPS from 2.6.15-rc2-mm1
- kernel configs for -mm and vanilla 2.6.14
- full dmesgs for -mm and vanilla 2.6.14

Could you also try if 2.6.12 (or some earlier kernel) works?
Comment 2 Khashayar Naderehvandi 2005-11-30 02:00:50 UTC
This is gonna take some time for me; I will most probably need to make a clean
installation of some distro in order to try the vanilla kernels since my root
file system runs on reiser4.

However, I've tried using the card reader under a session of Damn Small Linux,
since it runs a 2.4 kernel. That gave no problems with card reader whatsoever.
Do you want me to try it with an earlier kernel in the 2.6 branch as well?

Last but no least; how do do I capture the OOPS? The kernel does crash
seriously, so there's really not much I can do after the crash. (Hmm.. just
realized I could boot with a live disk and grab the log-file, that way it won't
be overwritten).

I'll get to these things, but unortunately, it's gonna take some time..
Comment 3 Khashayar Naderehvandi 2005-11-30 15:00:41 UTC
Created attachment 6725 [details]
logs+config; 2.6.14.3-vanilla

I hope this helps. These are all the logs from 2.6.14.3. I tried first with a
2.6.13.4-ARCH, and it led to oops+kernel crash. But there were no logs
containing those messages. These aren't in /var/log/kernel.log?

Anyway, I'm a bit in a confusion here. The pcmcia-cs packages isn't supposed to
be used? Cause that's what I've been trying with. If I don't start the pcmcia
services (with /etc/rc.d/pcmcia; part of pcmcia-cs), the kernel gives
absolutely no reaction on my insertion of a memory card.

Am I missing something here?
Comment 4 Khashayar Naderehvandi 2005-12-04 08:50:09 UTC
OK, upon removing pcmcia-cs the result really is that nothing happens
whatsoever. I insert a card and there's no response from anything anywhere.
Also, I don't have the /sys/bus/pcmcia directory.

But :
----------------------------------
[khashayar@nightfrost ~]$ dmesg | grep -i pcmc
pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
pcmcia: parent PCI bridge Memory window: 0xd0200000 - 0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x30000000 - 0x33ffffff
pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
pcmcia: parent PCI bridge Memory window: 0xd0200000 - 0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x30000000 - 0x33ffffff
----------------------------------

Anything?
Comment 5 Bartlomiej Zolnierkiewicz 2005-12-05 00:05:09 UTC
The easiest way to capture OOPS is to take photo of the screen with digital
camera :), the more time consuming method is to use serial console (or netcosole).

-mm contains bugfix for registering removable devices but it seems it is
something different (unsupported command causes device to hang? - we should
try to find which command causes ECC error), anyway kernel shouldn't OOPS
in such situation.
Comment 6 Adrian Bunk 2005-12-05 18:43:18 UTC
*** Bug 5680 has been marked as a duplicate of this bug. ***
Comment 7 Dominik Brodowski 2005-12-08 01:36:02 UTC
To get PCMCIA working now, you need to issue these two commands:
modprobe pcmcia
modprobe yenta_socket

Also, see http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html for more
information on the pcmcia-cs -> pcmicautils change
Comment 8 Khashayar Naderehvandi 2005-12-08 02:20:18 UTC
It seems I have had two problems. Firstly, the 'pcmcia' module was not being
loaded. Secondly, udev 068. With udev 068 (the version I used when originally
reporting the bug) the kernel would oops. But with udev 076 there is no such
problem. I'm still getting this in the logs though: 

-------------------------
cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xcffff 0xdc000-0xfffff
cs: memory probe 0x30000000-0x33ffffff: excluding 0x30000000-0x33ffffff
cs: memory probe 0x60000000-0x60ffffff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
cs: memory probe 0xd0200000-0xd02fffff: excluding 0xd0200000-0xd020ffff
Probing IDE interface ide2...
hde: Memory Card Adapter, CFA DISK drive
ide2 at 0x3100-0x3107,0x310e on irq 11
hde: max request size: 128KiB
hde: 29120 sectors (14 MB) w/1KiB Cache, CHS=455/2/32
hde: cache flushes not supported
 hde:hde: status error: status=0x7f { DriveReady DeviceFault SeekComplete
DataRequest CorrectedError Index Error }
hde: status error: error=0x00 { }
ide: failed opcode was: unknown
hde: drive not ready for command
ide2: reset: master: ECC circuitry error
 hde1
ide-cs: hde: Vcc = 3.3, Vpp = 0.0
 hde: hde1
-----------------------------------------

But the last output of "hde: hde1" only shows once (sometimes twice or thrice,
but no more), and I can mount the card no problem.

So, the question is: is this a bug with udev 068, and do you guys still want me
to post the oops (still looking for a digi-cam)?
Comment 9 Dominik Brodowski 2006-01-10 09:20:40 UTC
It seems to me that this bug is solved?
Comment 10 Bartlomiej Zolnierkiewicz 2006-01-12 06:20:45 UTC
Original IDE bug - yes but it seems that there are two other problems:
- udev-0.68 shouldn't OOPS the kernel
- IDE shouldn't send the unsupported command to the device

Khashayar, could you close this bug and open two new ones
(one for udev OOPS-ing kernel and one for IDE error messages).

Thanks!
Comment 11 Alan 2007-06-18 08:03:35 UTC
Closing as pushed to other bugs (Master ECC is the flash card hardware crashing usually)