[PATCH] drivers/scsi/dpt_i2o.c: fix a NULL pointer dereference

The Coverity checker spotted this obvious NULL pointer dereference.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Mark Salyzyn <mark_salyzyn@adaptec.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Adrian Bunk and committed by Linus Torvalds 458af543 2012a116

+5 -4
+5 -4
drivers/scsi/dpt_i2o.c
··· 816 static void adpt_i2o_sys_shutdown(void) 817 { 818 adpt_hba *pHba, *pNext; 819 - struct adpt_i2o_post_wait_data *p1, *p2; 820 821 printk(KERN_INFO"Shutting down Adaptec I2O controllers.\n"); 822 printk(KERN_INFO" This could take a few minutes if there are many devices attached\n"); ··· 830 } 831 832 /* Remove any timedout entries from the wait queue. */ 833 - p2 = NULL; 834 // spin_lock_irqsave(&adpt_post_wait_lock, flags); 835 /* Nothing should be outstanding at this point so just 836 * free them 837 */ 838 - for(p1 = adpt_post_wait_queue; p1; p2 = p1, p1 = p2->next) { 839 - kfree(p1); 840 } 841 // spin_unlock_irqrestore(&adpt_post_wait_lock, flags); 842 adpt_post_wait_queue = NULL;
··· 816 static void adpt_i2o_sys_shutdown(void) 817 { 818 adpt_hba *pHba, *pNext; 819 + struct adpt_i2o_post_wait_data *p1, *old; 820 821 printk(KERN_INFO"Shutting down Adaptec I2O controllers.\n"); 822 printk(KERN_INFO" This could take a few minutes if there are many devices attached\n"); ··· 830 } 831 832 /* Remove any timedout entries from the wait queue. */ 833 // spin_lock_irqsave(&adpt_post_wait_lock, flags); 834 /* Nothing should be outstanding at this point so just 835 * free them 836 */ 837 + for(p1 = adpt_post_wait_queue; p1;) { 838 + old = p1; 839 + p1 = p1->next; 840 + kfree(old); 841 } 842 // spin_unlock_irqrestore(&adpt_post_wait_lock, flags); 843 adpt_post_wait_queue = NULL;