Staging: bcm: Reverse semaphore locking in IOCTL_BCM_BUFFER_DOWNLOAD_STOP.
This patch reorders the semaphore locking. It makes better sense to first evaluate fw_download_sema semaphore then NVMRdmWrmLocl semaphore. The fw_download_sema is suppose to be acquired in the START ioctl. If this is not true, then it does not make sense to continue. Signed-off-by: Kevin McKinney <klmckinney1@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
8fbebb091a
commit
19a177e6fb
|
@ -860,6 +860,11 @@ cntrlEnd:
|
|||
}
|
||||
|
||||
case IOCTL_BCM_BUFFER_DOWNLOAD_STOP: {
|
||||
if (!down_trylock(&Adapter->fw_download_sema)) {
|
||||
up(&Adapter->fw_download_sema);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (down_trylock(&Adapter->NVMRdmWrmLock)) {
|
||||
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0,
|
||||
"FW download blocked as EEPROM Read/Write is in progress\n");
|
||||
|
@ -867,11 +872,6 @@ cntrlEnd:
|
|||
return -EACCES;
|
||||
}
|
||||
|
||||
if (!down_trylock(&Adapter->fw_download_sema)) {
|
||||
up(&Adapter->fw_download_sema);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
Adapter->bBinDownloaded = TRUE;
|
||||
Adapter->bCfgDownloaded = TRUE;
|
||||
atomic_set(&Adapter->CurrNumFreeTxDesc, 0);
|
||||
|
|
Loading…
Reference in New Issue