Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-19 Thread Ohad Ben-Cohen
On Mon, Nov 19, 2012 at 10:01 AM, Liu, Chuansheng
 wrote:
>> > Rechecked these codes, the trace event runtime_pm_status is added newly,
>> this is different with vanilla
>> > Linux.
>>
>> Not sure I'm following - can you point out which tree are you working with ?
> Sorry, it is added internally for debugging purpose.

Maybe keep this patch internally too then ?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-19 Thread Liu, Chuansheng


> -Original Message-
> From: Ohad Ben-Cohen [mailto:o...@wizery.com]
> Sent: Monday, November 19, 2012 3:47 PM
> To: Liu, Chuansheng
> Cc: Chris Ball; linux-...@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when
> calling pm_runtime_set_active()
> 
> On Mon, Nov 19, 2012 at 7:57 AM, Liu, Chuansheng
>  wrote:
> > Rechecked these codes, the trace event runtime_pm_status is added newly,
> this is different with vanilla
> > Linux.
> 
> Not sure I'm following - can you point out which tree are you working with ?
Sorry, it is added internally for debugging purpose.
> 
> > 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.
> 
> This sounds more reasonable.
I will try a V2 patch soon, thanks.

> 
> Thanks,
> Ohad.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-19 Thread Liu, Chuansheng


 -Original Message-
 From: Ohad Ben-Cohen [mailto:o...@wizery.com]
 Sent: Monday, November 19, 2012 3:47 PM
 To: Liu, Chuansheng
 Cc: Chris Ball; linux-...@vger.kernel.org; linux-kernel@vger.kernel.org
 Subject: Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when
 calling pm_runtime_set_active()
 
 On Mon, Nov 19, 2012 at 7:57 AM, Liu, Chuansheng
 chuansheng@intel.com wrote:
  Rechecked these codes, the trace event runtime_pm_status is added newly,
 this is different with vanilla
  Linux.
 
 Not sure I'm following - can you point out which tree are you working with ?
Sorry, it is added internally for debugging purpose.
 
  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.
 
 This sounds more reasonable.
I will try a V2 patch soon, thanks.

 
 Thanks,
 Ohad.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-19 Thread Ohad Ben-Cohen
On Mon, Nov 19, 2012 at 10:01 AM, Liu, Chuansheng
chuansheng@intel.com wrote:
  Rechecked these codes, the trace event runtime_pm_status is added newly,
 this is different with vanilla
  Linux.

 Not sure I'm following - can you point out which tree are you working with ?
 Sorry, it is added internally for debugging purpose.

Maybe keep this patch internally too then ?
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-18 Thread Ohad Ben-Cohen
On Mon, Nov 19, 2012 at 7:57 AM, Liu, Chuansheng
 wrote:
> Rechecked these codes, the trace event runtime_pm_status is added newly, this 
> is different with vanilla
> Linux.

Not sure I'm following - can you point out which tree are you working with ?

> 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.

This sounds more reasonable.

Thanks,
Ohad.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-18 Thread Liu, Chuansheng


> -Original Message-
> From: Ohad Ben-Cohen [mailto:o...@wizery.com]
> Sent: Saturday, November 17, 2012 3:33 AM
> To: Liu, Chuansheng
> Cc: Chris Ball; linux-...@vger.kernel.org; linux-kernel@vger.kernel.org
> 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
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-18 Thread Liu, Chuansheng


 -Original Message-
 From: Ohad Ben-Cohen [mailto:o...@wizery.com]
 Sent: Saturday, November 17, 2012 3:33 AM
 To: Liu, Chuansheng
 Cc: Chris Ball; linux-...@vger.kernel.org; linux-kernel@vger.kernel.org
 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@intel.com 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-18 Thread Ohad Ben-Cohen
On Mon, Nov 19, 2012 at 7:57 AM, Liu, Chuansheng
chuansheng@intel.com wrote:
 Rechecked these codes, the trace event runtime_pm_status is added newly, this 
 is different with vanilla
 Linux.

Not sure I'm following - can you point out which tree are you working with ?

 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.

This sounds more reasonable.

Thanks,
Ohad.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-16 Thread Ohad Ben-Cohen
Hi Liu,

