On 9/29/22 12:02 PM, Bart Van Assche wrote: > On 9/28/22 19:53, Mike Christie wrote: >> +/* Make sure any sense buffer is the correct size. */ >> +#define scsi_exec_req(_args) \ >> +({ \ >> + BUILD_BUG_ON(_args.sense && \ >> + _args.sense_len != SCSI_SENSE_BUFFERSIZE); \ >> + __scsi_exec_req(&_args); \ >> +}) > > Hi Mike, > > I will take a close look at the entire patch series when I have the time. > So far I only have one question: if _args would be surrounded with > parentheses in the above macro, would that allow to leave out one pair of > parentheses from the code that uses this macro? Would that allow to write > scsi_exec_req((struct scsi_exec_args){...}) instead of > scsi_exec_req(((struct scsi_exec_args){...}))? > You mean like: #define scsi_exec_req(_args) \ ({ \ BUILD_BUG_ON((_args).sense && \ (_args).sense_len != SCSI_SENSE_BUFFERSIZE); \ __scsi_exec_req(&(_args)); \ }) right? That didn't help. You still get the error: error: macro "scsi_exec_req" passed 8 arguments, but takes just 1