Re: [PATCH] spi: fsl-dspi: fix NULL pointer dereference
From: Vladimir Oltean
Date: Fri Oct 30 2020 - 09:18:33 EST
On Thu, Oct 29, 2020 at 04:40:35PM +0800, Qiang Zhao wrote:
> From: Zhao Qiang <qiang.zhao@xxxxxxx>
>
> Since commit 530b5affc675 ("spi: fsl-dspi: fix use-after-free in
> remove path"), this driver causes a kernel oops:
>
> [ 64.587431] Unable to handle kernel NULL pointer dereference at
> virtual address 0000000000000020
> [..]
> [ 64.756080] Call trace:
> [ 64.758526] dspi_suspend+0x30/0x78
> [ 64.762012] platform_pm_suspend+0x28/0x70
> [ 64.766107] dpm_run_callback.isra.19+0x24/0x70
> [ 64.770635] __device_suspend+0xf4/0x2f0
> [ 64.774553] dpm_suspend+0xec/0x1e0
> [ 64.778036] dpm_suspend_start+0x80/0xa0
> [ 64.781957] suspend_devices_and_enter+0x118/0x4f0
> [ 64.786743] pm_suspend+0x1e0/0x260
> [ 64.790227] state_store+0x8c/0x118
> [ 64.793712] kobj_attr_store+0x18/0x30
> [ 64.797459] sysfs_kf_write+0x40/0x58
> [ 64.801118] kernfs_fop_write+0x148/0x240
> [ 64.805126] vfs_write+0xc0/0x230
> [ 64.808436] ksys_write+0x6c/0x100
> [ 64.811833] __arm64_sys_write+0x1c/0x28
> [ 64.815753] el0_svc_common.constprop.3+0x68/0x170
> [ 64.820541] do_el0_svc+0x24/0x90
> [ 64.823853] el0_sync_handler+0x118/0x168
> [ 64.827858] el0_sync+0x158/0x180
>
> This is because since this commit, the drivers private data point to
> "dspi" instead of "ctlr", the codes in suspend and resume func were
> not modified correspondly.
>
> Fixes: 530b5affc675 ("spi: fsl-dspi: fix use-after-free in remove path")
> Signed-off-by: Zhao Qiang <qiang.zhao@xxxxxxx>
> ---
Reviewed-by: Vladimir Oltean <olteanv@xxxxxxxxx>
Please resend with Mark's comment. I would prefer that you even remove
the stack trace completely and make it more obvious in the commit
message itself that the NULL pointer occurs during suspend/resume.
Somehow that managed to get obscured in your current version. It is also
not helpful at all that there already exists a commit titled 'spi:
fsl-dspi: fix NULL pointer dereference' on this driver. This causes
confusion for backporters. Please provide a unique commit message.
Thanks.