Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 343702
b: refs/heads/master
c: 4d4d1ef
h: refs/heads/master
v: v3
  • Loading branch information
John Soni Jose authored and James Bottomley committed Nov 27, 2012
1 parent d5905c2 commit ee196a0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 48 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5cac7596bac1fffda261643dba20be8c4c44b547
refs/heads/master: 4d4d1ef8cbc33b650a96bbdf0ca9b14db10e1b29
65 changes: 18 additions & 47 deletions trunk/drivers/scsi/be2iscsi/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@
static unsigned int be_iopoll_budget = 10;
static unsigned int be_max_phys_size = 64;
static unsigned int enable_msix = 1;
static unsigned int gcrashmode = 0;
static unsigned int num_hba = 0;

MODULE_DEVICE_TABLE(pci, beiscsi_pci_id_table);
MODULE_DESCRIPTION(DRV_DESC " " BUILD_STR);
Expand Down Expand Up @@ -4446,14 +4444,18 @@ void beiscsi_hba_attrs_init(struct beiscsi_hba *phba)
beiscsi_log_enable_init(phba, beiscsi_log_enable);
}

/*
* beiscsi_quiesce()- Cleanup Driver resources
* @phba: Instance Priv structure
*
* Free the OS and HW resources held by the driver
**/
static void beiscsi_quiesce(struct beiscsi_hba *phba)
{
struct hwi_controller *phwi_ctrlr;
struct hwi_context_memory *phwi_context;
struct be_eq_obj *pbe_eq;
unsigned int i, msix_vec;
u8 *real_offset = 0;
u32 value = 0;

phwi_ctrlr = phba->phwi_ctrlr;
phwi_context = phwi_ctrlr->phwi_ctxt;
Expand All @@ -4477,14 +4479,7 @@ static void beiscsi_quiesce(struct beiscsi_hba *phba)

beiscsi_clean_port(phba);
beiscsi_free_mem(phba);
real_offset = (u8 *)phba->csr_va + MPU_EP_SEMAPHORE;

value = readl((void *)real_offset);

if (value & 0x00010000) {
value &= 0xfffeffff;
writel(value, (void *)real_offset);
}
beiscsi_unmap_pci_function(phba);
pci_free_consistent(phba->pcidev,
phba->ctrl.mbox_mem_alloced.size,
Expand Down Expand Up @@ -4550,8 +4545,6 @@ static int __devinit beiscsi_dev_probe(struct pci_dev *pcidev,
struct hwi_context_memory *phwi_context;
struct be_eq_obj *pbe_eq;
int ret, i;
u8 *real_offset = 0;
u32 value = 0;

ret = beiscsi_enable_pci(pcidev);
if (ret < 0) {
Expand Down Expand Up @@ -4606,31 +4599,18 @@ static int __devinit beiscsi_dev_probe(struct pci_dev *pcidev,
goto hba_free;
}

if (!num_hba) {
real_offset = (u8 *)phba->csr_va + MPU_EP_SEMAPHORE;
value = readl((void *)real_offset);
if (value & 0x00010000) {
gcrashmode++;
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Loading Driver in crashdump mode\n");
ret = beiscsi_cmd_reset_function(phba);
if (ret) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Reset Failed. Aborting Crashdump\n");
goto hba_free;
}
ret = be_chk_reset_complete(phba);
if (ret) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Failed to get out of reset."
"Aborting Crashdump\n");
goto hba_free;
}
} else {
value |= 0x00010000;
writel(value, (void *)real_offset);
num_hba++;
}
ret = beiscsi_cmd_reset_function(phba);
if (ret) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Reset Failed. Aborting Crashdump\n");
goto hba_free;
}
ret = be_chk_reset_complete(phba);
if (ret) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Failed to get out of reset."
"Aborting Crashdump\n");
goto hba_free;
}

spin_lock_init(&phba->io_sgl_lock);
Expand Down Expand Up @@ -4718,15 +4698,6 @@ static int __devinit beiscsi_dev_probe(struct pci_dev *pcidev,
beiscsi_clean_port(phba);
beiscsi_free_mem(phba);
free_port:
real_offset = (u8 *)phba->csr_va + MPU_EP_SEMAPHORE;

value = readl((void *)real_offset);

if (value & 0x00010000) {
value &= 0xfffeffff;
writel(value, (void *)real_offset);
}

pci_free_consistent(phba->pcidev,
phba->ctrl.mbox_mem_alloced.size,
phba->ctrl.mbox_mem_alloced.va,
Expand Down

0 comments on commit ee196a0

Please sign in to comment.