On Mon, Aug 24, 2020 at 10:48:32AM -0700, Bart Van Assche wrote: > On 2020-08-23 07:57, Alan Stern wrote: > > The problem is fixed by checking that the queue's runtime-PM status > > isn't RPM_SUSPENDED before allowing a request to be issued, [ ... ] > > Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> > > Can, can you help with testing this patch? > > Thanks, > > Bart. Martin: (I forgot to ask this question several weeks ago, while you were running your tests. Better ask it now before I forget again...) I suspect the old runtime-PM code in the block layer would have worked okay in your SD cardreader test if the BLK_MQ_REQ_PREEMPT flag had not been set. Do you know why the flag was set, or what line of code caused it to be set? As I recall, the request that failed was a read-ahead. It's not clear to me why such a request would need to have BLK_MQ_REQ_PREEMPT set. Although there may be other reasons for having that flag, at this point we're concerned with requests that are part of the runtime-resume procedure. A read-ahead does not fall into that category. Do you think you can find the answer? Perhaps we should add a separate BLK_MQ_REQ_PM flag. Alan Stern