diff options
Diffstat (limited to 'kernel/drivers/scsi/aacraid/linit.c')
-rw-r--r-- | kernel/drivers/scsi/aacraid/linit.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/drivers/scsi/aacraid/linit.c b/kernel/drivers/scsi/aacraid/linit.c index 3b6e5c67e..aa6eccb89 100644 --- a/kernel/drivers/scsi/aacraid/linit.c +++ b/kernel/drivers/scsi/aacraid/linit.c @@ -1404,8 +1404,18 @@ static int aac_acquire_resources(struct aac_dev *dev) aac_adapter_enable_int(dev); - if (!dev->sync_mode) + /*max msix may change after EEH + * Re-assign vectors to fibs + */ + aac_fib_vector_assign(dev); + + if (!dev->sync_mode) { + /* After EEH recovery or suspend resume, max_msix count + * may change, therfore updating in init as well. + */ aac_adapter_start(dev); + dev->init->Sa_MSIXVectors = cpu_to_le32(dev->max_msix); + } return 0; error_iounmap: |