Hi Jonathan,

On Sun, May 20, 2012 at 10:38 PM, Jonathan Nieder <jrnie...@gmail.com> wrote:
> However that doesn't explain changes like moving the acquisition of
> dev->kfref about 30 lines down.

There's an extra dereference on the error path that should get a patch
in 3.5/3.6.

> Can you explain what the part of the
> patch preventing a panic does, for example by providing an example
> trace of the panic?  This would make it easier to see how to safely
> backport the fix and which kernels need it.

Here's a screenshot of the panic:
http://plugable.com/wp-content/uploads/2012/05/udlfb_usb_hcd_free_panic.jpg
This is an older report of likely the same thing:
http://lists.freedesktop.org/archives/libdlo/2010-October/000779.html

The panic (race condition) seems to happen when we get:

1) probe() which triggers some long running operations
2) the hardware is removed when those operations are still in process
3) panic happens during the disconnect() tear-down process in that case

This is most common when we're doing big USB multiseat setups, where
lots of USB plug/unplug is happening. By getting the (unnecessarily)
long-running operations out of probe, we don't hit the panic, even
with extensive stress testing.

Because automatic USB multiseat is only in recent distros (Fedora 17
and hopefully others) that are running 3.3 (or later), it's the
backport to 3.3 that is most valuable to end users.

Hope this background helps.  Thanks,
Bernie
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to