@@ -1649,17 +1649,11 @@ static int do_insn_ioctl(struct comedi_device *dev,
1649
1649
}
1650
1650
1651
1651
static int __comedi_get_user_cmd (struct comedi_device * dev ,
1652
- struct comedi_cmd __user * arg ,
1653
1652
struct comedi_cmd * cmd )
1654
1653
{
1655
1654
struct comedi_subdevice * s ;
1656
1655
1657
1656
lockdep_assert_held (& dev -> mutex );
1658
- if (copy_from_user (cmd , arg , sizeof (* cmd ))) {
1659
- dev_dbg (dev -> class_dev , "bad cmd address\n" );
1660
- return - EFAULT ;
1661
- }
1662
-
1663
1657
if (cmd -> subdev >= dev -> n_subdevices ) {
1664
1658
dev_dbg (dev -> class_dev , "%d no such subdevice\n" , cmd -> subdev );
1665
1659
return - ENODEV ;
@@ -1757,8 +1751,13 @@ static int do_cmd_ioctl(struct comedi_device *dev,
1757
1751
1758
1752
lockdep_assert_held (& dev -> mutex );
1759
1753
1754
+ if (copy_from_user (& cmd , arg , sizeof (cmd ))) {
1755
+ dev_dbg (dev -> class_dev , "bad cmd address\n" );
1756
+ return - EFAULT ;
1757
+ }
1758
+
1760
1759
/* get the user's cmd and do some simple validation */
1761
- ret = __comedi_get_user_cmd (dev , arg , & cmd );
1760
+ ret = __comedi_get_user_cmd (dev , & cmd );
1762
1761
if (ret )
1763
1762
return ret ;
1764
1763
@@ -1866,8 +1865,13 @@ static int do_cmdtest_ioctl(struct comedi_device *dev,
1866
1865
1867
1866
lockdep_assert_held (& dev -> mutex );
1868
1867
1868
+ if (copy_from_user (& cmd , arg , sizeof (cmd ))) {
1869
+ dev_dbg (dev -> class_dev , "bad cmd address\n" );
1870
+ return - EFAULT ;
1871
+ }
1872
+
1869
1873
/* get the user's cmd and do some simple validation */
1870
- ret = __comedi_get_user_cmd (dev , arg , & cmd );
1874
+ ret = __comedi_get_user_cmd (dev , & cmd );
1871
1875
if (ret )
1872
1876
return ret ;
1873
1877
0 commit comments