Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#21258 - [kernel26] PCMCIA D-Link (O2-Micro) USB 2.0 adapter - drives not mounting - mount freezes

Attached to Project: Arch Linux
Opened by David Bluecame (david.bluecame) - Thursday, 14 October 2010, 20:29 GMT
Last edited by Tobias Powalowski (tpowa) - Friday, 15 October 2010, 06:59 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture i686
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

NOTE: as this is a kernel bug, I have already filed this bug to the official kernel bugzilla at:

https://bugzilla.kernel.org/show_bug.cgi?id=20382

The following is an extract of the information I have sent there.


I have a laptop with USB1 only ports, so I installed a D-link PCMCIA adapter
with 2xUSB2.0 ports. Everything went well until kernel 2.6.31 inclusive.

When I upgraded to 2.6.32, after the upgrade I could not mount any USB2.0 drive
via the PCMCIA adapter. Mount operation froze and I could not even kill the
mount process. The problem happens with any USB2.0 drive, from 1.5TB external
hard drive to simple USB2.0 flash drives.

Upgrading to newer versions has not helped. I tried from 2.6.32.24 to 2.6.35.7
with no success, so I tried to discover what happened.

After a lot of investigation, I found the problem in the
drivers/pcmcia/o2micro.h file. That file was modified from version 2.6.31 to
2.6.32, adding the device number 6933 to the list of "old bridges" which should
have read prefetch and write bursting disabled:

(from o2micro.h)
/*
* older bridges have problems with both read prefetch and
write
* bursting depending on the combination of the chipset, bridge
* and the cardbus card. so disable them to be on the safe
side.
*/
case PCI_DEVICE_ID_O2_6729:
case PCI_DEVICE_ID_O2_6730:
case PCI_DEVICE_ID_O2_6812:
case PCI_DEVICE_ID_O2_6832:
case PCI_DEVICE_ID_O2_6836:
This caused the problem ---> case PCI_DEVICE_ID_O2_6933:

Precisely, my device is the 6933 and it began to give me trouble when that line
was added. If I remove that line and recompile the kernel, everything goes well

This task depends upon

Closed by  Tobias Powalowski (tpowa)
Friday, 15 October 2010, 06:59 GMT
Reason for closing:  Fixed
Comment by David Bluecame (david.bluecame) - Friday, 15 October 2010, 06:57 GMT
From the Kernel bugzilla, they have told me that they introduced a new module option to enable or disable the O2 read prefetch / write burst, so I can just re-enable it in the kernel options as follows:

kernel /boot/vmlinuz26 root=/dev/sda1 ro yenta_socket.o2_speedup=on

This solves the problem for me (at last!). However I also told them that it would be nice if they just added a warning when disabling the read prefetch/write burst in the o2 chips, so in dmesg you can see something like "read prefetch/write burst disabled - if you have problems mounting USB2.0 drives, re-enable it using yenta_socket option o2_speedup=on". Probably that will help people to solve this problem if it happens to them.

For me, this bug is solved and can be closed unless you want to keep it open.

Thank you and best regards! David.

Loading...