diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/fc/iph5526.c linux-2.5/drivers/net/fc/iph5526.c
--- bk-linus/drivers/net/fc/iph5526.c	2002-11-21 02:16:40.000000000 +0000
+++ linux-2.5/drivers/net/fc/iph5526.c	2002-11-21 17:59:37.000000000 +0000
@@ -3790,8 +3789,10 @@ struct pci_dev *pdev = NULL;
 		sprintf(fi->name, "fc%d", count);
 
 		host = scsi_register(tmpt, sizeof(struct iph5526_hostdata));
-		if(host==NULL)
+		if(host==NULL) {
+			kfree(fc[count]);
 			return no_of_hosts;
+		}
 			
 		hostdata = (struct iph5526_hostdata *)host->hostdata;
 		memset(hostdata, 0 , sizeof(struct iph5526_hostdata));
