Re: [stable] [patch 25/28] USB: cdc-acm: fix sysfs attribute registration bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 24, 2007 at 09:59:49AM -0400, Alan Stern wrote:
> On Thu, 23 Aug 2007, Greg KH wrote:
> 
> > -stable review patch.  If anyone has any objections, please let us know.
> > 
> > ------------------
> > 
> > From: Alan Stern <[email protected]>
> > 
> > This patch (as950) fixes a bug in the cdc-acm driver.  It doesn't keep
> > track of which interface (control or data) the sysfs attributes get
> > registered for, and as a result, during disconnect it will sometimes
> > attempt to remove the attributes from the wrong interface.  The
> > left-over attributes can cause a crash later on, particularly if the driver
> > module has been unloaded.
> > 
> > Signed-off-by: Alan Stern <[email protected]>
> > Acked-by: Oliver Neukum <[email protected]>
> > Signed-off-by: Greg Kroah-Hartman <[email protected]>
> > 
> > ---
> >  drivers/usb/class/cdc-acm.c |    4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > --- a/drivers/usb/class/cdc-acm.c
> > +++ b/drivers/usb/class/cdc-acm.c
> > @@ -900,6 +900,10 @@ next_desc:
> >  			return -ENODEV;
> >  		}
> >  	}
> > +
> > +	/* Accept probe requests only for the control interface */
> > +	if (intf != control_interface)
> > +		return -ENODEV;
> >  	
> >  	if (data_interface_num != call_interface_num)
> >  		dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.");
> > 
> 
> Odd.  This doesn't include the entire patch; the second hunk is
> missing.  It should go on to say:
> 
> @@ -1109,10 +1113,12 @@ static void acm_disconnect(struct usb_interface *intf)
>  		return;
>  	}
>  	if (acm->country_codes){
> -		device_remove_file(&intf->dev, &dev_attr_wCountryCodes);
> -		device_remove_file(&intf->dev, &dev_attr_iCountryCodeRelDate);
> +		device_remove_file(&acm->control->dev,
> +				&dev_attr_wCountryCodes);
> +		device_remove_file(&acm->control->dev,
> +				&dev_attr_iCountryCodeRelDate);
>  	}
> -	device_remove_file(&intf->dev, &dev_attr_bmCapabilities);
> +	device_remove_file(&acm->control->dev, &dev_attr_bmCapabilities);


I thought so too, untill you look at the 2.6.22.5 release, which already
has that change in it for some reason.

So that part of the patch drops out, it turns out you just reverted
things back to the way things used to be here :)

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux