67,11 → 67,7 |
|
#include <linux/sched.h> |
#include <linux/fs.h> |
#if HAVE_UNLOCKED_IOCTL |
#include <linux/mutex.h> |
#else |
#include <linux/smp_lock.h> |
#endif |
#include <linux/mutex.h> |
|
|
#include "fops.h" |
730,9 → 726,9 |
|
// check for accessible user buffer |
if (_IOC_DIR(cmd) & _IOC_READ) |
err = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd)); |
err = !access_ok( (void *)arg, _IOC_SIZE(cmd)); |
if (_IOC_DIR(cmd) & _IOC_WRITE) |
err = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd)); |
err = !access_ok( (void *)arg, _IOC_SIZE(cmd)); |
if (err) |
return -EFAULT; |
|
812,22 → 808,14 |
long retval=0; |
|
|
#if HAVE_UNLOCKED_IOCTL |
struct mutex fs_mutex; |
mutex_init(&fs_mutex); |
mutex_lock(&fs_mutex); |
#else |
lock_kernel(); |
#endif |
|
PRINTK(KERN_DEBUG "%s : pcivme_unlocked_ioctl(0x%08x), size = %d\n", DEVICE_NAME, cmd, _IOC_SIZE(cmd)); |
retval = pcivme_ioctl(NULL, pFile, cmd,arg); |
|
#if HAVE_UNLOCKED_IOCTL |
mutex_unlock(&fs_mutex); |
#else |
unlock_kernel(); |
#endif |
|
return retval; |
} |
957,7 → 945,7 |
return -EFAULT; |
|
// check for free access to user buffer |
if (!access_ok(VERIFY_WRITE, pcBuffer, count)) |
if (!access_ok( pcBuffer, count)) |
return -EFAULT; |
|
// do I still have the same modifier? |
999,7 → 987,7 |
return -EFAULT; |
|
// check for free access to user buffer |
if (!access_ok(VERIFY_READ, pcBuffer, count)) |
if (!access_ok( pcBuffer, count)) |
return -EFAULT; |
|
// do I still have the same modifier? |