aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/udlfb/udlfb.h
diff options
context:
space:
mode:
authorBernie Thompson <bernie@plugable.com>2010-02-15 06:46:13 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2010-03-03 16:43:00 -0800
commit2469d5dbcafe064859475a8aaf8da00ab33d440c (patch)
tree968c2adb597908806d34d90003df84a4013768b6 /drivers/staging/udlfb/udlfb.h
parent7d9485e2c53caaaed9606a39de1c2746cc9ba262 (diff)
downloadkernel_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.h3
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 */