Ok - so what's going on here is that the pci subsystem treated any
positive (not just zero) return value as success. We returned error codes,
but not negative error codes. Thus, the pci subsystem was calling our
remove function even though we returned an error status in our probe
function.
the updated patch will be posted shortly.
-- james
Christoph Hellwig wrote:
On Sat, Apr 15, 2006 at 11:53:10AM -0400, James Smart wrote:
@@ -1725,9 +1730,14 @@ static void __devexit
lpfc_pci_remove_one(struct pci_dev *pdev)
{
struct Scsi_Host *host = pci_get_drvdata(pdev);
- struct lpfc_hba *phba = (struct lpfc_hba *)host->hostdata;
+ struct lpfc_hba *phba;
unsigned long iflag;
+ if (host == NULL)
+ return;
+
+ phba = (struct lpfc_hba *)host->hostdata;
If this ever happen there's something really badly wrong in lpfc_pci_probe_one,
so please don't put this check in.
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html