Skip to content

Commit

Permalink
[GENETLINK]: Move command capabilities to flags.
Browse files Browse the repository at this point in the history
This patch moves command capabilities to command flags. Other than
being cleaner, saves several bytes.
We increment the nlctrl version so as to signal to user space that
to not expect the attributes. We will try to be careful
not to do this too often ;->

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jamal Hadi Salim authored and David S. Miller committed Dec 7, 2006
1 parent 620034c commit 334c29a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
6 changes: 3 additions & 3 deletions include/linux/genetlink.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ struct genlmsghdr {
#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr))

#define GENL_ADMIN_PERM 0x01
#define GENL_CMD_CAP_DO 0x02
#define GENL_CMD_CAP_DUMP 0x04
#define GENL_CMD_CAP_HASPOL 0x08

/*
* List of reserved static generic netlink identifiers:
Expand Down Expand Up @@ -58,9 +61,6 @@ enum {
CTRL_ATTR_OP_UNSPEC,
CTRL_ATTR_OP_ID,
CTRL_ATTR_OP_FLAGS,
CTRL_ATTR_OP_POLICY,
CTRL_ATTR_OP_DOIT,
CTRL_ATTR_OP_DUMPIT,
__CTRL_ATTR_OP_MAX,
};

Expand Down
18 changes: 8 additions & 10 deletions net/netlink/genetlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,13 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops)
goto errout;
}

if (ops->dumpit)
ops->flags |= GENL_CMD_CAP_DO;
if (ops->doit)
ops->flags |= GENL_CMD_CAP_DUMP;
if (ops->policy)
ops->flags |= GENL_CMD_CAP_HASPOL;

genl_lock();
list_add_tail(&ops->ops_list, &family->ops_list);
genl_unlock();
Expand Down Expand Up @@ -387,7 +394,7 @@ static void genl_rcv(struct sock *sk, int len)
static struct genl_family genl_ctrl = {
.id = GENL_ID_CTRL,
.name = "nlctrl",
.version = 0x1,
.version = 0x2,
.maxattr = CTRL_ATTR_MAX,
};

Expand Down Expand Up @@ -425,15 +432,6 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq,
NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd);
NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags);

if (ops->policy)
NLA_PUT_FLAG(skb, CTRL_ATTR_OP_POLICY);

if (ops->doit)
NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DOIT);

if (ops->dumpit)
NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DUMPIT);

nla_nest_end(skb, nest);
}

Expand Down

0 comments on commit 334c29a

Please sign in to comment.