<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/block/ub.c, branch linux-2.6.16.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.16.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.16.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2006-05-20T22:00:28+00:00</updated>
<entry>
<title>[PATCH] USB: ub oops in block_uevent</title>
<updated>2006-05-20T22:00:28+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2006-05-03T07:16:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=572ae685ec6f034eedf34e9dc90fa8d904bcfc32'/>
<id>urn:sha1:572ae685ec6f034eedf34e9dc90fa8d904bcfc32</id>
<content type='text'>
In kernel 2.6.16, if a mounted storage device is removed, an oops happens
because ub supplies an interface device (and kobject) to the block layer,
but neglects to pin it. And apparently, the block layer expects its users
to pin device structures.

The code in ub was broken this way for years. But the bug was exposed only
by 2.6.16 when it started to call block_uevent on close, which traverses
device structures (kobjects actually).

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 05 Bulk reset</title>
<updated>2006-02-01T01:23:36+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2006-01-05T08:26:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c2e4a2e07f4c16486dd2ac859eb9c558b1c9935'/>
<id>urn:sha1:2c2e4a2e07f4c16486dd2ac859eb9c558b1c9935</id>
<content type='text'>
For crying out loud, they have devices which do not like port resets.
So, do what usb-storage does and try both bulk and port resets.
We start with a port reset (which usb-storage does at the end of transport),
then do a Bulk reset, then a port reset again. This seems to work for me.

The code is getting dirtier and dirtier here, but I swear that I'll
do something about it (see those two new XXX). Honest.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 04 Loss of timer and a hang</title>
<updated>2006-02-01T01:23:36+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2006-01-05T08:14:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b31f821c6dee6f3ecfca6b2583a6552538fb91bf'/>
<id>urn:sha1:b31f821c6dee6f3ecfca6b2583a6552538fb91bf</id>
<content type='text'>
If SCSI commands are submitted while other commands are still processed,
the dispatch loop turns, and we stop the work_timer. Then, if URB fails
to complete, ub hangs until the device is unplugged.

This does not happen often, becase we only allow one SCSI command per
block device, but does happen (on multi-LUN devices, for example).

The fix is to stop timer only when we actually going to change the state.

The nicest code would be to have the timer stopped in URB callback, but
this is impossible, because it can be called from inside a timer, through
the urb_unlink. Then we get BUG in timer.c:cascade(). So, we do it a
little dirtier.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 03 Oops with CFQ</title>
<updated>2006-02-01T01:23:36+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2005-12-28T22:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=65b4fe553bf43018c06740f3d1f6caf42cf95924'/>
<id>urn:sha1:65b4fe553bf43018c06740f3d1f6caf42cf95924</id>
<content type='text'>
The blk_cleanup_queue does not necesserily destroy the queue. When we
destroy the corresponding ub_dev, it may leave the queue spinlock pointer
dangling.

This patch moves spinlocks from ub_dev to static memory. The locking
scheme is not changed. These spinlocks are still separate from the ub_lock.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[BLOCK] add @uptodate to end_that_request_last() and @error to rq_end_io_fn()</title>
<updated>2006-01-06T08:49:03+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-01-06T08:49:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8ffdc6550c47f75ca4e6c9f30a2a89063e035cf2'/>
<id>urn:sha1:8ffdc6550c47f75ca4e6c9f30a2a89063e035cf2</id>
<content type='text'>
add @uptodate argument to end_that_request_last() and @error
to rq_end_io_fn().  there's no generic way to pass error code
to request completion function, making generic error handling
of non-fs request difficult (rq-&gt;errors is driver-specific and
each driver uses it differently).  this patch adds @uptodate
to end_that_request_last() and @error to rq_end_io_fn().

for fs requests, this doesn't really matter, so just using the
same uptodate argument used in the last call to
end_that_request_first() should suffice.  imho, this can also
help the generic command-carrying request jens is working on.

Signed-off-by: tejun heo &lt;htejun@gmail.com&gt;
Signed-Off-By: Jens Axboe &lt;axboe@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 02 Removed unused variable</title>
<updated>2006-01-04T21:51:44+00:00</updated>
<author>
<name>Daniel Marjamaki</name>
<email>daniel.marjamaki@comhem.se</email>
</author>
<published>2005-12-17T10:38:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ab93091dd7f3d3dff9e8d1811d8344af1c52493b'/>
<id>urn:sha1:ab93091dd7f3d3dff9e8d1811d8344af1c52493b</id>
<content type='text'>
Removed an unused variable

Signed-off-by: Daniel Marjamaki &lt;daniel.marjamaki@comhem.se&gt;
Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 01 rename</title>
<updated>2006-01-04T21:51:43+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2005-12-17T10:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4fb729f5863c29e4466afb4508186303f46458e7'/>
<id>urn:sha1:4fb729f5863c29e4466afb4508186303f46458e7</id>
<content type='text'>
Rename misleading UB_MINORS_PER_MAJOR into UB_PARTS_PER_LUN.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: ub 00 implement retries and resets</title>
<updated>2006-01-04T21:51:43+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2005-12-17T10:16:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c26c9e6b4993a1a1231849feff4b6518a4fc239'/>
<id>urn:sha1:2c26c9e6b4993a1a1231849feff4b6518a4fc239</id>
<content type='text'>
Implement command retries and resets in ub. It is advantageous for users
to know if their devices are getting bad. However, failing every I/O
is not practical if you have a external USB enclosure with a hard drive.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: remove .owner field from struct usb_driver</title>
<updated>2006-01-04T21:48:34+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2005-11-21T22:53:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=75318d2d7cab77b14c5d3dbd5e69f2680a769e16'/>
<id>urn:sha1:75318d2d7cab77b14c5d3dbd5e69f2680a769e16</id>
<content type='text'>
It is no longer needed, so let's remove it, saving a bit of memory.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] USB: drivers/usb/storage/libusual</title>
<updated>2006-01-04T21:48:31+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@redhat.com</email>
</author>
<published>2005-10-23T03:15:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a00828e9ac62caed7b830d631914d7748817ccd1'/>
<id>urn:sha1:a00828e9ac62caed7b830d631914d7748817ccd1</id>
<content type='text'>
This patch adds a shim driver libusual, which routes devices between
usb-storage and ub according to the common table, based on unusual_devs.h.
The help and example syntax is in Kconfig.

Signed-off-by: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
</feed>
