2015-06-06 11:02:33

by Taehee Yoo

[permalink] [raw]
Subject: [PATCH] rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion".

The variable "fw_version" is used in the _ResetDigitalProcedure1().
but It is not initialized. so I add init codes for "fw_version" and
"fw_subversion".

Signed-off-by: Taehee Yoo <[email protected]>
---
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
index 29983bc..9b5ce28 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
@@ -233,6 +233,8 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
pfwdata = (u8 *)rtlhal->pfirmware;
fwsize = rtlhal->fwsize;
+ rtlhal->fw_version = pfwheader->version;
+ rtlhal->fw_subversion = pfwheader->subversion;

if (IS_FW_HEADER_EXIST(pfwheader)) {
RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
--
2.1.4



2015-06-07 12:12:35

by Taehee Yoo

[permalink] [raw]
Subject: Re: [PATCH] rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion".

2015-06-07 1:18 GMT+09:00 Larry Finger <[email protected]>:
> On 06/06/2015 06:02 AM, Taehee Yoo wrote:
>>
>> The variable "fw_version" is used in the _ResetDigitalProcedure1().
>> but It is not initialized. so I add init codes for "fw_version" and
>> "fw_subversion".
>>
>> Signed-off-by: Taehee Yoo <[email protected]>
>> ---
>> drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
>> b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
>> index 29983bc..9b5ce28 100644
>> --- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
>> +++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
>> @@ -233,6 +233,8 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
>> pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
>> pfwdata = (u8 *)rtlhal->pfirmware;
>> fwsize = rtlhal->fwsize;
>> + rtlhal->fw_version = pfwheader->version;
>> + rtlhal->fw_subversion = pfwheader->subversion;
>>
>> if (IS_FW_HEADER_EXIST(pfwheader)) {
>> RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
>
>
> This patch is not correct. If the firmware does not have a header, then you
> will be changing fw_version and fw_subversion to random bytes from the body
> of the firmware. At present, they are initialized to zero as part of the
> rtl_priv struct. You need to move the two new statements inside the
> IS_FW_HEADER_EXIST test, but before pfwdata is adjusted to remove the
> header.
>
> Larry
>
>

Thank you for your review!
I will resend a patch as V2.

2015-06-06 16:18:30

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion".

On 06/06/2015 06:02 AM, Taehee Yoo wrote:
> The variable "fw_version" is used in the _ResetDigitalProcedure1().
> but It is not initialized. so I add init codes for "fw_version" and
> "fw_subversion".
>
> Signed-off-by: Taehee Yoo <[email protected]>
> ---
> drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
> index 29983bc..9b5ce28 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
> @@ -233,6 +233,8 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
> pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
> pfwdata = (u8 *)rtlhal->pfirmware;
> fwsize = rtlhal->fwsize;
> + rtlhal->fw_version = pfwheader->version;
> + rtlhal->fw_subversion = pfwheader->subversion;
>
> if (IS_FW_HEADER_EXIST(pfwheader)) {
> RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,

This patch is not correct. If the firmware does not have a header, then you will
be changing fw_version and fw_subversion to random bytes from the body of the
firmware. At present, they are initialized to zero as part of the rtl_priv
struct. You need to move the two new statements inside the IS_FW_HEADER_EXIST
test, but before pfwdata is adjusted to remove the header.

Larry