RE: [PATCH] mmc,sdio: Fix the panic due to devname NULL whencalling pm_runtime_set_active()

From: Liu, Chuansheng
Date: Mon Nov 19 2012 - 00:57:53 EST




> -----Original Message-----
> From: Ohad Ben-Cohen [mailto:ohad@xxxxxxxxxx]
> Sent: Saturday, November 17, 2012 3:33 AM
> To: Liu, Chuansheng
> Cc: Chris Ball; linux-mmc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when
> calling pm_runtime_set_active()
>
> Hi Liu,
>
> On Fri, Nov 16, 2012 at 2:54 PM, Chuansheng Liu
> <chuansheng.liu@xxxxxxxxx> wrote:
> > So when calling pm_runtime_set_active(), it will hit the strlen(devname==0)
> > which trigger the panic.
>
> Can you please point to the exact line of code that triggers this panic ?
The call trace is as below:
mmc_rescan
-> mmc_rescan_try_freq
-> mmc_attach_sdio
-> pm_runtime_set_active
-> __pm_runtime_set_status
-> __update_runtime_status
-> trace_runtime_pm_status
This function is corresponding to the below code in trace/events/power.h:
TRACE_EVENT(runtime_pm_status,

TP_PROTO(struct device *dev, int status),

TP_ARGS(dev, status),

TP_STRUCT__entry(
__string(devname, dev_name(dev))

Rechecked these codes, the trace event runtime_pm_status is added newly, this is different with vanilla
Linux. But it is just a new trace event.

So I still think that calling pm_runtime_set_active is not safe when dev_name is NULL.
If you agree this point, I can refine the code that moving "init the dev_name " from mmc_add_card
to mmc_sdio_init_card. Thanks.

>
> > Here before calling pm_runtime_set_active(), set the dev name, although
> > it is duplicated with mmc_add_card(), but it do not break the original
> > design(commit 81968561b).
>
> Normally we'd like to avoid such a solution, so let's first make sure
> we understand the problem.
>
> Have you tried thinking how come this shows up only now - has any of
> the relevant code been changed lately ? Are you using a vanilla Linux
> tree ?
>
> Thanks,
> Ohad.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/