Re: [PATCH] usb-serial regression (Oops) in 2.6.21-rc*

Jim Radford <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.kernel
Message-ID <[email protected]>
On Mon, Mar 12, 2007 at 01:33:31PM -0700, Greg KH wrote:
> On Mon, Mar 12, 2007 at 04:22:22PM -0400, Mark Lord wrote:
> > Oliver Neukum wrote:
> > >>Mark Lord wrote:
> > >>>Okay, from that part (above), the problem is obvious:
> > >>>in that the "MCT U232 converter now disconnected" appears,
> > >>>and then we continue to try and call the driver's method.. Oops!

> > >IMHO shutdown() is using serial->port[] and bombs.
> > >Could you reverse the order here?

> > Yup.  Fixed.  Tested.  Works.

> > This patch fixes the Oops that otherwise occurs whenever
> > a USB serial adapter is unplugged from a system, as well
> > the Oops seen when one is in use before resume (to RAM).

> Argh, no, this change was done to help the ftdi drivers out.

> Look at changeset d9a7ecacac5f8274d2afce09aadcf37bdb42b93a in Linus's
> tree from Jim Radford:
> 	http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9a7ecacac5f8274d2afce09aadcf37bdb42b93a
> 
> It makes this change because the usb-serial drivers need the port
> devices when the port_remove() callbacks happen.  Otherwise you get an
> oops that way.

> Jim, can you take a look at this and see if you can figure something
> out?

The problem is really the

   serial->port[i] = NULL;

line after device_unregister() which is used to flag "fake" devices
that don't need legacy cleanup later in the destrol_serial.  That
flagging should be done using a *real* flag, and not by overloading
the ->port[i] pointer since we require it to be non-NULL in
->shutdown() in all drivers that are not converted to new
->port_probe()/->port_remove() framework (currently all except ftdi).

I'll work on a patch to do that, but for now, I think you should apply
Mark's patch to revert the order change since the FTDI driver no
longer requires the correct ordering of device_unregister() and
->shutdown().

-Jim

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.