• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/

Lines Matching refs:srp

182 static int sg_start_req(Sg_request *srp, unsigned char *cmd);
183 static int sg_finish_rem_req(Sg_request * srp);
186 Sg_request * srp);
190 static int sg_common_write(Sg_fd * sfp, Sg_request * srp,
192 static int sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer);
195 static void sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size);
196 static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp);
201 static int sg_remove_request(Sg_fd * sfp, Sg_request * srp);
347 Sg_request *srp;
388 srp = sg_get_rq_mark(sfp, req_pack_id);
389 if (!srp) { /* now wait on packet to arrive */
402 (srp = sg_get_rq_mark(sfp, req_pack_id))),
415 if (srp->header.interface_id != '\0') {
416 retval = sg_new_read(sfp, buf, count, srp);
420 hp = &srp->header;
433 ((srp->data.cmd_opcode >= 0xc0) && (12 == hp->cmd_len)) ? 1 : 0;
439 memcpy(old_hdr->sense_buffer, srp->sense_b,
462 old_hdr->result = (srp->sense_b[0] == 0 &&
480 if (sg_read_oxfer(srp, buf, count - SZ_SG_HEADER)) {
487 sg_finish_rem_req(srp);
495 sg_new_read(Sg_fd * sfp, char __user *buf, size_t count, Sg_request * srp)
497 sg_io_hdr_t *hp = &srp->header;
511 len = 8 + (int) srp->sense_b[7]; /* Additional sense length field */
513 if (copy_to_user(hp->sbp, srp->sense_b, len)) {
527 err = sg_finish_rem_req(srp);
539 Sg_request *srp;
567 if (!(srp = sg_add_request(sfp))) {
577 sg_remove_request(sfp, srp);
595 sg_remove_request(sfp, srp);
598 hp = &srp->header;
638 k = sg_common_write(sfp, srp, cmnd, sfp->timeout, blocking);
648 Sg_request *srp;
660 if (!(srp = sg_add_request(sfp))) {
664 srp->sg_io_owned = sg_io_owned;
665 hp = &srp->header;
667 sg_remove_request(sfp, srp);
671 sg_remove_request(sfp, srp);
676 sg_remove_request(sfp, srp);
680 sg_remove_request(sfp, srp);
684 sg_remove_request(sfp, srp);
688 ul_timeout = msecs_to_jiffies(srp->header.timeout);
691 sg_remove_request(sfp, srp);
695 sg_remove_request(sfp, srp);
699 sg_remove_request(sfp, srp);
703 sg_remove_request(sfp, srp);
706 k = sg_common_write(sfp, srp, cmnd, timeout, blocking);
710 *o_srp = srp;
715 sg_common_write(Sg_fd * sfp, Sg_request * srp,
720 sg_io_hdr_t *hp = &srp->header;
722 srp->data.cmd_opcode = cmnd[0]; /* hold opcode of command */
733 k = sg_start_req(srp, cmnd);
736 sg_finish_rem_req(srp);
740 if (srp->bio)
741 blk_end_request_all(srp->rq, -EIO);
742 sg_finish_rem_req(srp);
763 srp->rq->timeout = timeout;
766 srp->rq, 1, sg_rq_end_io);
778 Sg_request *srp;
801 blocking, read_only, 1, &srp);
807 (srp->done || sdp->detached),
812 if (srp->done) {
813 srp->done = 2;
817 srp->orphan = 1;
821 result = sg_new_read(sfp, p, SZ_SG_IO_HDR, srp);
891 for (srp = sfp->headrp; srp; srp = srp->nextrp) {
892 if ((1 == srp->done) && (!srp->sg_io_owned)) {
895 __put_user(srp->header.pack_id, ip);
904 for (val = 0, srp = sfp->headrp; srp; srp = srp->nextrp) {
905 if ((1 == srp->done) && (!srp->sg_io_owned))
971 for (srp = sfp->headrp, val = 0; val < SG_MAX_QUEUE;
972 ++val, srp = srp ? srp->nextrp : srp) {
974 if (srp) {
975 rinfo[val].req_state = srp->done + 1;
977 srp->header.masked_status &
978 srp->header.host_status &
979 srp->header.driver_status;
980 if (srp->done)
982 srp->header.duration;
986 (ms > srp->header.duration) ?
987 (ms - srp->header.duration) : 0;
989 rinfo[val].orphan = srp->orphan;
991 srp->sg_io_owned;
993 srp->header.pack_id;
995 srp->header.usr_ptr;
1131 Sg_request *srp;
1140 for (srp = sfp->headrp; srp; srp = srp->nextrp) {
1142 if ((0 == res) && (1 == srp->done) && (!srp->sg_io_owned))
1249 struct sg_request *srp = container_of(work, struct sg_request, ew.work);
1250 struct sg_fd *sfp = srp->parentfp;
1252 sg_finish_rem_req(srp);
1262 struct sg_request *srp = rq->end_io_data;
1270 if (WARN_ON(srp->done != 0))
1273 sfp = srp->parentfp;
1286 sdp->disk->disk_name, srp->header.pack_id, result));
1287 srp->header.resid = resid;
1289 srp->header.duration = (ms > srp->header.duration) ?
1290 (ms - srp->header.duration) : 0;
1294 srp->header.status = 0xff & result;
1295 srp->header.masked_status = status_byte(result);
1296 srp->header.msg_status = msg_byte(result);
1297 srp->header.host_status = host_byte(result);
1298 srp->header.driver_status = driver_byte(result);
1300 ((CHECK_CONDITION == srp->header.masked_status) ||
1301 (COMMAND_TERMINATED == srp->header.masked_status)))
1316 /* Rely on write phase to clean out srp status values, so no "else" */
1319 if (unlikely(srp->orphan)) {
1321 srp->sg_io_owned = 0;
1325 srp->done = done;
1336 INIT_WORK(&srp->ew.work, sg_rq_end_io_usercontext);
1337 schedule_work(&srp->ew.work);
1622 static int sg_start_req(Sg_request *srp, unsigned char *cmd)
1626 Sg_fd *sfp = srp->parentfp;
1627 sg_io_hdr_t *hp = &srp->header;
1631 Sg_scatter_hold *req_schp = &srp->data;
1649 srp->rq = rq;
1650 rq->end_io_data = srp;
1651 rq->sense = srp->sense_b;
1667 sg_link_reserve(sfp, srp, dxfer_len);
1708 srp->bio = rq->bio;
1718 static int sg_finish_rem_req(Sg_request * srp)
1722 Sg_fd *sfp = srp->parentfp;
1723 Sg_scatter_hold *req_schp = &srp->data;
1725 SCSI_LOG_TIMEOUT(4, printk("sg_finish_rem_req: res_used=%d\n", (int) srp->res_used));
1726 if (srp->rq) {
1727 if (srp->bio)
1728 ret = blk_rq_unmap_user(srp->bio);
1730 blk_put_request(srp->rq);
1733 if (srp->res_used)
1734 sg_unlink_reserve(sfp, srp);
1738 sg_remove_request(sfp, srp);
1859 sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer)
1861 Sg_scatter_hold *schp = &srp->data;
1908 sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size)
1910 Sg_scatter_hold *req_schp = &srp->data;
1914 srp->res_used = 1;
1937 sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp)
1939 Sg_scatter_hold *req_schp = &srp->data;
1949 srp->res_used = 0;
2016 sg_remove_request(Sg_fd * sfp, Sg_request * srp)
2023 if ((!sfp) || (!srp) || (!sfp->headrp))
2027 if (srp == prev_rp) {
2033 if (srp == rp) {
2133 const Sg_request *srp;
2137 for (srp = sfp->headrp; srp; srp = srp->nextrp)
2138 if (srp->res_used)
2141 return srp ? 1 : 0;
2519 Sg_request *srp;
2538 for (m = 0, srp = fp->headrp;
2539 srp != NULL;
2540 ++m, srp = srp->nextrp) {
2541 hp = &srp->header;
2543 if (srp->res_used) {
2556 blen = srp->data.bufflen;
2557 usg = srp->data.k_use_sg;
2558 seq_printf(s, srp->done ?
2559 ((1 == srp->done) ? "rcv:" : "fin:")
2562 srp->header.pack_id, blen);
2563 if (srp->done)
2573 (int) srp->data.cmd_opcode);