mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 05:11:32 +00:00
wl3501_cs: avoid bogus gcc-6 warning
gcc-6 on x86 started warning about wl3501_get_encode when building with -O2: drivers/net/wireless/wl3501_cs.c: In function ‘wl3501_get_encode’: drivers/net/wireless/wl3501_cs.c:1769:5: warning: ‘implemented’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1686:19: warning: ‘threshold’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1702:20: warning: ‘threshold’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1719:23: warning: ‘txpow’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1752:20: warning: ‘retry’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1806:25: warning: ‘pwr_state’ may be used uninitialized in this function drivers/net/wireless/wl3501_cs.c:1383:24: warning: ‘value’ may be used uninitialized in this function I could not figure out what exactly confuses gcc here, but splitting the wl3501_get_mib_value function into two helps the compiler to figure out that the variables are not actually used uninitialized, and makes it slightly clearer to a human reader what the function actually does and which parts of it are under the spinlock. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
5e94913f67
commit
2683f7dd9a
@ -378,8 +378,7 @@ static int wl3501_esbq_exec(struct wl3501_card *this, void *sig, int sig_size)
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int wl3501_get_mib_value(struct wl3501_card *this, u8 index,
|
||||
void *bf, int size)
|
||||
static int wl3501_request_mib(struct wl3501_card *this, u8 index, void *bf)
|
||||
{
|
||||
struct wl3501_get_req sig = {
|
||||
.sig_id = WL3501_SIG_GET_REQ,
|
||||
@ -395,20 +394,32 @@ static int wl3501_get_mib_value(struct wl3501_card *this, u8 index,
|
||||
wl3501_set_to_wla(this, ptr, &sig, sizeof(sig));
|
||||
wl3501_esbq_req(this, &ptr);
|
||||
this->sig_get_confirm.mib_status = 255;
|
||||
spin_unlock_irqrestore(&this->lock, flags);
|
||||
rc = wait_event_interruptible(this->wait,
|
||||
this->sig_get_confirm.mib_status != 255);
|
||||
if (!rc)
|
||||
memcpy(bf, this->sig_get_confirm.mib_value,
|
||||
size);
|
||||
goto out;
|
||||
rc = 0;
|
||||
}
|
||||
}
|
||||
spin_unlock_irqrestore(&this->lock, flags);
|
||||
out:
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int wl3501_get_mib_value(struct wl3501_card *this, u8 index,
|
||||
void *bf, int size)
|
||||
{
|
||||
int rc;
|
||||
|
||||
rc = wl3501_request_mib(this, index, bf);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = wait_event_interruptible(this->wait,
|
||||
this->sig_get_confirm.mib_status != 255);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
memcpy(bf, this->sig_get_confirm.mib_value, size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int wl3501_pwr_mgmt(struct wl3501_card *this, int suspend)
|
||||
{
|
||||
struct wl3501_pwr_mgmt_req sig = {
|
||||
|
Loading…
Reference in New Issue
Block a user