diff options
Diffstat (limited to 'drivers/media/usb/hdpvr/hdpvr-core.c')
-rw-r--r-- | drivers/media/usb/hdpvr/hdpvr-core.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/media/usb/hdpvr/hdpvr-core.c b/drivers/media/usb/hdpvr/hdpvr-core.c index 6e5070774dc2..2f0c89cbac76 100644 --- a/drivers/media/usb/hdpvr/hdpvr-core.c +++ b/drivers/media/usb/hdpvr/hdpvr-core.c | |||
@@ -78,7 +78,8 @@ void hdpvr_delete(struct hdpvr_device *dev) | |||
78 | 78 | ||
79 | static void challenge(u8 *bytes) | 79 | static void challenge(u8 *bytes) |
80 | { | 80 | { |
81 | u64 *i64P, tmp64; | 81 | __le64 *i64P; |
82 | u64 tmp64; | ||
82 | uint i, idx; | 83 | uint i, idx; |
83 | 84 | ||
84 | for (idx = 0; idx < 32; ++idx) { | 85 | for (idx = 0; idx < 32; ++idx) { |
@@ -106,10 +107,10 @@ static void challenge(u8 *bytes) | |||
106 | for (i = 0; i < 3; i++) | 107 | for (i = 0; i < 3; i++) |
107 | bytes[1] *= bytes[6] + 1; | 108 | bytes[1] *= bytes[6] + 1; |
108 | for (i = 0; i < 3; i++) { | 109 | for (i = 0; i < 3; i++) { |
109 | i64P = (u64 *)bytes; | 110 | i64P = (__le64 *)bytes; |
110 | tmp64 = le64_to_cpup(i64P); | 111 | tmp64 = le64_to_cpup(i64P); |
111 | tmp64 <<= bytes[7] & 0x0f; | 112 | tmp64 = tmp64 + (tmp64 << (bytes[7] & 0x0f)); |
112 | *i64P += cpu_to_le64(tmp64); | 113 | *i64P = cpu_to_le64(tmp64); |
113 | } | 114 | } |
114 | break; | 115 | break; |
115 | } | 116 | } |
@@ -301,8 +302,6 @@ static int hdpvr_probe(struct usb_interface *interface, | |||
301 | goto error; | 302 | goto error; |
302 | } | 303 | } |
303 | 304 | ||
304 | dev->workqueue = 0; | ||
305 | |||
306 | /* init video transfer queues first of all */ | 305 | /* init video transfer queues first of all */ |
307 | /* to prevent oops in hdpvr_delete() on error paths */ | 306 | /* to prevent oops in hdpvr_delete() on error paths */ |
308 | INIT_LIST_HEAD(&dev->free_buff_list); | 307 | INIT_LIST_HEAD(&dev->free_buff_list); |