> 
> >  static int ufs_bsg_verify_query_size(struct ufs_hba *hba,
> >                                  unsigned int request_len,
> > -                                unsigned int reply_len,
> > -                                int desc_len, enum query_opcode desc_op)
> > +                                unsigned int reply_len)
> >  {
> >     int min_req_len = sizeof(struct ufs_bsg_request);
> >     int min_rsp_len = sizeof(struct ufs_bsg_reply);
> >
> > -   if (desc_op == UPIU_QUERY_OPCODE_WRITE_DESC)
> > -           min_req_len += desc_len;
> > -
> 
> I think this calling convention cleanup should go into a ѕeparate
> prep patch with its own changelog.
Done

> 
> > +   descp = kzalloc(*desc_len, GFP_KERNEL);
> > +   if (!descp)
> > +           return -ENOMEM;
> > +
> > +   if (desc_op == UPIU_QUERY_OPCODE_WRITE_DESC)
> > +           sg_copy_to_buffer(job->request_payload.sg_list,
> > +                             job->request_payload.sg_cnt, descp,
> > +                             *desc_len);
> 
> So we always need to bounce buffer here?  Is there any good reason
> we can't pass through the sglist to the low-level functions? and
> share the low-level code used in ->queuecommand?
This is a device management command - there isn't really a data phase here,
And we are not using any component of queuecommand, 
Specifically not the scsi command sg list.

> 
> Also isn't this an ABI change for the write side?  Are we sure there
> are not existing users relying on it?   Is there an API document
> that needs to be updated?
Right. I did updated Documentation/scsi/ufs.txt.
It's in the beginning of the patch, you might have missed it.
I am counting that ufs-utils will be the first utility to use ufs-bsg, 
and it's waiting for this series to get accepted first.

> 
> Last but not least the commit log needs to be a lot more detailed.
Done.

Reply via email to