fcoe: Reduce fcoe_sysfs_fcf_add() stack usage
This patch fixes the following compiler warning: drivers/scsi/fcoe/fcoe_ctlr.c: In function fcoe_sysfs_fcf_add: drivers/scsi/fcoe/fcoe_ctlr.c:211:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=] Signed-off-by: Bart Van Assche <bvanassche@acm.org> Cc: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Robert Love <robert.w.love@intel.com>
This commit is contained in:
parent
465b87bfe9
commit
1c2c1b4fbd
@ -164,28 +164,30 @@ static int fcoe_sysfs_fcf_add(struct fcoe_fcf *new)
|
|||||||
{
|
{
|
||||||
struct fcoe_ctlr *fip = new->fip;
|
struct fcoe_ctlr *fip = new->fip;
|
||||||
struct fcoe_ctlr_device *ctlr_dev = fcoe_ctlr_to_ctlr_dev(fip);
|
struct fcoe_ctlr_device *ctlr_dev = fcoe_ctlr_to_ctlr_dev(fip);
|
||||||
struct fcoe_fcf_device temp, *fcf_dev;
|
struct fcoe_fcf_device *temp, *fcf_dev;
|
||||||
int rc = 0;
|
int rc = -ENOMEM;
|
||||||
|
|
||||||
LIBFCOE_FIP_DBG(fip, "New FCF fab %16.16llx mac %pM\n",
|
LIBFCOE_FIP_DBG(fip, "New FCF fab %16.16llx mac %pM\n",
|
||||||
new->fabric_name, new->fcf_mac);
|
new->fabric_name, new->fcf_mac);
|
||||||
|
|
||||||
|
temp = kzalloc(sizeof(*temp), GFP_KERNEL);
|
||||||
|
if (!temp)
|
||||||
|
goto out;
|
||||||
|
|
||||||
mutex_lock(&ctlr_dev->lock);
|
mutex_lock(&ctlr_dev->lock);
|
||||||
|
|
||||||
temp.fabric_name = new->fabric_name;
|
temp->fabric_name = new->fabric_name;
|
||||||
temp.switch_name = new->switch_name;
|
temp->switch_name = new->switch_name;
|
||||||
temp.fc_map = new->fc_map;
|
temp->fc_map = new->fc_map;
|
||||||
temp.vfid = new->vfid;
|
temp->vfid = new->vfid;
|
||||||
memcpy(temp.mac, new->fcf_mac, ETH_ALEN);
|
memcpy(temp->mac, new->fcf_mac, ETH_ALEN);
|
||||||
temp.priority = new->pri;
|
temp->priority = new->pri;
|
||||||
temp.fka_period = new->fka_period;
|
temp->fka_period = new->fka_period;
|
||||||
temp.selected = 0; /* default to unselected */
|
temp->selected = 0; /* default to unselected */
|
||||||
|
|
||||||
fcf_dev = fcoe_fcf_device_add(ctlr_dev, &temp);
|
fcf_dev = fcoe_fcf_device_add(ctlr_dev, temp);
|
||||||
if (unlikely(!fcf_dev)) {
|
if (unlikely(!fcf_dev))
|
||||||
rc = -ENOMEM;
|
goto unlock;
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The fcoe_sysfs layer can return a CONNECTED fcf that
|
* The fcoe_sysfs layer can return a CONNECTED fcf that
|
||||||
@ -204,9 +206,13 @@ static int fcoe_sysfs_fcf_add(struct fcoe_fcf *new)
|
|||||||
|
|
||||||
list_add(&new->list, &fip->fcfs);
|
list_add(&new->list, &fip->fcfs);
|
||||||
fip->fcf_count++;
|
fip->fcf_count++;
|
||||||
|
rc = 0;
|
||||||
|
|
||||||
|
unlock:
|
||||||
|
mutex_unlock(&ctlr_dev->lock);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&ctlr_dev->lock);
|
kfree(temp);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user