On 2021-03-03 22:50, Bean Huo wrote:
On Wed, 2021-03-03 at 15:29 +0900, Daejun Park wrote:
+
+static inline void ufshpb_put_pre_req(struct ufshpb_lu *hpb,
+ struct ufshpb_req *pre_req)
+{
+ pre_req->req = NULL;
+ pre_req->bio = NULL;
+ list_add_tail(&pre_req->list_req, &hpb->lh_pre_req_free);
+ hpb->num_inflight_pre_req--;
+}
+
+static void ufshpb_pre_req_compl_fn(struct request *req,
blk_status_t error)
+{
+ struct ufshpb_req *pre_req = (struct ufshpb_req *)req-
>end_io_data;
+ struct ufshpb_lu *hpb = pre_req->hpb;
+ unsigned long flags;
+ struct scsi_sense_hdr sshdr;
+
+ if (error) {
+ dev_err(&hpb->sdev_ufs_lu->sdev_dev, "block status
%d", error);
+ scsi_normalize_sense(pre_req->sense,
SCSI_SENSE_BUFFERSIZE,
+ &sshdr);
+ dev_err(&hpb->sdev_ufs_lu->sdev_dev,
+ "code %x sense_key %x asc %x ascq %x",
+ sshdr.response_code,
+ sshdr.sense_key, sshdr.asc, sshdr.ascq);
+ dev_err(&hpb->sdev_ufs_lu->sdev_dev,
+ "byte4 %x byte5 %x byte6 %x additional_len
%x",
+ sshdr.byte4, sshdr.byte5,
+ sshdr.byte6, sshdr.additional_length);
+ }
How can you print out sense_key and sense code here? sense code will
not be copied to pre_req->sense. you should directly use
scsi_request->sense or let pre_req->sense point to scsi_request->sense.
You update the new version patch so quickly. In another word, I am
wondering if you tested your patch before submitting?
Bean
Bean is right about the sense buffer...