Lines Matching refs:sdev

69 static int ioctl_internal_command(struct scsi_device *sdev, char *cmd,  in ioctl_internal_command()  argument
78 SCSI_LOG_IOCTL(1, sdev_printk(KERN_INFO, sdev, in ioctl_internal_command()
81 result = scsi_execute_cmd(sdev, cmd, REQ_OP_DRV_IN, NULL, 0, timeout, in ioctl_internal_command()
84 SCSI_LOG_IOCTL(2, sdev_printk(KERN_INFO, sdev, in ioctl_internal_command()
93 sdev->lockable = 0; in ioctl_internal_command()
95 sdev_printk(KERN_INFO, sdev, in ioctl_internal_command()
102 if (sdev->removable) in ioctl_internal_command()
106 if (sdev->removable) { in ioctl_internal_command()
107 sdev->changed = 1; in ioctl_internal_command()
113 sdev_printk(KERN_INFO, sdev, in ioctl_internal_command()
116 scsi_print_sense_hdr(sdev, NULL, &sshdr); in ioctl_internal_command()
121 SCSI_LOG_IOCTL(2, sdev_printk(KERN_INFO, sdev, in ioctl_internal_command()
136 int scsi_set_medium_removal(struct scsi_device *sdev, char state) in scsi_set_medium_removal() argument
141 if (!sdev->removable || !sdev->lockable) in scsi_set_medium_removal()
151 ret = ioctl_internal_command(sdev, scsi_cmd, in scsi_set_medium_removal()
154 sdev->locked = (state == SCSI_REMOVAL_PREVENT); in scsi_set_medium_removal()
169 static int scsi_ioctl_get_pci(struct scsi_device *sdev, void __user *arg) in scsi_ioctl_get_pci() argument
171 struct device *dev = scsi_get_device(sdev->host); in scsi_ioctl_get_pci()
191 static int sg_set_timeout(struct scsi_device *sdev, int __user *p) in sg_set_timeout() argument
196 sdev->sg_timeout = clock_t_to_jiffies(timeout); in sg_set_timeout()
201 static int sg_get_reserved_size(struct scsi_device *sdev, int __user *p) in sg_get_reserved_size() argument
203 int val = min(sdev->sg_reserved_size, in sg_get_reserved_size()
204 queue_max_bytes(sdev->request_queue)); in sg_get_reserved_size()
209 static int sg_set_reserved_size(struct scsi_device *sdev, int __user *p) in sg_set_reserved_size() argument
219 sdev->sg_reserved_size = min_t(unsigned int, size, in sg_set_reserved_size()
220 queue_max_bytes(sdev->request_queue)); in sg_set_reserved_size()
233 static int scsi_get_idlun(struct scsi_device *sdev, void __user *argp) in scsi_get_idlun() argument
236 .dev_id = (sdev->id & 0xff) + in scsi_get_idlun()
237 ((sdev->lun & 0xff) << 8) + in scsi_get_idlun()
238 ((sdev->channel & 0xff) << 16) + in scsi_get_idlun()
239 ((sdev->host->host_no & 0xff) << 24), in scsi_get_idlun()
240 .host_unique_id = sdev->host->unique_id in scsi_get_idlun()
247 static int scsi_send_start_stop(struct scsi_device *sdev, int data) in scsi_send_start_stop() argument
253 return ioctl_internal_command(sdev, cdb, START_STOP_TIMEOUT, in scsi_send_start_stop()
364 static int scsi_fill_sghdr_rq(struct scsi_device *sdev, struct request *rq, in scsi_fill_sghdr_rq() argument
379 rq->timeout = sdev->sg_timeout; in scsi_fill_sghdr_rq()
426 static int sg_io(struct scsi_device *sdev, struct sg_io_hdr *hdr, in sg_io() argument
440 if (hdr->dxfer_len > (queue_max_hw_sectors(sdev->request_queue) << 9)) in sg_io()
457 rq = scsi_alloc_request(sdev->request_queue, writing ? in sg_io()
468 ret = scsi_fill_sghdr_rq(sdev, rq, hdr, open_for_write); in sg_io()
795 static int scsi_cdrom_send_packet(struct scsi_device *sdev, bool open_for_write, in scsi_cdrom_send_packet() argument
836 err = sg_io(sdev, &hdr, open_for_write); in scsi_cdrom_send_packet()
851 static int scsi_ioctl_sg_io(struct scsi_device *sdev, bool open_for_write, in scsi_ioctl_sg_io() argument
860 error = sg_io(sdev, &hdr, open_for_write); in scsi_ioctl_sg_io()
881 int scsi_ioctl(struct scsi_device *sdev, bool open_for_write, int cmd, in scsi_ioctl() argument
884 struct request_queue *q = sdev->request_queue; in scsi_ioctl()
907 return sg_set_timeout(sdev, arg); in scsi_ioctl()
909 return jiffies_to_clock_t(sdev->sg_timeout); in scsi_ioctl()
911 return sg_get_reserved_size(sdev, arg); in scsi_ioctl()
913 return sg_set_reserved_size(sdev, arg); in scsi_ioctl()
917 return scsi_ioctl_sg_io(sdev, open_for_write, arg); in scsi_ioctl()
921 return scsi_cdrom_send_packet(sdev, open_for_write, arg); in scsi_ioctl()
923 return scsi_send_start_stop(sdev, 3); in scsi_ioctl()
925 return scsi_send_start_stop(sdev, 2); in scsi_ioctl()
927 return scsi_get_idlun(sdev, arg); in scsi_ioctl()
929 return put_user(sdev->host->host_no, (int __user *)arg); in scsi_ioctl()
931 return ioctl_probe(sdev->host, arg); in scsi_ioctl()
933 return scsi_set_medium_removal(sdev, SCSI_REMOVAL_PREVENT); in scsi_ioctl()
935 return scsi_set_medium_removal(sdev, SCSI_REMOVAL_ALLOW); in scsi_ioctl()
937 return scsi_test_unit_ready(sdev, IOCTL_NORMAL_TIMEOUT, in scsi_ioctl()
940 return scsi_send_start_stop(sdev, 1); in scsi_ioctl()
942 return scsi_send_start_stop(sdev, 0); in scsi_ioctl()
944 return scsi_ioctl_get_pci(sdev, arg); in scsi_ioctl()
946 return scsi_ioctl_reset(sdev, arg); in scsi_ioctl()
951 if (!sdev->host->hostt->compat_ioctl) in scsi_ioctl()
953 return sdev->host->hostt->compat_ioctl(sdev, cmd, arg); in scsi_ioctl()
956 if (!sdev->host->hostt->ioctl) in scsi_ioctl()
958 return sdev->host->hostt->ioctl(sdev, cmd, arg); in scsi_ioctl()
972 int scsi_ioctl_block_when_processing_errors(struct scsi_device *sdev, int cmd, in scsi_ioctl_block_when_processing_errors() argument
976 if (scsi_host_in_recovery(sdev->host)) in scsi_ioctl_block_when_processing_errors()
979 if (!scsi_block_when_processing_errors(sdev)) in scsi_ioctl_block_when_processing_errors()