[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <56608C5D.9080709@kernel.dk>
Date: Thu, 3 Dec 2015 11:39:25 -0700
From: Jens Axboe <axboe@...nel.dk>
To: Ken Xue <ken.xue@....com>, linux-scsi@...r.kernel.org,
linux-block@...r.kernel.org, stable@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: Xiangliang.Yu@....com, stern@...land.harvard.edu,
JBottomley@...n.com, SPG_Linux_Kernel@....com,
michael.terry@...onical.com
Subject: Re: [PATCH 2/2] SCSI: Fix NULL pointer dereference in runtime PM
On 11/30/2015 11:45 PM, Ken Xue wrote:
> The routines in scsi_pm.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 checking q->dev in block layer before
> handle runtime PM. Since ses doesn't define any PM callbacks and call
> blk_pm_runtime_init(), the crash won't occur.
>
> This fixes Bugzilla #101371.
> https://bugzilla.kernel.org/show_bug.cgi?id=101371
>
> More discussion can be found from below link.
> http://marc.info/?l=linux-scsi&m=144163730531875&w=2
>
Added for 4.4, thanks.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists