--- linux/drivers/scsi/scsi_ioctl.c.old Mon Aug 11 21:00:52 1997
+++ linux/drivers/scsi/scsi_ioctl.c     Sat Aug 23 15:02:57 1997
@@ -10,4 +10,5 @@
#include <asm/segment.h>
#include <asm/system.h>
+#include <asm/page.h>

#include <linux/errno.h>
@@ -29,5 +30,5 @@
#define READ_ELEMENT_STATUS_TIMEOUT (5 * 60 * HZ)

-#define MAX_BUF 4096
+#define MAX_BUF PAGE_SIZE

#define max(a,b) (((a) > (b)) ? (a) : (b))
@@ -206,6 +207,6 @@
     * should use scsi_generics instead.
     */
-    if( inlen > MAX_BUF ) inlen = MAX_BUF;
-    if( outlen > MAX_BUF ) outlen = MAX_BUF;
+    if( inlen > MAX_BUF )  return -EINVAL;
+    if( outlen > MAX_BUF )  return -EINVAL;

    cmd_in = (char *) ( ((int *)buffer) + 2);