Messages in this thread Patch in this message | | | Date | Tue, 15 Oct 2002 15:40:01 +0200 | Subject | [PATCH] [2.4.20-pre10] dpt_i2o fix | From | Ducrot Bruno <> |
| |
The first chunk of attached patch alloc wait_data with kmalloc(..., GFP_ATOMIC) instead of GPF_KERNEL in the function adpt_i2o_post_wait() because this function is called in the function adpt_i2o_passthru() (line 1717 or so) but with a spin_lock held.
The second chunk correct the expected behaviour in teh function adpt_i2o_parse_lct().
The test 'if(pDev == NULL)' is always true, and the kmalloc is done for pDev->next_lun.
--- linux-2.4.20-pre10/drivers/scsi/dpt_i2o.c 2002/10/15 12:07:13 1.1 +++ linux-2.4.20-pre10/drivers/scsi/dpt_i2o.c 2002/10/15 13:05:26 @@ -1122,7 +1122,7 @@ ulong flags = 0; struct adpt_i2o_post_wait_data *p1, *p2; struct adpt_i2o_post_wait_data *wait_data = - kmalloc(sizeof(struct adpt_i2o_post_wait_data),GFP_KERNEL); + kmalloc(sizeof(struct adpt_i2o_post_wait_data),GFP_ATOMIC); adpt_wait_queue_t wait; if(!wait_data){ @@ -1498,7 +1498,7 @@ pDev->next_lun; pDev = pDev->next_lun){ } pDev->next_lun = kmalloc(sizeof(struct adpt_device),GFP_KERNEL); - if(pDev == NULL) { + if(pDev->next_lun == NULL) { return -ENOMEM; } memset(pDev->next_lun,0,sizeof(struct adpt_device));
Cheers,
-- Ducrot Bruno http://www.poupinou.org Page profaissionelle http://toto.tu-me-saoules.com Haume page - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |