This also causes a bug in the callers. drivers/scsi/mpt3sas/mpt3sas_base.c:7428 mpt3sas_base_attach() warn: 'ioc->hpr_lookup' double freed We free the pointers, then return an error and the caller frees the pointers as well. Smatch is very limited in the types of double frees it looks for. It really requires someone to manually go through the free paths and check it by hand because I'm sure there are other bugs there as well. Please CC me on the Fix because I'm not subscribed to the linux-scsi mailing list. regards, dan carpenter