]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/netlabel/netlabel_kapi.c
Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy...
[linux-2.6-omap-h63xx.git] / net / netlabel / netlabel_kapi.c
index 4f50949722a95a6e082404601b98c98f39190821..c69e3e1f05c3957ab076a75bd84bc40a87a87578 100644 (file)
@@ -34,6 +34,7 @@
 #include <net/netlabel.h>
 #include <net/cipso_ipv4.h>
 #include <asm/bug.h>
+#include <asm/atomic.h>
 
 #include "netlabel_domainhash.h"
 #include "netlabel_unlabeled.h"
@@ -262,7 +263,7 @@ int netlbl_enabled(void)
        /* At some point we probably want to expose this mechanism to the user
         * as well so that admins can toggle NetLabel regardless of the
         * configuration */
-       return (netlbl_mgmt_protocount_value() > 0 ? 1 : 0);
+       return (atomic_read(&netlabel_mgmt_protocount) > 0);
 }
 
 /**
@@ -311,7 +312,7 @@ socket_setattr_return:
  * @secattr: the security attributes
  *
  * Description:
- * Examines the given sock to see any NetLabel style labeling has been
+ * Examines the given sock to see if any NetLabel style labeling has been
  * applied to the sock, if so it parses the socket label and returns the
  * security attributes in @secattr.  Returns zero on success, negative values
  * on failure.
@@ -319,18 +320,13 @@ socket_setattr_return:
  */
 int netlbl_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr)
 {
-       int ret_val;
-
-       ret_val = cipso_v4_sock_getattr(sk, secattr);
-       if (ret_val == 0)
-               return 0;
-
-       return netlbl_unlabel_getattr(secattr);
+       return cipso_v4_sock_getattr(sk, secattr);
 }
 
 /**
  * netlbl_skbuff_getattr - Determine the security attributes of a packet
  * @skb: the packet
+ * @family: protocol family
  * @secattr: the security attributes
  *
  * Description:
@@ -341,13 +337,14 @@ int netlbl_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr)
  *
  */
 int netlbl_skbuff_getattr(const struct sk_buff *skb,
+                         u16 family,
                          struct netlbl_lsm_secattr *secattr)
 {
        if (CIPSO_V4_OPTEXIST(skb) &&
            cipso_v4_skbuff_getattr(skb, secattr) == 0)
                return 0;
 
-       return netlbl_unlabel_getattr(secattr);
+       return netlbl_unlabel_getattr(skb, family, secattr);
 }
 
 /**
@@ -431,6 +428,10 @@ static int __init netlbl_init(void)
        if (ret_val != 0)
                goto init_failure;
 
+       ret_val = netlbl_unlabel_init(NETLBL_UNLHSH_BITSIZE);
+       if (ret_val != 0)
+               goto init_failure;
+
        ret_val = netlbl_netlink_init();
        if (ret_val != 0)
                goto init_failure;