On Monday 16 April 2007 12:57 pm, Alan Stern wrote:
> This patch (as900) fixes some driver-core bogosity recently introduced
> into the gendisk driver by Kay's block-device.patch.
> 
> Shame, shame...  :-)

Doesn't apply to 2.6.21-rc7 ... ???

In which release I do sometimes see slab corruption problems with
blocksize 1024 with last user often device_create_release() ...
seems to first materialize with vcsa1 removal (which the kernel
is for some pointless reason doing many more than once), then
later vcsa2, vcsa3, vcsa4, etc.

I'm suspecting that triggeered the oopses in that killed some
process called "generic_udev.ag", and eventually X11 keyboard
support, too.  FD table corruption etc. 

(Seen on i386, not x86_64; that's a trifle odd.)
 
- Dave



> Signed-off-by: Alan Stern <[EMAIL PROTECTED]>
> 
> ---
> 
> Index: usb-2.6/fs/partitions/check.c
> ===================================================================
> --- usb-2.6.orig/fs/partitions/check.c
> +++ usb-2.6/fs/partitions/check.c
> @@ -377,12 +377,20 @@ static int disk_sysfs_symlinks(struct ge
>  
>       err = sysfs_create_link(&block_depr, &disk->dev.kobj,
>                               disk->dev.kobj.name);
> -     if (err && target)
> +     if (err)
>               put_device(target);
>  #endif
>       return err;
>  }
>  
> +static void disk_sysfs_remove_symlinks(struct gendisk *disk)
> +{
> +#ifdef CONFIG_SYSFS_DEPRECATED_FUTURE
> +     sysfs_remove_link(&block_depr, disk->dev.kobj.name);
> +     put_device(disk->dev.parent);
> +#endif
> +}
> +
>  /* Not exported, helper to add_disk(). */
>  void register_disk(struct gendisk *disk)
>  {
> @@ -525,13 +533,7 @@ void del_gendisk(struct gendisk *disk)
>  
>       kobject_unregister(disk->holder_dir);
>       kobject_unregister(disk->slave_dir);
> -     if (disk->driverfs_dev) {
> -             put_device(disk->dev.parent);
> -             disk->dev.parent = NULL;
> -             disk->driverfs_dev = NULL;
> -     }
> -#ifdef CONFIG_SYSFS_DEPRECATED_FUTURE
> -     sysfs_remove_link(&block_depr, disk->dev.bus_id);
> -#endif
> +
> +     disk_sysfs_remove_symlinks(disk);
>       device_del(&disk->dev);
>  }
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> linux-usb-devel@lists.sourceforge.net
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
> 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to