tiny fix for ide.c (1.3.x)

Yuri A. Pudgorodsky (yur@jane.ecsc.mipt.ru)
Wed, 19 Jul 1995 15:40:01 +0300


Just a little fix to enable usage of "hdparm -c3" with the 1.3.x
kernel. With one version (don't know exactly) somebody incorrect
merged argument checking for HDIO_SET_CHIPSET.

--- ide.c-orig Wed Jul 19 15:32:25 1995
+++ ide.c Sat Jul 15 17:07:55 1995
@@ -1569,21 +1569,29 @@
case HDIO_SET_NOWERR:
case HDIO_SET_CHIPSET:
if (!suser()) return -EACCES;
- if ((arg > 1) || (MINOR(inode->i_rdev) & PARTN_MASK))
+ if ((MINOR(inode->i_rdev) & PARTN_MASK))
return -EINVAL;
save_flags(flags);
cli();
switch (cmd) {
case HDIO_SET_KEEPSETTINGS:
+ if (arg > 1)
+ return -EINVAL;
dev->keep_settings = arg;
break;
case HDIO_SET_UNMASKINTR:
+ if (arg > 1)
+ return -EINVAL;
dev->unmask = arg;
break;
case HDIO_SET_NOWERR:
+ if (arg > 1)
+ return -EINVAL;
dev->bad_wstat = arg ? BAD_R_STAT : BAD_W_STAT;
break;
case HDIO_SET_CHIPSET:
+ if (arg > 3)
+ return -EINVAL;
dev->chipset = arg;
dev->vlb_sync = (arg & 2) >> 1;
dev->vlb_32bit = (arg & 1);

/yur