Lines Matching refs:sgp

1361 	struct sg_io_hdr *sgp = &sksgio->sg;  in skd_sg_io_get_and_check_args()  local
1370 if (__copy_from_user(sgp, sksgio->argp, sizeof(sg_io_hdr_t))) { in skd_sg_io_get_and_check_args()
1376 if (sgp->interface_id != SG_INTERFACE_ID_ORIG) { in skd_sg_io_get_and_check_args()
1378 skdev->name, __func__, __LINE__, sgp->interface_id); in skd_sg_io_get_and_check_args()
1382 if (sgp->cmd_len > sizeof(sksgio->cdb)) { in skd_sg_io_get_and_check_args()
1384 skdev->name, __func__, __LINE__, sgp->cmd_len); in skd_sg_io_get_and_check_args()
1388 if (sgp->iovec_count > 256) { in skd_sg_io_get_and_check_args()
1390 skdev->name, __func__, __LINE__, sgp->iovec_count); in skd_sg_io_get_and_check_args()
1394 if (sgp->dxfer_len > (PAGE_SIZE * SKD_N_SG_PER_SPECIAL)) { in skd_sg_io_get_and_check_args()
1396 skdev->name, __func__, __LINE__, sgp->dxfer_len); in skd_sg_io_get_and_check_args()
1400 switch (sgp->dxfer_direction) { in skd_sg_io_get_and_check_args()
1416 skdev->name, __func__, __LINE__, sgp->dxfer_direction); in skd_sg_io_get_and_check_args()
1420 if (copy_from_user(sksgio->cdb, sgp->cmdp, sgp->cmd_len)) { in skd_sg_io_get_and_check_args()
1422 skdev->name, __func__, __LINE__, sgp->cmdp); in skd_sg_io_get_and_check_args()
1426 if (sgp->mx_sb_len != 0) { in skd_sg_io_get_and_check_args()
1427 if (!access_ok(VERIFY_WRITE, sgp->sbp, sgp->mx_sb_len)) { in skd_sg_io_get_and_check_args()
1429 skdev->name, __func__, __LINE__, sgp->sbp); in skd_sg_io_get_and_check_args()
1434 if (sgp->iovec_count == 0) { in skd_sg_io_get_and_check_args()
1435 sksgio->iov[0].iov_base = sgp->dxferp; in skd_sg_io_get_and_check_args()
1436 sksgio->iov[0].iov_len = sgp->dxfer_len; in skd_sg_io_get_and_check_args()
1438 sksgio->dxfer_len = sgp->dxfer_len; in skd_sg_io_get_and_check_args()
1441 uint nbytes = sizeof(*iov) * sgp->iovec_count; in skd_sg_io_get_and_check_args()
1448 sgp->iovec_count); in skd_sg_io_get_and_check_args()
1452 sksgio->iovcnt = sgp->iovec_count; in skd_sg_io_get_and_check_args()
1454 if (copy_from_user(iov, sgp->dxferp, nbytes)) { in skd_sg_io_get_and_check_args()
1456 skdev->name, __func__, __LINE__, sgp->dxferp); in skd_sg_io_get_and_check_args()
1464 for (i = 0; i < sgp->iovec_count; i++) { in skd_sg_io_get_and_check_args()
1471 if (sgp->dxfer_len < iov_data_len) { in skd_sg_io_get_and_check_args()
1473 sgp->iovec_count, in skd_sg_io_get_and_check_args()
1474 sgp->dxfer_len); in skd_sg_io_get_and_check_args()
1475 sksgio->dxfer_len = sgp->dxfer_len; in skd_sg_io_get_and_check_args()
1480 if (sgp->dxfer_direction != SG_DXFER_NONE) { in skd_sg_io_get_and_check_args()
1784 struct sg_io_hdr *sgp = &sksgio->sg; in skd_sg_io_put_status() local
1790 sgp->status = skspcl->req.completion.status; in skd_sg_io_put_status()
1793 sgp->masked_status = sgp->status & STATUS_MASK; in skd_sg_io_put_status()
1794 sgp->msg_status = 0; in skd_sg_io_put_status()
1795 sgp->host_status = 0; in skd_sg_io_put_status()
1796 sgp->driver_status = 0; in skd_sg_io_put_status()
1797 sgp->resid = resid; in skd_sg_io_put_status()
1798 if (sgp->masked_status || sgp->host_status || sgp->driver_status) in skd_sg_io_put_status()
1799 sgp->info |= SG_INFO_CHECK; in skd_sg_io_put_status()
1803 sgp->status, sgp->masked_status, sgp->resid); in skd_sg_io_put_status()
1805 if (sgp->masked_status == SAM_STAT_CHECK_CONDITION) { in skd_sg_io_put_status()
1806 if (sgp->mx_sb_len > 0) { in skd_sg_io_put_status()
1810 nbytes = min_t(u32, nbytes, sgp->mx_sb_len); in skd_sg_io_put_status()
1812 sgp->sb_len_wr = nbytes; in skd_sg_io_put_status()
1814 if (__copy_to_user(sgp->sbp, ei, nbytes)) { in skd_sg_io_put_status()
1817 sgp->sbp); in skd_sg_io_put_status()
1823 if (__copy_to_user(sksgio->argp, sgp, sizeof(sg_io_hdr_t))) { in skd_sg_io_put_status()