On 28.09.22 15:56, John Garry wrote: > On 28/09/2022 14:17, Johannes Thumshirn wrote: >>> +static inline struct request *sas_task_find_rq(struct sas_task *task) >>> +{ >>> + struct scsi_cmnd *scmd; >>> + >>> + if (!task || !task->uldd_task) >>> + return NULL; >> Is anyone actually calling sas_task_find_rq with a NULL task? > > Yeah, unfortunately. An example - the only one I think - is in the > pm8001 driver: pm8001_ccb_alloc() function which takes a task pointer > which may be NULL, and this function calls sas_task_find_rq() > >> That doesn't make a lot of sense from an API POV for me, having >> the only argument allowed to be NULL (and not being a *free() >> kind of function). > > I suppose that I could change to only call sas_task_find_rq() for > non-NULL sas_task pointers (and remove the task check). If this is done in only a few drivers I'd go that route TBH. AFAICS hishi sas doesn't call sas_task_find_rq with a NULL task, so it's only pm8001