diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 12:05:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 12:05:15 -0500 |
commit | 2685b267bce34c9b66626cb11664509c32a761a5 (patch) | |
tree | ce8b4ad47b4a1aa1b0e7634298d63c4cb0ca46c5 /net/netlink | |
parent | 4522d58275f124105819723e24e912c8e5bf3cdd (diff) | |
parent | 272491ef423b6976a230a998b10f46976aa91342 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (48 commits)
[NETFILTER]: Fix non-ANSI func. decl.
[TG3]: Identify Serdes devices more clearly.
[TG3]: Use msleep.
[TG3]: Use netif_msg_*.
[TG3]: Allow partial speed advertisement.
[TG3]: Add TG3_FLG2_IS_NIC flag.
[TG3]: Add 5787F device ID.
[TG3]: Fix Phy loopback.
[WANROUTER]: Kill kmalloc debugging code.
[TCP] inet_twdr_hangman: Delete unnecessary memory barrier().
[NET]: Memory barrier cleanups
[IPSEC]: Fix inetpeer leak in ipv4 xfrm dst entries.
audit: disable ipsec auditing when CONFIG_AUDITSYSCALL=n
audit: Add auditing to ipsec
[IRDA] irlan: Fix compile warning when CONFIG_PROC_FS=n
[IrDA]: Incorrect TTP header reservation
[IrDA]: PXA FIR code device model conversion
[GENETLINK]: Fix misplaced command flags.
[NETLIK]: Add a pointer to the Generic Netlink wiki page.
[IPV6] RAW: Don't release unlocked sock.
...
Diffstat (limited to 'net/netlink')
-rw-r--r-- | net/netlink/genetlink.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index b9b03747c1f3..548e4e6e698f 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -143,6 +143,13 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) | |||
143 | goto errout; | 143 | goto errout; |
144 | } | 144 | } |
145 | 145 | ||
146 | if (ops->dumpit) | ||
147 | ops->flags |= GENL_CMD_CAP_DUMP; | ||
148 | if (ops->doit) | ||
149 | ops->flags |= GENL_CMD_CAP_DO; | ||
150 | if (ops->policy) | ||
151 | ops->flags |= GENL_CMD_CAP_HASPOL; | ||
152 | |||
146 | genl_lock(); | 153 | genl_lock(); |
147 | list_add_tail(&ops->ops_list, &family->ops_list); | 154 | list_add_tail(&ops->ops_list, &family->ops_list); |
148 | genl_unlock(); | 155 | genl_unlock(); |
@@ -387,7 +394,7 @@ static void genl_rcv(struct sock *sk, int len) | |||
387 | static struct genl_family genl_ctrl = { | 394 | static struct genl_family genl_ctrl = { |
388 | .id = GENL_ID_CTRL, | 395 | .id = GENL_ID_CTRL, |
389 | .name = "nlctrl", | 396 | .name = "nlctrl", |
390 | .version = 0x1, | 397 | .version = 0x2, |
391 | .maxattr = CTRL_ATTR_MAX, | 398 | .maxattr = CTRL_ATTR_MAX, |
392 | }; | 399 | }; |
393 | 400 | ||
@@ -425,15 +432,6 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq, | |||
425 | NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd); | 432 | NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd); |
426 | NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags); | 433 | NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags); |
427 | 434 | ||
428 | if (ops->policy) | ||
429 | NLA_PUT_FLAG(skb, CTRL_ATTR_OP_POLICY); | ||
430 | |||
431 | if (ops->doit) | ||
432 | NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DOIT); | ||
433 | |||
434 | if (ops->dumpit) | ||
435 | NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DUMPIT); | ||
436 | |||
437 | nla_nest_end(skb, nest); | 435 | nla_nest_end(skb, nest); |
438 | } | 436 | } |
439 | 437 | ||