};
  
  static ssize_t
 -sysfs_ctlreg_write(struct kobject *kobj, char *buf, loff_t off, size_t count)
 +sysfs_ctlreg_write(struct kobject *kobj, struct bin_attribute *bin_attr,
 +                 char *buf, loff_t off, size_t count)
  {
        size_t buf_off;
-       struct Scsi_Host *host = class_to_shost(container_of(kobj,
-                                            struct class_device, kobj));
-       struct lpfc_hba *phba = (struct lpfc_hba*)host->hostdata;
+       struct class_device *cdev = container_of(kobj, struct class_device,
+                                                kobj);
+       struct Scsi_Host  *shost = class_to_shost(cdev);
+       struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
+       struct lpfc_hba   *phba = vport->phba;
  
        if ((off + count) > FF_REG_AREA_SIZE)
                return -ERANGE;
  }
  
  static ssize_t
 -sysfs_mbox_write(struct kobject *kobj, char *buf, loff_t off, size_t count)
 +sysfs_mbox_write(struct kobject *kobj, struct bin_attribute *bin_attr,
 +               char *buf, loff_t off, size_t count)
  {
-       struct Scsi_Host * host =
-               class_to_shost(container_of(kobj, struct class_device, kobj));
-       struct lpfc_hba * phba = (struct lpfc_hba*)host->hostdata;
-       struct lpfcMboxq * mbox = NULL;
+       struct class_device *cdev = container_of(kobj, struct class_device,
+                                                kobj);
+       struct Scsi_Host  *shost = class_to_shost(cdev);
+       struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
+       struct lpfc_hba   *phba = vport->phba;
+       struct lpfcMboxq  *mbox = NULL;
  
        if ((count + off) > MAILBOX_CMD_SIZE)
                return -ERANGE;
  }
  
  static ssize_t
 -sysfs_mbox_read(struct kobject *kobj, char *buf, loff_t off, size_t count)
 +sysfs_mbox_read(struct kobject *kobj, struct bin_attribute *bin_attr,
 +              char *buf, loff_t off, size_t count)
  {
-       struct Scsi_Host *host =
-               class_to_shost(container_of(kobj, struct class_device,
-                                           kobj));
-       struct lpfc_hba *phba = (struct lpfc_hba*)host->hostdata;
+       struct class_device *cdev = container_of(kobj, struct class_device,
+                                                kobj);
+       struct Scsi_Host  *shost = class_to_shost(cdev);
+       struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
+       struct lpfc_hba   *phba = vport->phba;
        int rc;
  
        if (off > MAILBOX_CMD_SIZE)
 
        psli = &phba->sli;
        init_timer(&psli->mbox_tmo);
        psli->mbox_tmo.function = lpfc_mbox_timeout;
-       psli->mbox_tmo.data = (unsigned long)phba;
- 
+       psli->mbox_tmo.data = (unsigned long) phba;
        init_timer(&phba->fcp_poll_timer);
        phba->fcp_poll_timer.function = lpfc_poll_timeout;
-       phba->fcp_poll_timer.data = (unsigned long)phba;
- 
-       /*
-        * Get all the module params for configuring this host and then
-        * establish the host parameters.
-        */
-       lpfc_get_cfgparam(phba);
- 
-       host->max_id = LPFC_MAX_TARGET;
-       host->max_lun = phba->cfg_max_luns;
-       host->this_id = -1;
- 
-       INIT_LIST_HEAD(&phba->fc_nodes);
+       phba->fcp_poll_timer.data = (unsigned long) phba;
+       init_timer(&phba->fabric_block_timer);
+       phba->fabric_block_timer.function = lpfc_fabric_block_timeout;
+       phba->fabric_block_timer.data = (unsigned long) phba;
  
        pci_set_master(pdev);
 -      retval = pci_set_mwi(pdev);
 -      if (retval)
 -              dev_printk(KERN_WARNING, &pdev->dev,
 -                         "Warning: pci_set_mwi returned %d\n", retval);
 +      pci_try_set_mwi(pdev);
  
        if (pci_set_dma_mask(phba->pcidev, DMA_64BIT_MASK) != 0)
                if (pci_set_dma_mask(phba->pcidev, DMA_32BIT_MASK) != 0)