• Home
  • Raw
  • Download

Lines Matching refs:hdr

221 			     struct sg_io_hdr *hdr, fmode_t mode)  in blk_fill_sghdr_rq()  argument
225 if (copy_from_user(req->cmd, hdr->cmdp, hdr->cmd_len)) in blk_fill_sghdr_rq()
233 req->cmd_len = hdr->cmd_len; in blk_fill_sghdr_rq()
235 rq->timeout = msecs_to_jiffies(hdr->timeout); in blk_fill_sghdr_rq()
246 static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr, in blk_complete_sghdr_rq() argument
255 hdr->status = req->result & 0xff; in blk_complete_sghdr_rq()
256 hdr->masked_status = status_byte(req->result); in blk_complete_sghdr_rq()
257 hdr->msg_status = msg_byte(req->result); in blk_complete_sghdr_rq()
258 hdr->host_status = host_byte(req->result); in blk_complete_sghdr_rq()
259 hdr->driver_status = driver_byte(req->result); in blk_complete_sghdr_rq()
260 hdr->info = 0; in blk_complete_sghdr_rq()
261 if (hdr->masked_status || hdr->host_status || hdr->driver_status) in blk_complete_sghdr_rq()
262 hdr->info |= SG_INFO_CHECK; in blk_complete_sghdr_rq()
263 hdr->resid = req->resid_len; in blk_complete_sghdr_rq()
264 hdr->sb_len_wr = 0; in blk_complete_sghdr_rq()
266 if (req->sense_len && hdr->sbp) { in blk_complete_sghdr_rq()
267 int len = min((unsigned int) hdr->mx_sb_len, req->sense_len); in blk_complete_sghdr_rq()
269 if (!copy_to_user(hdr->sbp, req->sense, len)) in blk_complete_sghdr_rq()
270 hdr->sb_len_wr = len; in blk_complete_sghdr_rq()
283 struct sg_io_hdr *hdr, fmode_t mode) in sg_io() argument
293 if (hdr->interface_id != 'S') in sg_io()
296 if (hdr->dxfer_len > (queue_max_hw_sectors(q) << 9)) in sg_io()
299 if (hdr->dxfer_len) in sg_io()
300 switch (hdr->dxfer_direction) { in sg_io()
310 if (hdr->flags & SG_FLAG_Q_AT_HEAD) in sg_io()
319 if (hdr->cmd_len > BLK_MAX_CDB) { in sg_io()
320 req->cmd = kzalloc(hdr->cmd_len, GFP_KERNEL); in sg_io()
325 ret = blk_fill_sghdr_rq(q, rq, hdr, mode); in sg_io()
330 if (hdr->iovec_count) { in sg_io()
334 ret = import_iovec(rq_data_dir(rq), hdr->dxferp, in sg_io()
335 hdr->iovec_count, 0, &iov, &i); in sg_io()
340 iov_iter_truncate(&i, hdr->dxfer_len); in sg_io()
344 } else if (hdr->dxfer_len) in sg_io()
345 ret = blk_rq_map_user(q, rq, NULL, hdr->dxferp, hdr->dxfer_len, in sg_io()
362 hdr->duration = jiffies_to_msecs(jiffies - start_time); in sg_io()
364 ret = blk_complete_sghdr_rq(rq, hdr, bio); in sg_io()
548 int put_sg_io_hdr(const struct sg_io_hdr *hdr, void __user *argp) in put_sg_io_hdr() argument
553 .interface_id = hdr->interface_id, in put_sg_io_hdr()
554 .dxfer_direction = hdr->dxfer_direction, in put_sg_io_hdr()
555 .cmd_len = hdr->cmd_len, in put_sg_io_hdr()
556 .mx_sb_len = hdr->mx_sb_len, in put_sg_io_hdr()
557 .iovec_count = hdr->iovec_count, in put_sg_io_hdr()
558 .dxfer_len = hdr->dxfer_len, in put_sg_io_hdr()
559 .dxferp = (uintptr_t)hdr->dxferp, in put_sg_io_hdr()
560 .cmdp = (uintptr_t)hdr->cmdp, in put_sg_io_hdr()
561 .sbp = (uintptr_t)hdr->sbp, in put_sg_io_hdr()
562 .timeout = hdr->timeout, in put_sg_io_hdr()
563 .flags = hdr->flags, in put_sg_io_hdr()
564 .pack_id = hdr->pack_id, in put_sg_io_hdr()
565 .usr_ptr = (uintptr_t)hdr->usr_ptr, in put_sg_io_hdr()
566 .status = hdr->status, in put_sg_io_hdr()
567 .masked_status = hdr->masked_status, in put_sg_io_hdr()
568 .msg_status = hdr->msg_status, in put_sg_io_hdr()
569 .sb_len_wr = hdr->sb_len_wr, in put_sg_io_hdr()
570 .host_status = hdr->host_status, in put_sg_io_hdr()
571 .driver_status = hdr->driver_status, in put_sg_io_hdr()
572 .resid = hdr->resid, in put_sg_io_hdr()
573 .duration = hdr->duration, in put_sg_io_hdr()
574 .info = hdr->info, in put_sg_io_hdr()
584 if (copy_to_user(argp, hdr, sizeof(*hdr))) in put_sg_io_hdr()
591 int get_sg_io_hdr(struct sg_io_hdr *hdr, const void __user *argp) in get_sg_io_hdr() argument
600 *hdr = (struct sg_io_hdr) { in get_sg_io_hdr()
629 if (copy_from_user(hdr, argp, sizeof(*hdr))) in get_sg_io_hdr()
715 struct sg_io_hdr hdr; in scsi_cdrom_send_packet() local
723 memset(&hdr, 0, sizeof(hdr)); in scsi_cdrom_send_packet()
724 hdr.interface_id = 'S'; in scsi_cdrom_send_packet()
725 hdr.cmd_len = sizeof(cgc.cmd); in scsi_cdrom_send_packet()
726 hdr.dxfer_len = cgc.buflen; in scsi_cdrom_send_packet()
729 hdr.dxfer_direction = SG_DXFER_UNKNOWN; in scsi_cdrom_send_packet()
732 hdr.dxfer_direction = SG_DXFER_TO_DEV; in scsi_cdrom_send_packet()
735 hdr.dxfer_direction = SG_DXFER_FROM_DEV; in scsi_cdrom_send_packet()
738 hdr.dxfer_direction = SG_DXFER_NONE; in scsi_cdrom_send_packet()
744 hdr.dxferp = cgc.buffer; in scsi_cdrom_send_packet()
745 hdr.sbp = cgc.sense; in scsi_cdrom_send_packet()
746 if (hdr.sbp) in scsi_cdrom_send_packet()
747 hdr.mx_sb_len = sizeof(struct request_sense); in scsi_cdrom_send_packet()
748 hdr.timeout = jiffies_to_msecs(cgc.timeout); in scsi_cdrom_send_packet()
749 hdr.cmdp = ((struct cdrom_generic_command __user*) arg)->cmd; in scsi_cdrom_send_packet()
750 hdr.cmd_len = sizeof(cgc.cmd); in scsi_cdrom_send_packet()
752 err = sg_io(q, bd_disk, &hdr, mode); in scsi_cdrom_send_packet()
756 if (hdr.status) in scsi_cdrom_send_packet()
760 cgc.buflen = hdr.resid; in scsi_cdrom_send_packet()
804 struct sg_io_hdr hdr; in scsi_cmd_ioctl() local
806 err = get_sg_io_hdr(&hdr, arg); in scsi_cmd_ioctl()
809 err = sg_io(q, bd_disk, &hdr, mode); in scsi_cmd_ioctl()
813 if (put_sg_io_hdr(&hdr, arg)) in scsi_cmd_ioctl()