mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 11:51:27 +00:00
Staging: bcm: Outsourced cmd handling to function
This patch outsourced the true-branch for the IOCTL_BCM_NVM_READ command handling to shorten the bcm_char_ioctl_nvm_rw() function. Signed-off-by: Matthias Beyer <mail@beyermatthias.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
22840adaf7
commit
8224ac2a78
@ -1,6 +1,44 @@
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include "headers.h"
|
||||
|
||||
static int bcm_handle_nvm_read_cmd(struct bcm_mini_adapter *Adapter,
|
||||
PUCHAR pReadData, struct bcm_nvm_readwrite *stNVMReadWrite)
|
||||
{
|
||||
INT Status = STATUS_FAILURE;
|
||||
|
||||
down(&Adapter->NVMRdmWrmLock);
|
||||
|
||||
if ((Adapter->IdleMode == TRUE) || (Adapter->bShutStatus == TRUE) ||
|
||||
(Adapter->bPreparingForLowPowerMode == TRUE)) {
|
||||
|
||||
BCM_DEBUG_PRINT(Adapter,
|
||||
DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
|
||||
"Device is in Idle/Shutdown Mode\n");
|
||||
up(&Adapter->NVMRdmWrmLock);
|
||||
kfree(pReadData);
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
Status = BeceemNVMRead(Adapter, (PUINT)pReadData,
|
||||
stNVMReadWrite->uiOffset,
|
||||
stNVMReadWrite->uiNumBytes);
|
||||
up(&Adapter->NVMRdmWrmLock);
|
||||
|
||||
if (Status != STATUS_SUCCESS) {
|
||||
kfree(pReadData);
|
||||
return Status;
|
||||
}
|
||||
|
||||
if (copy_to_user(stNVMReadWrite->pBuffer, pReadData,
|
||||
stNVMReadWrite->uiNumBytes)) {
|
||||
kfree(pReadData);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
* Function - bcm_char_open()
|
||||
*
|
||||
@ -1449,34 +1487,10 @@ static int bcm_char_ioctl_nvm_rw(void __user *argp,
|
||||
|
||||
do_gettimeofday(&tv0);
|
||||
if (IOCTL_BCM_NVM_READ == cmd) {
|
||||
down(&Adapter->NVMRdmWrmLock);
|
||||
|
||||
if ((Adapter->IdleMode == TRUE) ||
|
||||
(Adapter->bShutStatus == TRUE) ||
|
||||
(Adapter->bPreparingForLowPowerMode == TRUE)) {
|
||||
|
||||
BCM_DEBUG_PRINT(Adapter,
|
||||
DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
|
||||
"Device is in Idle/Shutdown Mode\n");
|
||||
up(&Adapter->NVMRdmWrmLock);
|
||||
kfree(pReadData);
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
Status = BeceemNVMRead(Adapter, (PUINT)pReadData,
|
||||
stNVMReadWrite.uiOffset, stNVMReadWrite.uiNumBytes);
|
||||
up(&Adapter->NVMRdmWrmLock);
|
||||
|
||||
if (Status != STATUS_SUCCESS) {
|
||||
kfree(pReadData);
|
||||
return Status;
|
||||
}
|
||||
|
||||
if (copy_to_user(stNVMReadWrite.pBuffer, pReadData,
|
||||
stNVMReadWrite.uiNumBytes)) {
|
||||
kfree(pReadData);
|
||||
return -EFAULT;
|
||||
}
|
||||
int ret = bcm_handle_nvm_read_cmd(Adapter, pReadData,
|
||||
&stNVMReadWrite);
|
||||
if (ret != STATUS_SUCCESS)
|
||||
return ret;
|
||||
} else {
|
||||
down(&Adapter->NVMRdmWrmLock);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user