Commit 203a512f authored by James Bottomley's avatar James Bottomley

[SCSI] Revert "[SCSI] aacraid: fib context lock for management ioctls"

This reverts commit a119ee8e.

Adaptec found this was causing system lockups.
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 40f62028
...@@ -243,7 +243,6 @@ static int next_getadapter_fib(struct aac_dev * dev, void __user *arg) ...@@ -243,7 +243,6 @@ static int next_getadapter_fib(struct aac_dev * dev, void __user *arg)
* Search the list of AdapterFibContext addresses on the adapter * Search the list of AdapterFibContext addresses on the adapter
* to be sure this is a valid address * to be sure this is a valid address
*/ */
spin_lock_irqsave(&dev->fib_lock, flags);
entry = dev->fib_list.next; entry = dev->fib_list.next;
fibctx = NULL; fibctx = NULL;
...@@ -259,18 +258,17 @@ static int next_getadapter_fib(struct aac_dev * dev, void __user *arg) ...@@ -259,18 +258,17 @@ static int next_getadapter_fib(struct aac_dev * dev, void __user *arg)
fibctx = NULL; fibctx = NULL;
} }
if (!fibctx) { if (!fibctx) {
spin_unlock_irqrestore(&dev->fib_lock, flags);
dprintk ((KERN_INFO "Fib Context not found\n")); dprintk ((KERN_INFO "Fib Context not found\n"));
return -EINVAL; return -EINVAL;
} }
if((fibctx->type != FSAFS_NTC_GET_ADAPTER_FIB_CONTEXT) || if((fibctx->type != FSAFS_NTC_GET_ADAPTER_FIB_CONTEXT) ||
(fibctx->size != sizeof(struct aac_fib_context))) { (fibctx->size != sizeof(struct aac_fib_context))) {
spin_unlock_irqrestore(&dev->fib_lock, flags);
dprintk ((KERN_INFO "Fib Context corrupt?\n")); dprintk ((KERN_INFO "Fib Context corrupt?\n"));
return -EINVAL; return -EINVAL;
} }
status = 0; status = 0;
spin_lock_irqsave(&dev->fib_lock, flags);
/* /*
* If there are no fibs to send back, then either wait or return * If there are no fibs to send back, then either wait or return
* -EAGAIN * -EAGAIN
...@@ -328,9 +326,7 @@ return_fib: ...@@ -328,9 +326,7 @@ return_fib:
int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx) int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx)
{ {
struct fib *fib; struct fib *fib;
unsigned long flags;
spin_lock_irqsave(&dev->fib_lock, flags);
/* /*
* First free any FIBs that have not been consumed. * First free any FIBs that have not been consumed.
*/ */
...@@ -353,7 +349,6 @@ int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx) ...@@ -353,7 +349,6 @@ int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx)
* Remove the Context from the AdapterFibContext List * Remove the Context from the AdapterFibContext List
*/ */
list_del(&fibctx->next); list_del(&fibctx->next);
spin_unlock_irqrestore(&dev->fib_lock, flags);
/* /*
* Invalidate context * Invalidate context
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment