patch-2.4.0-test12 linux/drivers/block/DAC960.c
Next file: linux/drivers/block/acsi.c
Previous file: linux/drivers/atm/ambassador.c
Back to the patch index
Back to the overall index
- Lines: 57
- Date:
Thu Dec 7 17:08:24 2000
- Orig file:
v2.4.0-test11/linux/drivers/block/DAC960.c
- Orig date:
Tue Oct 31 12:42:26 2000
diff -u --recursive --new-file v2.4.0-test11/linux/drivers/block/DAC960.c linux/drivers/block/DAC960.c
@@ -19,8 +19,8 @@
*/
-#define DAC960_DriverVersion "2.4.8"
-#define DAC960_DriverDate "19 August 2000"
+#define DAC960_DriverVersion "2.4.9"
+#define DAC960_DriverDate "7 September 2000"
#include <linux/version.h>
@@ -300,13 +300,8 @@
static void DAC960_WaitForCommand(DAC960_Controller_T *Controller)
{
- DECLARE_WAITQUEUE(WaitQueueEntry, current);
- add_wait_queue(&Controller->CommandWaitQueue, &WaitQueueEntry);
- current->state = TASK_UNINTERRUPTIBLE;
- spin_unlock(&io_request_lock);
- schedule();
- current->state = TASK_RUNNING;
- remove_wait_queue(&Controller->CommandWaitQueue, &WaitQueueEntry);
+ spin_unlock_irq(&io_request_lock);
+ __wait_event(Controller->CommandWaitQueue, Controller->FreeCommands);
spin_lock_irq(&io_request_lock);
}
@@ -4957,7 +4952,8 @@
}
Geometry.start =
Controller->GenericDiskInfo.part[MINOR(Inode->i_rdev)].start_sect;
- return copy_to_user(UserGeometry, &Geometry, sizeof(DiskGeometry_T));
+ return (copy_to_user(UserGeometry, &Geometry,
+ sizeof(DiskGeometry_T)) ? -EFAULT : 0);
case BLKGETSIZE:
/* Get Device Size. */
if ((long *) Argument == NULL) return -EINVAL;
@@ -5078,8 +5074,8 @@
ControllerInfo.PCI_Address = Controller->PCI_Address;
strcpy(ControllerInfo.ModelName, Controller->ModelName);
strcpy(ControllerInfo.FirmwareVersion, Controller->FirmwareVersion);
- return copy_to_user(UserSpaceControllerInfo, &ControllerInfo,
- sizeof(DAC960_ControllerInfo_T));
+ return (copy_to_user(UserSpaceControllerInfo, &ControllerInfo,
+ sizeof(DAC960_ControllerInfo_T)) ? -EFAULT : 0);
}
case DAC960_IOCTL_V1_EXECUTE_COMMAND:
{
@@ -6401,7 +6397,7 @@
unsigned char CommandBuffer[80];
int Length;
if (Count > sizeof(CommandBuffer)-1) return -EINVAL;
- copy_from_user(CommandBuffer, Buffer, Count);
+ if (copy_from_user(CommandBuffer, Buffer, Count)) return -EFAULT;
CommandBuffer[Count] = '\0';
Length = strlen(CommandBuffer);
if (CommandBuffer[Length-1] == '\n')
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)