Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 314262
b: refs/heads/master
c: 4e4f2f6
h: refs/heads/master
v: v3
  • Loading branch information
Thomas Graf authored and David S. Miller committed Jun 13, 2012
1 parent c636b1e commit f6ac7b2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 716b31abbd39baab307c0a7b38dce9a20c16c62d
refs/heads/master: 4e4f2f69704be0ae218d91fb827e5a6987fe262f
47 changes: 22 additions & 25 deletions trunk/net/dcb/dcbnl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1732,6 +1732,21 @@ static struct dcb_app_type *dcb_app_lookup(const struct dcb_app *app,
return NULL;
}

static int dcb_app_add(const struct dcb_app *app, int ifindex)
{
struct dcb_app_type *entry;

entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
if (!entry)
return -ENOMEM;

memcpy(&entry->app, app, sizeof(*app));
entry->ifindex = ifindex;
list_add(&entry->list, &dcb_app_list);

return 0;
}

/**
* dcb_getapp - retrieve the DCBX application user priority
*
Expand Down Expand Up @@ -1764,6 +1779,7 @@ int dcb_setapp(struct net_device *dev, struct dcb_app *new)
{
struct dcb_app_type *itr;
struct dcb_app_type event;
int err = 0;

event.ifindex = dev->ifindex;
memcpy(&event.app, new, sizeof(event.app));
Expand All @@ -1782,22 +1798,13 @@ int dcb_setapp(struct net_device *dev, struct dcb_app *new)
goto out;
}
/* App type does not exist add new application type */
if (new->priority) {
struct dcb_app_type *entry;
entry = kmalloc(sizeof(struct dcb_app_type), GFP_ATOMIC);
if (!entry) {
spin_unlock(&dcb_lock);
return -ENOMEM;
}

memcpy(&entry->app, new, sizeof(*new));
entry->ifindex = dev->ifindex;
list_add(&entry->list, &dcb_app_list);
}
if (new->priority)
err = dcb_app_add(new, dev->ifindex);
out:
spin_unlock(&dcb_lock);
call_dcbevent_notifiers(DCB_APP_EVENT, &event);
return 0;
if (!err)
call_dcbevent_notifiers(DCB_APP_EVENT, &event);
return err;
}
EXPORT_SYMBOL(dcb_setapp);

Expand Down Expand Up @@ -1831,7 +1838,6 @@ EXPORT_SYMBOL(dcb_ieee_getapp_mask);
*/
int dcb_ieee_setapp(struct net_device *dev, struct dcb_app *new)
{
struct dcb_app_type *entry;
struct dcb_app_type event;
int err = 0;

Expand All @@ -1847,16 +1853,7 @@ int dcb_ieee_setapp(struct net_device *dev, struct dcb_app *new)
goto out;
}

/* App entry does not exist add new entry */
entry = kmalloc(sizeof(struct dcb_app_type), GFP_ATOMIC);
if (!entry) {
err = -ENOMEM;
goto out;
}

memcpy(&entry->app, new, sizeof(*new));
entry->ifindex = dev->ifindex;
list_add(&entry->list, &dcb_app_list);
err = dcb_app_add(new, dev->ifindex);
out:
spin_unlock(&dcb_lock);
if (!err)
Expand Down

0 comments on commit f6ac7b2

Please sign in to comment.