Bug 27684 - usb-uhci driver doesn't work with slab poisoning
Summary: usb-uhci driver doesn't work with slab poisoning
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel   
(Show other bugs)
Version: 7.1
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Pete Zaitcev
QA Contact: Brock Organ
: 27656 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 2001-02-15 00:12 UTC by Trond Eivind Glomsrxd
Modified: 2005-10-31 22:00 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2001-03-03 19:58:13 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
/proc contents and lsmod output (5.35 KB, text/plain)
2001-02-16 15:21 UTC, David Sainty
no flags Details
linux-2.4.2-ac7-p3-usb-slab.diff (27.55 KB, patch)
2001-03-03 19:58 UTC, Pete Zaitcev
no flags Details | Diff

Description Trond Eivind Glomsrxd 2001-02-15 00:12:25 UTC
The usb-uhci driver doesn't work in 2.4.1-0.1.8 - when inserting a USB mouse
(or just let it be there, the kernel on the installation disk works), this

hub.c: USB new device connect on bus1/2, assigned device number 2
usb_control/bulk_msg: timeout
usb.c: USB device not accepting new address=2 (error=-110)
hub.c: USB new device connect on bus1/2, assigned device number 3
usb_control/bulk_msg: timeout
usb.c: USB device not accepting new address=3 (error=-110)

Switching to the uhci driver works around the problem, but we need to
decide which one to stick with.

Comment 1 Glen Foster 2001-02-15 00:16:10 UTC
This defect is considered MUST-FIX for Florence Release-Candidate #1

Comment 2 David Sainty 2001-02-15 00:32:10 UTC
FYI, I upgraded Dell Latitude LS500 from fisher kernel to 2.4.1-0.1.8. As soon
as usb-uhci initializes, I get constant errors:

"usb-uhci.c: interrupt, status x, frame# 0"   where x = {10,20,30}

Comment 3 David Sainty 2001-02-16 15:19:26 UTC
New info from the LS500... I only seem to get this error when eth0, the inbuilt
3Com Ethernet, is _up_....  I will attach /proc entries and my lsmod output...


Comment 4 David Sainty 2001-02-16 15:21:55 UTC
Created attachment 10221 [details]
/proc contents and lsmod output

Comment 5 Michael K. Johnson 2001-02-16 15:32:30 UTC
Try 0.1.9

Comment 6 David Sainty 2001-02-16 16:10:04 UTC
0.1.9 looks good, i.e. error messages have gone. I haven't actually tried using USB.

Comment 7 Michael K. Johnson 2001-02-16 16:58:40 UTC
The problem is that slab poisoning appears to be catching a
bug in USB.  We turned slab poisoning off in 0.1.9.  I am not
marking this bug as fixed because we don't know why turning
off slab poisoning works around the bug.

Comment 8 Trond Eivind Glomsrxd 2001-02-19 19:39:23 UTC
*** Bug 27656 has been marked as a duplicate of this bug. ***

Comment 9 Pete Zaitcev 2001-03-03 19:56:56 UTC
The problem is identified as a violation of alignment restrictions
for the UHCI controller. If kmalloc or non-poisoned slab are used,
the 16 bytes alignment occurs naturally due to L1 cache alignment.
This is NOT guaranteed if slab is poisoned.

IMHO, the proper fix for this problem is to split decriptors into
hardware accessible, aligned, perhaps uncached, DMA-able part,
and regular software part. It comes out pretty big, so it needs
some testing. Works well on my machine so far.

Comment 10 Pete Zaitcev 2001-03-03 19:58:10 UTC
Created attachment 11701 [details]

Comment 11 Pete Zaitcev 2001-03-08 18:35:39 UTC
It has been decided to go ahead with the fix.

Note You need to log in before you can comment on or make changes to this bug.