diff options
Diffstat (limited to 'drivers/ieee1394/raw1394.c')
-rw-r--r-- | drivers/ieee1394/raw1394.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c index bad66c65b0d6..da5f8829b503 100644 --- a/drivers/ieee1394/raw1394.c +++ b/drivers/ieee1394/raw1394.c | |||
@@ -90,7 +90,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
90 | static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | 90 | static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, |
91 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, | 91 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, |
92 | u16 flags); | 92 | u16 flags); |
93 | const static struct hpsb_address_ops arm_ops = { | 93 | static const struct hpsb_address_ops arm_ops = { |
94 | .read = arm_read, | 94 | .read = arm_read, |
95 | .write = arm_write, | 95 | .write = arm_write, |
96 | .lock = arm_lock, | 96 | .lock = arm_lock, |
@@ -369,6 +369,7 @@ static const char __user *raw1394_compat_write(const char __user *buf) | |||
369 | { | 369 | { |
370 | struct compat_raw1394_req __user *cr = (typeof(cr)) buf; | 370 | struct compat_raw1394_req __user *cr = (typeof(cr)) buf; |
371 | struct raw1394_request __user *r; | 371 | struct raw1394_request __user *r; |
372 | |||
372 | r = compat_alloc_user_space(sizeof(struct raw1394_request)); | 373 | r = compat_alloc_user_space(sizeof(struct raw1394_request)); |
373 | 374 | ||
374 | #define C(x) __copy_in_user(&r->x, &cr->x, sizeof(r->x)) | 375 | #define C(x) __copy_in_user(&r->x, &cr->x, sizeof(r->x)) |
@@ -378,7 +379,8 @@ static const char __user *raw1394_compat_write(const char __user *buf) | |||
378 | C(tag) || | 379 | C(tag) || |
379 | C(sendb) || | 380 | C(sendb) || |
380 | C(recvb)) | 381 | C(recvb)) |
381 | return ERR_PTR(-EFAULT); | 382 | return (__force const char __user *)ERR_PTR(-EFAULT); |
383 | |||
382 | return (const char __user *)r; | 384 | return (const char __user *)r; |
383 | } | 385 | } |
384 | #undef C | 386 | #undef C |
@@ -389,6 +391,7 @@ static int | |||
389 | raw1394_compat_read(const char __user *buf, struct raw1394_request *r) | 391 | raw1394_compat_read(const char __user *buf, struct raw1394_request *r) |
390 | { | 392 | { |
391 | struct compat_raw1394_req __user *cr = (typeof(cr)) buf; | 393 | struct compat_raw1394_req __user *cr = (typeof(cr)) buf; |
394 | |||
392 | if (!access_ok(VERIFY_WRITE, cr, sizeof(struct compat_raw1394_req)) || | 395 | if (!access_ok(VERIFY_WRITE, cr, sizeof(struct compat_raw1394_req)) || |
393 | P(type) || | 396 | P(type) || |
394 | P(error) || | 397 | P(error) || |
@@ -400,6 +403,7 @@ raw1394_compat_read(const char __user *buf, struct raw1394_request *r) | |||
400 | P(sendb) || | 403 | P(sendb) || |
401 | P(recvb)) | 404 | P(recvb)) |
402 | return -EFAULT; | 405 | return -EFAULT; |
406 | |||
403 | return sizeof(struct compat_raw1394_req); | 407 | return sizeof(struct compat_raw1394_req); |
404 | } | 408 | } |
405 | #undef P | 409 | #undef P |
@@ -2249,8 +2253,8 @@ static ssize_t raw1394_write(struct file *file, const char __user * buffer, | |||
2249 | sizeof(struct compat_raw1394_req) != | 2253 | sizeof(struct compat_raw1394_req) != |
2250 | sizeof(struct raw1394_request)) { | 2254 | sizeof(struct raw1394_request)) { |
2251 | buffer = raw1394_compat_write(buffer); | 2255 | buffer = raw1394_compat_write(buffer); |
2252 | if (IS_ERR(buffer)) | 2256 | if (IS_ERR((__force void *)buffer)) |
2253 | return PTR_ERR(buffer); | 2257 | return PTR_ERR((__force void *)buffer); |
2254 | } else | 2258 | } else |
2255 | #endif | 2259 | #endif |
2256 | if (count != sizeof(struct raw1394_request)) { | 2260 | if (count != sizeof(struct raw1394_request)) { |
@@ -2978,7 +2982,7 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2978 | * Export information about protocols/devices supported by this driver. | 2982 | * Export information about protocols/devices supported by this driver. |
2979 | */ | 2983 | */ |
2980 | #ifdef MODULE | 2984 | #ifdef MODULE |
2981 | static struct ieee1394_device_id raw1394_id_table[] = { | 2985 | static const struct ieee1394_device_id raw1394_id_table[] = { |
2982 | { | 2986 | { |
2983 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, | 2987 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, |
2984 | .specifier_id = AVC_UNIT_SPEC_ID_ENTRY & 0xffffff, | 2988 | .specifier_id = AVC_UNIT_SPEC_ID_ENTRY & 0xffffff, |