On Fri, Nov 16, 2012 at 2:54 PM, Chuansheng Liu
 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 ?

> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling pm_runtime_set_active()

2012-11-16 Thread Ohad Ben-Cohen
Hi Liu,

On Fri, Nov 16, 2012 at 2:54 PM, Chuansheng Liu
chuansheng@intel.com 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 ?

 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-15 Thread Chuansheng Liu
Subject: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling 
pm_runtime_set_active()

Meet one panic as the below:
<1>[   15.067350] BUG: unable to handle kernel NULL pointer dereference at   
(null)
<1>[   15.074455] IP: [] strlen+0x12/0x20
<4>[   15.078803] *pde = 
<0>[   15.081674] Oops:  [#1] PREEMPT SMP
<4>[   15.101676] Pid: 5, comm: kworker/u:0 Tainted: G C  
3.0.34-140729-g7f9d5c5 #1 Intel Corporation Medfield/BKB2
<4>[   15.112282] EIP: 0060:[] EFLAGS: 00010046 CPU: 0
<4>[   15.117760] EIP is at strlen+0x12/0x20
<4>[   15.121496] EAX:  EBX: f344cc04 ECX:  EDX: f344cc04
<4>[   15.127754] ESI: c12bcee0 EDI:  EBP: f586fe74 ESP: f586fe70
<4>[   15.134013]  DS: 007b ES: 007b FS: 00d8 GS:  SS: 0068
<0>[   15.139406] Process kworker/u:0 (pid: 5, ti=f586e000 task=f585b440 
task.ti=f586e000)
<0>[   15.147140] Stack:
<4>[   15.149141]  f344cc04 f586feb0 c12bcf12  f586fe9c  
0007 0082
<4>[   15.156877]  0092 0002 c1b01ee4 f586feb8 c1635f31 f3b42330 
c12bcee0 f344cc04
<4>[   15.164616]  f586fed0 c152f815 f3b42330 f3b42328  f344cc04 
f589b804 
<0>[   15.172351] Call Trace:
<4>[   15.174810]  [] ftrace_raw_event_runtime_pm_status+0x32/0x140
<4>[   15.181411]  [] ? sdio_enable_wide.part.8+0x61/0x80
<4>[   15.187145]  [] ? perf_trace_runtime_pm_usage+0x1a0/0x1a0
<4>[   15.193407]  [] __update_runtime_status+0x65/0x90
<4>[   15.198968]  [] __pm_runtime_set_status+0xe0/0x1b0
<4>[   15.204621]  [] mmc_attach_sdio+0x2f6/0x410
<4>[   15.209666]  [] mmc_rescan+0x240/0x2b0
<4>[   15.214270]  [] process_one_work+0xfe/0x3f0
<4>[   15.219311]  [] ? wake_up_process+0x14/0x20
<4>[   15.224357]  [] ? mmc_detect_card_removed+0x80/0x80
<4>[   15.230091]  [] worker_thread+0x121/0x2f0
<4>[   15.234958]  [] ? rescuer_thread+0x1e0/0x1e0
<4>[   15.240091]  [] kthread+0x6d/0x80
<4>[   15.244264]  [] ? __init_kthread_worker+0x30/0x30
<4>[   15.245485]  [] kernel_thread_helper+0x6/0x10

The reason is pm_runtime_set_active() is called before the device name
is set, and the dev name setting is done at mmc_add_card() laterly.

So when calling pm_runtime_set_active(), it will hit the strlen(devname==0)
which trigger the panic.

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).

Signed-off-by: liu chuansheng 
---
 drivers/mmc/core/sdio.c |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 2273ce6..73746af 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -1104,6 +1104,15 @@ int mmc_attach_sdio(struct mmc_host *host)
 */
