To make sure that these drivers do not leave staging before they
are properly converted to use the new GPIO descriptor API, create
the TODO file with this work item.
staging: ks7010: init local variables when they are declared in ks7010_sdio_probe
This commit change init point of two variables to forward them to
init time. This variables are just being assigned some lines after
and it is more clear to init them when the init value is known and
in this case this is known when they are declared.
staging: ks7010: review includes of michael_mic.c file
This commit reviews includes of michael_mic.c source file
removing those which are not being used at all and
reordering the remaining ones in alphabetically order.
staging: ks7010: review includes of ks7010_sdio file
This commit reviews includes of ks7010_sdio.c source
file removing those which are not being used at all.
Kernel header includes have been ordered alphabetically
also.
staging: ks7010: review includes of ks_wlan.h file
This commit reviews includes of ks_wlan.h header file.
It removes those which are not being used at all. It
also reorder remaining ones in alphabetical order.
The linux/module.h include file has been moved to the
correct file which is ks7010_sdio.c in order to be able
to compile the driver without problems.
staging: ks7010: review includes of ks_wlan_net.c file
This commit reviews really needed includes in ks_wlan_net.c
source file. It removes those which are not needed at all.
It also reorder the remaining ones in alphabetical order.
staging: ks7010: refactor ks_wlan_set_tx_gain function
This commit refactors ks_wlan_set_rx_gain function to
improve readability:
- error condition is handling the error to avoid an 'else'
- ternary operator is used to clean if-else block assignment.
staging: ks7010: refactor ks_wlan_set_rx_gain function
This commit refactors ks_wlan_set_rx_gain function to
improve readability:
- error condition is handling the error to avoid an 'else'
- ternary operator is used to clean if-else block assignment.
staging: ks7010: refactor ks_wlan_set_encode function
This commit refactors ks_wlan_set_encode function to improve
readability. It just removes level indentation in some paths
as well as removes not needed conditions paths which was
checked before. Changes are as follows:
- (dwrq->length > MAX_KEY_SIZE) check has been moved to the top.
- extra check about (dwrq->length > 0) inside an if block where
that was the condition to enter inside it has been removed.
- (dwrq->flags & IW_ENCODE_NOKEY) check has been turned to avoid
one level indentation.
- extra check (index >= 0) && (index < 4) has been removed. In
the top of the file invalid index values are being checked
so it has no sense to check that again.
- remove commented line.
staging: ks7010: remove auxiliar zeros buffer in ks_wlan_get_encode
This commit removes the local buffer zeros in ks_wlan_get_encode
function. It also refactors related conditions in order to fill
'extra' output parameter of the function. Originally this zeros
is just memset to zeros and only being used if drw->length is
truncated to zero because of priv->reg.wep_key[index].size is
greater than 16 chars. In those cases the final if statement is
just using zeros but it is using memcpy with a length of zero
bytes which has no sense. Instead of that just handle the good
case copying from the same source the number of bytes of
priv->reg.wep_key[index].size. If it is zero the final 'extra'
parameter won't be copied at all because the number of bytes to
copy will be zero. With this change the code gets simplified.
This commit removes ieee802_1x_eapol_key struct because
it is not being used at all. It also removes definitions
related to some fields of the removed struct.
staging: ks7010: group some cases in switch-case block in hostif_mib_set_confirm
This commit groups some case statements because its behaviour is
just do nothing which is the same as the default. Clean 'break'
keyword in those which are affected.
staging: ks7010: refactor code for hostif_sme_sleep_set function
This commit refactors code for hostif_sme_sleep_set function. This
function was using a switch-case block to handle only two states
where the action to do for them is the same. Just refactor a bit
to check for return condition at first and doing the common action
after in other case.
staging: ks7010: change return value of ks_wlan_do_power_save function
This commit change return value of ks_wlan_do_power_save function
from int to void. This function is just returning zero and return
value is not being checked also, so it is nonsense to return an
integer.
staging: ks7010: use linux circular buffer header macros to handle tx and rx queues
This commit replace current custom implementation of some circular
buffer head and tail logic in favour of the use of macros defined
in linux circ_buf.h header. Queue related inline function names
have been review also.
staging: ks7010: change sdio related read/write function parameter types
This commit reviews and changes SDIO related read and write
functions parameter types to use the preferred u* kernel types.
Also length parameter which was defined as int has nonsense
because calls to this functions are called useing an unsigned
instead. Because of this length parameters have been changed
also into unsigned int.
staging: ks7010: fix remaining long line warnings in ks7010_sdio source
This commit fixes remaining checkpatch warnings because of
the use of lines longer than 80 characters in ks7010_sdio
source file. After this clean, this file has no remaining
warnings around.
This commit removes a comment which has nonsense because
it is obvious what the code does just reading SET_NETDEV_DEV
declaration. This also fixes a checkpatch warning because a
line longer than 80 characters.
staging: ks7010: remove '\' character from michael_block function
This commit removes '\' character from michael_block function.
It seems these two were not removed properly in the following
commit:
- staging: ks7010: replace MichaelBlockFunction macro with
inline function (c61cc2cc3be358da10121d119356dfe67fe240f2).
This commit removes KS_WLAN_MEM_FLAG definition which is
hiding GFP_ATOMIC along the code. It is better to use directly
GFP_ATOMIC in kmalloc's because this it is easier to read.
staging: ks7010: rewrite hif_align_size inline function
This commit rewrites hif_align_size inline function to
improve readability. It also change parameters and return
type from int to size_t which is the correct and the one
which is being used when this function is called from
several points of the code.
staging: ks7010: move and rename DEVICE_ALIGNMENT into correct header
This commit moves DEVICE_ALIGNMENT definition into the header ks_hostif.h
which is where it is being used. This is also defined always so just
remove nosense undef definitions also and clean some preprocessor
conditional directives in hif_align_size function.
staging: ks7010: change ETHER_HDR_SIZE definition to use the size of struct ether_hdr
This commit changes ETHER_HDR_SIZE definition which is a hardcoded
number using the size of the structure ether_hdr which is the one
for what this definition has been created. This improves readability
and makes clear the intention of this definition along the code.
staging: ks7010: remove two redefined defines in eap_packet.h header
This commit removes GENERIC_INFO_ELEM and RSN_INFO_ELEM definitions
from eap_packet.h header file which are not being used at all.
These two are also defined in the ks_wlan_net.c source file as
GENERIC_INFO_ELEM_ID and RSN_INFO_ELEM_ID with the same values.
staging: ks7010: remove not used enum values from eap_packet.h header
This commit removes not used at all enum values from eap_packet.h
header file. This values are defined in the kernel ieee80211.h
header and the only one that is being used in ks_wlan_net.c source
which is WLAN_REASON_MIC_FAILURE is being used from this header.
staging: ks7010_sdio: fix NULL pointer dereference and memory leak
priv is being explicitly dereferenced when it is still null, when
jumping to goto label err_free_netdev, before it is properly
updated with a valid memory address.
Also, when this happens, memory allocated for netdev at line 854:
netdev = alloc_etherdev(sizeof(*priv)) is not being free'd before
return, hence there is a memory leak.
The current code looks a bit too complicated and can be replaced
by just directly freeing netdev before return.
Notice that card->priv = NULL isn't required because the next thing
we do to card is kfree(card).
Addresses-Coverity-ID: 1467844 ("Explicit null dereferenced") Suggested-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jia-Ju Bai [Tue, 10 Apr 2018 08:58:54 +0000 (16:58 +0800)]
staging: ks7010: Replace mdelay with usleep_range in ks7010_upload_firmware
ks7010_upload_firmware() is never called in atomic context.
The call chain ending up at ks7010_upload_firmware() is:
[1] ks7010_upload_firmware() <- ks7010_sdio_probe()
ks7010_sdio_probe() is set as ".probe" in struct sdio_driver.
This function is not called in atomic context.
Despite never getting called from atomic context, ks7010_upload_firmware()
calls mdelay() to busily wait.
This is not necessary and can be replaced with usleep_range() to
avoid busy waiting.
This is found by a static analysis tool named DCNS written by myself.
And I also manually check it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: ks7010: ks7010: factor out firmware copy process into ks7010_copy_firmware
This commit extracts firmware copy process into a new function
ks7010_copy_firmware. Because rom_buf is only needed for this
process, memory request for it has been also moved to this new
function so the error handling label release_host_and_free has
been renamed to release_host into ks7010_upload_firmware original
function.
staging: ks7010: fix label to jump to in error case
This commit fixs the label to jump to when in case
an error occurs disabling interrupts. At this point
of the code sdio_enable_func() function has been
successfully called.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:52 +0000 (23:08 -0700)]
staging: ks7010: Change 'device_open_status' to a bool.
The 'device_open_status' member of 'struct ks_wlan_private' is only
ever set to zero or one, so it makes more sense for it to be a bool
instead of an int.
All of the net_device_ops callbacks are named after their counterparts
in the kernel's 'struct net_device_ops', except
ks_wlan_set_multicast_list(). Rename it to ks_wlan_set_rx_mode() for
greater consistency.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:47 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct michael_mic_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct michael_mic_t' with 'struct michael_mic'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:46 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct wps_status_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct wps_status_t' with 'struct wps_status'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:45 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct pmk_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct pmk_t' with 'struct pmk'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:44 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct pmk_list_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct pmk_list_t' with 'struct pmk_list'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:43 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct wpa_status_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct wpa_status_t' with 'struct wpa_status'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:42 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct mic_failure_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct mic_failure_t' with 'struct mic_failure'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:41 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct wpa_key_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct wpa_key_t' with 'struct wpa_key'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:40 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct scan_ext_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct scan_ext_t' with 'struct scan_ext'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:39 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct sleep_status_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct sleep_status_t' with 'struct sleep_status'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:38 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct power_save_status_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct power_save_status_t' with 'struct
power_save_status'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:37 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct local_eeprom_sum_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct local_eeprom_sum_t' with 'struct
local_eeprom_sum'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:36 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct local_gain_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct local_gain_t' with 'struct local_gain'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:35 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct local_aplist_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct local_aplist_t' with 'struct local_aplist'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:34 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct local_ap_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct local_ap_t' with 'struct local_ap'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:33 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct wps_ie_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct wps_ie_t' with 'struct wps_ie'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:32 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct rsn_ie_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct rsn_ie_t' with 'struct rsn_ie'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:31 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostt_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostt_t' with 'struct hostt'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:29 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_mic_failure_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_mic_failure_request_t' with 'struct
hostif_mic_failure_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:27 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_sleep_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_sleep_request_t' with 'struct
hostif_sleep_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:25 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_phy_information_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_phy_information_request_t' with 'struct
hostif_phy_information_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:23 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_bss_scan_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_bss_scan_request_t' with 'struct
hostif_bss_scan_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:21 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct association_response_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct association_response_t' with 'struct
association_response'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:20 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct association_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct association_request_t' with 'struct
association_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:17 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_adhoc_set2_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_adhoc_set2_request_t' with 'struct
hostif_adhoc_set2_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:16 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_adhoc_set_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_adhoc_set_request_t' with 'struct
hostif_adhoc_set_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:14 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_infrastructure_set_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_infrastructure_set_request_t' with
'struct hostif_infrastructure_set_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:12 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_ps_adhoc_set_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_ps_adhoc_set_request_t' with 'struct
hostif_ps_adhoc_set_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:11 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_request_t' with 'struct hostif_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:09 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct hostif_stop_request_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct hostif_stop_request_t' with 'struct
hostif_stop_request'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:07 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct link_ap_info_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct link_ap_info_t' with 'struct link_ap_info'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:06 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct ap_info_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct ap_info_t' with 'struct ap_info'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:05 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct rate_set16_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct rate_set16_t' with 'struct rate_set16'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:02 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct ibss_parms_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct ibss_parms_t' with 'struct ibss_parms'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:01 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct cf_parms_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct cf_parms_t' with 'struct cf_parms'.
Quytelda Kahja [Sat, 31 Mar 2018 06:08:00 +0000 (23:08 -0700)]
staging: ks7010: Remove trailing _t from 'struct ds_parms_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct ds_parms_t' with 'struct ds_parms'.
Quytelda Kahja [Sat, 31 Mar 2018 06:07:59 +0000 (23:07 -0700)]
staging: ks7010: Remove trailing _t from 'struct fh_parms_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct fh_parms_t' with 'struct fh_parms'.
Quytelda Kahja [Sat, 31 Mar 2018 06:07:58 +0000 (23:07 -0700)]
staging: ks7010: Remove trailing _t from 'struct rate_set8_t'.
The "_t" suffix is not needed for structure names in this driver, and is a
reflection of an older typedef system that is no longer in place. Replace
all occurences of 'struct rate_set8_t' with 'struct rate_set8'.