Loading drivers/scsi/scsi_lib.c +10 −7 Original line number Diff line number Diff line Loading @@ -246,15 +246,18 @@ void scsi_wait_req(struct scsi_request *sreq, const void *cmnd, void *buffer, unsigned bufflen, int timeout, int retries) { DECLARE_COMPLETION(wait); int write = sreq->sr_data_direction == DMA_TO_DEVICE; struct request *req; if (bufflen) req = blk_rq_map_kern(sreq->sr_device->request_queue, sreq->sr_data_direction == DMA_TO_DEVICE, buffer, bufflen, __GFP_WAIT); else req = blk_get_request(sreq->sr_device->request_queue, READ, req = blk_get_request(sreq->sr_device->request_queue, write, __GFP_WAIT); if (bufflen && blk_rq_map_kern(sreq->sr_device->request_queue, req, buffer, bufflen, __GFP_WAIT)) { sreq->sr_result = DRIVER_ERROR << 24; blk_put_request(req); return; } req->flags |= REQ_NOMERGE; req->waiting = &wait; req->end_io = scsi_wait_req_end_io; Loading Loading
drivers/scsi/scsi_lib.c +10 −7 Original line number Diff line number Diff line Loading @@ -246,15 +246,18 @@ void scsi_wait_req(struct scsi_request *sreq, const void *cmnd, void *buffer, unsigned bufflen, int timeout, int retries) { DECLARE_COMPLETION(wait); int write = sreq->sr_data_direction == DMA_TO_DEVICE; struct request *req; if (bufflen) req = blk_rq_map_kern(sreq->sr_device->request_queue, sreq->sr_data_direction == DMA_TO_DEVICE, buffer, bufflen, __GFP_WAIT); else req = blk_get_request(sreq->sr_device->request_queue, READ, req = blk_get_request(sreq->sr_device->request_queue, write, __GFP_WAIT); if (bufflen && blk_rq_map_kern(sreq->sr_device->request_queue, req, buffer, bufflen, __GFP_WAIT)) { sreq->sr_result = DRIVER_ERROR << 24; blk_put_request(req); return; } req->flags |= REQ_NOMERGE; req->waiting = &wait; req->end_io = scsi_wait_req_end_io; Loading