From e0495687f52e65116371c0d8db99ce9bdb4386bf Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Thu, 20 Mar 2008 11:09:16 +0900 Subject: [PATCH] --- yaml --- r: 89686 b: refs/heads/master c: 5cb2fc06107fe343a9488b32ddf3d9b4596b7090 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_debug.c | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 59345f14c52c..b3cbe477bba8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f3df41cff40992499d3c693251622299e4ce18c3 +refs/heads/master: 5cb2fc06107fe343a9488b32ddf3d9b4596b7090 diff --git a/trunk/drivers/scsi/scsi_debug.c b/trunk/drivers/scsi/scsi_debug.c index 2a388d06094a..161af1ded888 100644 --- a/trunk/drivers/scsi/scsi_debug.c +++ b/trunk/drivers/scsi/scsi_debug.c @@ -2014,6 +2014,19 @@ static void scsi_debug_slave_destroy(struct scsi_device * sdp) } } +struct sdebug_dev_info *sdebug_device_create(struct sdebug_host_info *sdbg_host, + gfp_t flags) +{ + struct sdebug_dev_info *devip; + + devip = kzalloc(sizeof(*devip), flags); + if (devip) { + devip->sdbg_host = sdbg_host; + list_add_tail(&devip->dev_list, &sdbg_host->dev_info_list); + } + return devip; +} + static struct sdebug_dev_info * devInfoReg(struct scsi_device * sdev) { struct sdebug_host_info * sdbg_host; @@ -2038,16 +2051,13 @@ static struct sdebug_dev_info * devInfoReg(struct scsi_device * sdev) open_devip = devip; } } - if (NULL == open_devip) { /* try and make a new one */ - open_devip = kzalloc(sizeof(*open_devip),GFP_ATOMIC); - if (NULL == open_devip) { + if (!open_devip) { /* try and make a new one */ + open_devip = sdebug_device_create(sdbg_host, GFP_ATOMIC); + if (!open_devip) { printk(KERN_ERR "%s: out of memory at line %d\n", __FUNCTION__, __LINE__); return NULL; } - open_devip->sdbg_host = sdbg_host; - list_add_tail(&open_devip->dev_list, - &sdbg_host->dev_info_list); } if (open_devip) { open_devip->channel = sdev->channel; @@ -2935,16 +2945,13 @@ static int sdebug_add_adapter(void) devs_per_host = scsi_debug_num_tgts * scsi_debug_max_luns; for (k = 0; k < devs_per_host; k++) { - sdbg_devinfo = kzalloc(sizeof(*sdbg_devinfo),GFP_KERNEL); - if (NULL == sdbg_devinfo) { + sdbg_devinfo = sdebug_device_create(sdbg_host, GFP_KERNEL); + if (!sdbg_devinfo) { printk(KERN_ERR "%s: out of memory at line %d\n", __FUNCTION__, __LINE__); error = -ENOMEM; goto clean; } - sdbg_devinfo->sdbg_host = sdbg_host; - list_add_tail(&sdbg_devinfo->dev_list, - &sdbg_host->dev_info_list); } spin_lock(&sdebug_host_list_lock);