2013-02-22 14:50:54

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: [PATCH v2 5/5] ath6kl: Fix a debugfs crash for USB devices

From: Mohammed Shafi Shajakhan <[email protected]>

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 <[email protected]>
Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
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)
+ 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



2013-03-09 07:38:34

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] ath6kl: Fix a debugfs crash for USB devices

Mohammed Shafi <[email protected]> writes:

> On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
> <[email protected]> wrote:
>> From: Mohammed Shafi Shajakhan <[email protected]>
>>
>> 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 <[email protected]>
>> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>

[...]

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

--
Kalle Valo

2013-03-08 15:29:20

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] ath6kl: Fix a debugfs crash for USB devices

On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
<[email protected]> wrote:
> From: Mohammed Shafi Shajakhan <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
> ---
> 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 [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html



--
thanks,
shafi

2013-03-12 16:15:27

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] ath6kl: Fix a debugfs crash for USB devices

On 03/09/2013 01:08 PM, Kalle Valo wrote:
> Mohammed Shafi <[email protected]> writes:
>
>> On Fri, Feb 22, 2013 at 8:20 PM, Mohammed Shafi Shajakhan
>> <[email protected]> wrote:
>>> From: Mohammed Shafi Shajakhan <[email protected]>
>>>
>>> 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 <[email protected]>
>>> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
>
> [...]
>
>>> @@ -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!

--
thanks,
shafi