OSDN Git Service

rtlwifi: rtl8192ce: rtl8192cu: Fix endian issue
authorLarry Finger <Larry.Finger@lwfinger.net>
Mon, 3 Aug 2015 20:56:11 +0000 (15:56 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 13 Aug 2015 12:31:20 +0000 (15:31 +0300)
commite41c513599187bd100644566bde86541c01db1d6
tree88ce5e6740e61c417e468b9810fabfd89005af90
parentd3928d0946bf75dc6709a08b12839ecb889f2564
rtlwifi: rtl8192ce: rtl8192cu: Fix endian issue

Commit e996db69833a (rtlwifi: rtl8192c: Add init codes for "fw_version"
and "fw_subversion") added initialization for fw_version, but failed to
note that the variable in the firmware header is little-endian. The
following Sparse warning results:

  CHECK   drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: warning: incorrect type in assignment (different base types)
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36:    expected unsigned short [unsigned] [usertype] fw_version
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36:    got restricted __le16 [usertype] version

When fixing this problem, I noticed that several of the drivers contain
nearly identical copies of the firmware header struct, and that only the one
used in rtl8192c{e,u} had correct endian notation. The struct has been
moved into a common header, and the other drivers will be fixed in
subsequant patches.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.h
drivers/net/wireless/rtlwifi/wifi.h