diff mbox

[v2,5/5] ath6kl: Fix a debugfs crash for USB devices

Message ID 1361544646-9059-1-git-send-email-mohammed@qca.qualcomm.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Shajakhan, Mohammed Feb. 22, 2013, 2:50 p.m. UTC
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>

Credit distribution stats is currently implemented
only for SDIO. This fixes a crash in debugfs for
USB interface.

BUG: unable to handle kernel NULL pointer dereference at   (null)
IP: [<f91c2048>] read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
*pde = b62bd067
Oops: 0000 [#1] SMP

EIP: 0060:[<f91c2048>] EFLAGS: 00210246 CPU: 0
EIP is at read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
EAX: 00000000 EBX: e6f7a9c0 ECX: e7b148b8 EDX: 00000000
ESI: 000000c8 EDI: e7b14000 EBP: e6e09f64 ESP: e6e09f30
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process cat (pid: 4058, ti=e6e08000 task=e50cf230 task.ti=e6e08000)
Stack:
00008000 00000000 e6e09f64 c1132d3c 00004e71 e50cf230 00008000 089e4000
e7b148b8 00000000 e6f7a9c0 00008000 089e4000 e6e09f8c c11331fc e6e09f98
00000001 e6e09f7c f91c2010 e6e09fac e6f7a9c0 089e4877 089e4000 e6e09fac

	Call Trace:
	[<c1132d3c>] ? rw_verify_area+0x6c/0x120
	[<c11331fc>] vfs_read+0x8c/0x160
	[<f91c2010>] ? read_file_war_stats+0x130/0x130 [ath6kl_core]
	[<c113330d>] sys_read+0x3d/0x70
	[<c15755b4>] syscall_call+0x7/0xb
	[<c1570000>] ? fill_powernow_table_pstate+0x127/0x127

Cc: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath6kl/debug.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Mohammed Shafi March 8, 2013, 3:29 p.m. UTC | #1
On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
<mohammed@qca.qualcomm.com> wrote:
> From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
>
> Credit distribution stats is currently implemented
> only for SDIO. This fixes a crash in debugfs for
> USB interface.
>
> BUG: unable to handle kernel NULL pointer dereference at   (null)
> IP: [<f91c2048>] read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
> *pde = b62bd067
> Oops: 0000 [#1] SMP
>
> EIP: 0060:[<f91c2048>] EFLAGS: 00210246 CPU: 0
> EIP is at read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
> EAX: 00000000 EBX: e6f7a9c0 ECX: e7b148b8 EDX: 00000000
> ESI: 000000c8 EDI: e7b14000 EBP: e6e09f64 ESP: e6e09f30
> DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> Process cat (pid: 4058, ti=e6e08000 task=e50cf230 task.ti=e6e08000)
> Stack:
> 00008000 00000000 e6e09f64 c1132d3c 00004e71 e50cf230 00008000 089e4000
> e7b148b8 00000000 e6f7a9c0 00008000 089e4000 e6e09f8c c11331fc e6e09f98
> 00000001 e6e09f7c f91c2010 e6e09fac e6f7a9c0 089e4877 089e4000 e6e09fac
>
>         Call Trace:
>         [<c1132d3c>] ? rw_verify_area+0x6c/0x120
>         [<c11331fc>] vfs_read+0x8c/0x160
>         [<f91c2010>] ? read_file_war_stats+0x130/0x130 [ath6kl_core]
>         [<c113330d>] sys_read+0x3d/0x70
>         [<c15755b4>] syscall_call+0x7/0xb
>         [<c1570000>] ? fill_powernow_table_pstate+0x127/0x127
>
> Cc: Ryan Hsu <ryanhsu@qca.qualcomm.com>
> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath6kl/debug.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless/ath/ath6kl/debug.c
> index 15cfe30..c557367 100644
> --- a/drivers/net/wireless/ath/ath6kl/debug.c
> +++ b/drivers/net/wireless/ath/ath6kl/debug.c
> @@ -1752,8 +1752,10 @@ int ath6kl_debug_init_fs(struct ath6kl *ar)
>         debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar,
>                             &fops_tgt_stats);
>
> -       debugfs_create_file("credit_dist_stats", S_IRUSR, ar->debugfs_phy, ar,
> -                           &fops_credit_dist_stats);
> +       if (ar->hif_type != ATH6KL_HIF_TYPE_SDIO)

made a mistake,
should be > +       if (ar->hif_type == ATH6KL_HIF_TYPE_SDIO)
will send another patch
> +               debugfs_create_file("credit_dist_stats", S_IRUSR,
> +                                   ar->debugfs_phy, ar,
> +                                   &fops_credit_dist_stats);
>
>         debugfs_create_file("endpoint_stats", S_IRUSR | S_IWUSR,
>                             ar->debugfs_phy, ar, &fops_endpoint_stats);
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kalle Valo March 9, 2013, 7:38 a.m. UTC | #2
Mohammed Shafi <shafi.wireless@gmail.com> writes:

> On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
> <mohammed@qca.qualcomm.com> wrote:
>> From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
>>
>> Credit distribution stats is currently implemented
>> only for SDIO. This fixes a crash in debugfs for
>> USB interface.
>>
>> BUG: unable to handle kernel NULL pointer dereference at   (null)
>> IP: [<f91c2048>] read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
>> *pde = b62bd067
>> Oops: 0000 [#1] SMP
>>
>> EIP: 0060:[<f91c2048>] EFLAGS: 00210246 CPU: 0
>> EIP is at read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
>> EAX: 00000000 EBX: e6f7a9c0 ECX: e7b148b8 EDX: 00000000
>> ESI: 000000c8 EDI: e7b14000 EBP: e6e09f64 ESP: e6e09f30
>> DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
>> Process cat (pid: 4058, ti=e6e08000 task=e50cf230 task.ti=e6e08000)
>> Stack:
>> 00008000 00000000 e6e09f64 c1132d3c 00004e71 e50cf230 00008000 089e4000
>> e7b148b8 00000000 e6f7a9c0 00008000 089e4000 e6e09f8c c11331fc e6e09f98
>> 00000001 e6e09f7c f91c2010 e6e09fac e6f7a9c0 089e4877 089e4000 e6e09fac
>>
>>         Call Trace:
>>         [<c1132d3c>] ? rw_verify_area+0x6c/0x120
>>         [<c11331fc>] vfs_read+0x8c/0x160
>>         [<f91c2010>] ? read_file_war_stats+0x130/0x130 [ath6kl_core]
>>         [<c113330d>] sys_read+0x3d/0x70
>>         [<c15755b4>] syscall_call+0x7/0xb
>>         [<c1570000>] ? fill_powernow_table_pstate+0x127/0x127
>>
>> Cc: Ryan Hsu <ryanhsu@qca.qualcomm.com>
>> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>

[...]

>> @@ -1752,8 +1752,10 @@ int ath6kl_debug_init_fs(struct ath6kl *ar)
>>         debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar,
>>                             &fops_tgt_stats);
>>
>> -       debugfs_create_file("credit_dist_stats", S_IRUSR, ar->debugfs_phy, ar,
>> -                           &fops_credit_dist_stats);
>> +       if (ar->hif_type != ATH6KL_HIF_TYPE_SDIO)
>
> made a mistake,
> should be > +       if (ar->hif_type == ATH6KL_HIF_TYPE_SDIO)
> will send another patch

Oh, I missed as well. I rebased ath6kl-next branch and dropped patch 5
(but kept patches 1-4). Please resend patch 5.
Shajakhan, Mohammed March 12, 2013, 4:15 p.m. UTC | #3
On 03/09/2013 01:08 PM, Kalle Valo wrote:
> Mohammed Shafi <shafi.wireless@gmail.com> writes:
>
>> On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
>> <mohammed@qca.qualcomm.com> wrote:
>>> From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
>>>
>>> Credit distribution stats is currently implemented
>>> only for SDIO. This fixes a crash in debugfs for
>>> USB interface.
>>>
>>> BUG: unable to handle kernel NULL pointer dereference at   (null)
>>> IP: [<f91c2048>] read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
>>> *pde = b62bd067
>>> Oops: 0000 [#1] SMP
>>>
>>> EIP: 0060:[<f91c2048>] EFLAGS: 00210246 CPU: 0
>>> EIP is at read_file_credit_dist_stats+0x38/0x330 [ath6kl_core]
>>> EAX: 00000000 EBX: e6f7a9c0 ECX: e7b148b8 EDX: 00000000
>>> ESI: 000000c8 EDI: e7b14000 EBP: e6e09f64 ESP: e6e09f30
>>> DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
>>> Process cat (pid: 4058, ti=e6e08000 task=e50cf230 task.ti=e6e08000)
>>> Stack:
>>> 00008000 00000000 e6e09f64 c1132d3c 00004e71 e50cf230 00008000 089e4000
>>> e7b148b8 00000000 e6f7a9c0 00008000 089e4000 e6e09f8c c11331fc e6e09f98
>>> 00000001 e6e09f7c f91c2010 e6e09fac e6f7a9c0 089e4877 089e4000 e6e09fac
>>>
>>>          Call Trace:
>>>          [<c1132d3c>] ? rw_verify_area+0x6c/0x120
>>>          [<c11331fc>] vfs_read+0x8c/0x160
>>>          [<f91c2010>] ? read_file_war_stats+0x130/0x130 [ath6kl_core]
>>>          [<c113330d>] sys_read+0x3d/0x70
>>>          [<c15755b4>] syscall_call+0x7/0xb
>>>          [<c1570000>] ? fill_powernow_table_pstate+0x127/0x127
>>>
>>> Cc: Ryan Hsu <ryanhsu@qca.qualcomm.com>
>>> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
>
> [...]
>
>>> @@ -1752,8 +1752,10 @@ int ath6kl_debug_init_fs(struct ath6kl *ar)
>>>          debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar,
>>>                              &fops_tgt_stats);
>>>
>>> -       debugfs_create_file("credit_dist_stats", S_IRUSR, ar->debugfs_phy, ar,
>>> -                           &fops_credit_dist_stats);
>>> +       if (ar->hif_type != ATH6KL_HIF_TYPE_SDIO)
>>
>> made a mistake,
>> should be > +       if (ar->hif_type == ATH6KL_HIF_TYPE_SDIO)
>> will send another patch
>
> Oh, I missed as well. I rebased ath6kl-next branch and dropped patch 5
> (but kept patches 1-4). Please resend patch 5.
>

sure thanks!
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless/ath/ath6kl/debug.c
index 15cfe30..c557367 100644
--- a/drivers/net/wireless/ath/ath6kl/debug.c
+++ b/drivers/net/wireless/ath/ath6kl/debug.c
@@ -1752,8 +1752,10 @@  int ath6kl_debug_init_fs(struct ath6kl *ar)
 	debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar,
 			    &fops_tgt_stats);
 
-	debugfs_create_file("credit_dist_stats", S_IRUSR, ar->debugfs_phy, ar,
-			    &fops_credit_dist_stats);
+	if (ar->hif_type != ATH6KL_HIF_TYPE_SDIO)
+		debugfs_create_file("credit_dist_stats", S_IRUSR,
+				    ar->debugfs_phy, ar,
+				    &fops_credit_dist_stats);
 
 	debugfs_create_file("endpoint_stats", S_IRUSR | S_IWUSR,
 			    ar->debugfs_phy, ar, &fops_endpoint_stats);