diff options
author | Bernie Thompson <bernie@plugable.com> | 2010-02-15 06:46:13 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-03 16:43:00 -0800 |
commit | 2469d5dbcafe064859475a8aaf8da00ab33d440c (patch) | |
tree | 968c2adb597908806d34d90003df84a4013768b6 /drivers/staging/udlfb/udlfb.h | |
parent | 7d9485e2c53caaaed9606a39de1c2746cc9ba262 (diff) | |
download | kernel_samsung_smdk4412-2469d5dbcafe064859475a8aaf8da00ab33d440c.zip kernel_samsung_smdk4412-2469d5dbcafe064859475a8aaf8da00ab33d440c.tar.gz kernel_samsung_smdk4412-2469d5dbcafe064859475a8aaf8da00ab33d440c.tar.bz2 |
Staging: udlfb: Rework startup and teardown to fix race conditions
Rework probe to use refcounts and std functions
Because the different parts of the driver (usb, fbdev) tear down
in different orders, the driver previously could crash accessing
data that had already been freed. Refcounting system used to handle.
Reworked probe to make use of refcounts, set mode using std fbops,
and set up sysfs and pre-allocated urbs.
Signed-off-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/udlfb/udlfb.h')
-rw-r--r-- | drivers/staging/udlfb/udlfb.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/staging/udlfb/udlfb.h b/drivers/staging/udlfb/udlfb.h index ef343a6..e6c68c6 100644 --- a/drivers/staging/udlfb/udlfb.h +++ b/drivers/staging/udlfb/udlfb.h @@ -25,13 +25,14 @@ struct dlfb_data { struct device *gdev; /* &udev->dev */ struct usb_interface *interface; struct urb *tx_urb, *ctrl_urb; - struct usb_ctrlrequest dr; struct fb_info *info; struct urb_list urbs; struct kref kref; char *buf; char *bufend; char *backing_buffer; + struct delayed_work deferred_work; + struct mutex fb_open_lock; struct mutex bulk_mutex; int fb_count; atomic_t usb_active; /* 0 = update virtual buffer, but no usb traffic */ |