if (host->caps & MMC_CAP_POWER_OFF_CARD) {
/*
+* pm_runtime_set_active will use strlen(dev_name),
+* we must set it in advance to avoid crash,
+* although it is the duplication in mmc_add_card
+* laterly.
+*/
+   dev_set_name(>dev, "%s:%04x", mmc_hostname(card->host),
+   card->rca);
+
+   /*
 * Let runtime PM core know our card is active
 */
err = pm_runtime_set_active(>dev);
-- 
1.7.0.4



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2012-11-15 Thread Chuansheng Liu
Subject: [PATCH] mmc,sdio: Fix the panic due to devname NULL when calling 
pm_runtime_set_active()

Meet one panic as the below:
1[   15.067350] BUG: unable to handle kernel NULL pointer dereference at   
(null)
1[   15.074455] IP: [c1496a42] strlen+0x12/0x20
4[   15.078803] *pde = 
0[   15.081674] Oops:  [#1] PREEMPT SMP
4[   15.101676] Pid: 5, comm: kworker/u:0 Tainted: G C  
3.0.34-140729-g7f9d5c5 #1 Intel Corporation Medfield/BKB2
4[   15.112282] EIP: 0060:[c1496a42] EFLAGS: 00010046 CPU: 0
4[   15.117760] EIP is at strlen+0x12/0x20
4[   15.121496] EAX:  EBX: f344cc04 ECX:  EDX: f344cc04
4[   15.127754] ESI: c12bcee0 EDI:  EBP: f586fe74 ESP: f586fe70
4[   15.134013]  DS: 007b ES: 007b FS: 00d8 GS:  SS: 0068
0[   15.139406] Process kworker/u:0 (pid: 5, ti=f586e000 task=f585b440 
task.ti=f586e000)
0[   15.147140] Stack:
4[   15.149141]  f344cc04 f586feb0 c12bcf12  f586fe9c  
0007 0082
4[   15.156877]  0092 0002 c1b01ee4 f586feb8 c1635f31 f3b42330 
c12bcee0 f344cc04
4[   15.164616]  f586fed0 c152f815 f3b42330 f3b42328  f344cc04 
f589b804 
0[   15.172351] Call Trace:
4[   15.174810]  [c12bcf12] ftrace_raw_event_runtime_pm_status+0x32/0x140
4[   15.181411]  [c1635f31] ? sdio_enable_wide.part.8+0x61/0x80
4[   15.187145]  [c12bcee0] ? perf_trace_runtime_pm_usage+0x1a0/0x1a0
4[   15.193407]  [c152f815] __update_runtime_status+0x65/0x90
4[   15.198968]  [c1531170] __pm_runtime_set_status+0xe0/0x1b0
4[   15.204621]  [c1637366] mmc_attach_sdio+0x2f6/0x410
4[   15.209666]  [c162f520] mmc_rescan+0x240/0x2b0
4[   15.214270]  [c12643ce] process_one_work+0xfe/0x3f0
4[   15.219311]  [c1242754] ? wake_up_process+0x14/0x20
4[   15.224357]  [c162f2e0] ? mmc_detect_card_removed+0x80/0x80
4[   15.230091]  [c12649c1] worker_thread+0x121/0x2f0
4[   15.234958]  [c12648a0] ? rescuer_thread+0x1e0/0x1e0
4[   15.240091]  [c12684cd] kthread+0x6d/0x80
4[   15.244264]  [c1268460] ? __init_kthread_worker+0x30/0x30
4[   15.245485]  [c186dc3a] kernel_thread_helper+0x6/0x10

The reason is pm_runtime_set_active() is called before the device name
is set, and the dev name setting is done at mmc_add_card() laterly.

So when calling pm_runtime_set_active(), it will hit the strlen(devname==0)
which trigger the panic.

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).

Signed-off-by: liu chuansheng chuansheng@intel.com
---
 drivers/mmc/core/sdio.c |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 2273ce6..73746af 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -1104,6 +1104,15 @@ int mmc_attach_sdio(struct mmc_host *host)
 */
if (host-caps  MMC_CAP_POWER_OFF_CARD) {
/*
+* pm_runtime_set_active will use strlen(dev_name),
+* we must set it in advance to avoid crash,
+* although it is the duplication in mmc_add_card
+* laterly.
+*/
+   dev_set_name(card-dev, %s:%04x, mmc_hostname(card-host),
+   card-rca);
+
+   /*
 * Let runtime PM core know our card is active
 */
err = pm_runtime_set_active(card-dev);
-- 
1.7.0.4



--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/