This is the start of cleaning up the user pointer markings
in the comedi core.
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct comedi_rangeinfo {
unsigned int range_type;
struct comedi_rangeinfo {
unsigned int range_type;
+ void __user *range_ptr;
};
struct comedi_krange {
};
struct comedi_krange {
*/
#define __NO_VERSION__
*/
#define __NO_VERSION__
#include <linux/uaccess.h>
#include <linux/uaccess.h>
#include "comedi_compat32.h"
#ifdef CONFIG_COMPAT
#include "comedi_compat32.h"
#ifdef CONFIG_COMPAT
* options that are used with comedi_config.
*/
* options that are used with comedi_config.
*/
+#include <linux/string.h>
+#include <linux/slab.h>
#include "../comedi.h"
#include "../comedilib.h"
#include "../comedidev.h"
#include "../comedi.h"
#include "../comedilib.h"
#include "../comedidev.h"
-#include <linux/string.h>
-#include <linux/slab.h>
/* The maxiumum number of channels per subdevice. */
#define MAX_CHANS 256
/* The maxiumum number of channels per subdevice. */
#define MAX_CHANS 256
/*
* various internal comedi functions
*/
/*
* various internal comedi functions
*/
-int do_rangeinfo_ioctl(struct comedi_device *dev, struct comedi_rangeinfo *arg);
+int do_rangeinfo_ioctl(struct comedi_device *dev,
+ struct comedi_rangeinfo __user *arg);
int insn_inval(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
int comedi_alloc_board_minor(struct device *hardware_device);
int insn_inval(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
int comedi_alloc_board_minor(struct device *hardware_device);
#include <linux/uaccess.h>
#include <linux/uaccess.h>
+#include "comedidev.h"
+#include "internal.h"
const struct comedi_lrange range_bipolar10 = { 1, {BIP_RANGE(10)} };
EXPORT_SYMBOL(range_bipolar10);
const struct comedi_lrange range_bipolar10 = { 1, {BIP_RANGE(10)} };
EXPORT_SYMBOL(range_bipolar10);
writes:
n struct comedi_krange structures to rangeinfo->range_ptr
*/
writes:
n struct comedi_krange structures to rangeinfo->range_ptr
*/
-int do_rangeinfo_ioctl(struct comedi_device *dev, struct comedi_rangeinfo *arg)
+int do_rangeinfo_ioctl(struct comedi_device *dev,
+ struct comedi_rangeinfo __user *arg)
{
struct comedi_rangeinfo it;
int subd, chan;
{
struct comedi_rangeinfo it;
int subd, chan;