On Mon, 17 Aug 2015, Alan Stern wrote: > The routines in scsi_rpm.c assume that if a runtime-PM callback is > invoked for a SCSI device, it can only mean that the device's driver > has asked the block layer to handle the runtime power management (by > calling blk_pm_runtime_init(), which among other things sets q->dev). > > However, this assumption turns out to be wrong for things like the ses > driver. Normally ses devices are not allowed to do runtime PM, but > userspace can override this setting. If this happens, the kernel gets > a NULL pointer dereference when blk_post_runtime_resume() tries to use > the uninitialized q->dev pointer. > > This patch fixes the problem by calling the block layer's runtime-PM > routines only if the device's driver really does have a runtime-PM > callback routine. Since ses doesn't define any such callbacks, the > crash won't occur. > > This fixes Bugzilla #101371. > > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Reported-by: Stanisław Pitucha <viraptor@xxxxxxxxx> > Reported-by: Ilan Cohen <ilanco@xxxxxxxxx> > Tested-by: Ilan Cohen <ilanco@xxxxxxxxx> James: I forgot to include a CC: <stable@xxxxxxxxxxxxxxx> tag. Can you add that in when you merge this patch? Thanks. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html