~ubuntu-branches/ubuntu/trusty/linux-armadaxp/trusty

« back to all changes in this revision

Viewing changes to net/netlabel/netlabel_unlabeled.c

  • Committer: Package Import Robot
  • Author(s): Michael Casadevall, Bryan Wu, Dann Frazier, Michael Casadeall
  • Date: 2012-03-10 15:00:54 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120310150054-flugb39zon8vvgwe
Tags: 3.2.0-1600.1
[ Bryan Wu ]
* UBUNTU: import debian/debian.env and debian.armadaxp

[ Dann Frazier ]
* ARM: Armada XP: remove trailing '/' in dirnames in mvRules.mk

[ Michael Casadeall ]
* tools: add some tools for Marvell Armada XP processor
* kernel: timer tick hacking from Marvell
* kernel: Sheeva Errata: add delay on Sheeva when powering down
* net: add Marvell NFP netfilter
* net: socket and skb modifications made by Marvell
* miscdevice: add minor IDs for some Marvell Armada drivers
* fs: introduce memory pool for splice()
* video: EDID detection updates from Marvell Armada XP patchset
* video: backlight: add Marvell Dove LCD backlight driver
* video: display: add THS8200 display driver
* video: framebuffer: add Marvell Dove and Armada XP processor onchip LCD controller driver
* usbtest: add Interrupt transfer testing by Marvell Armada XP code
* usb: ehci: add support for Marvell EHCI controler
* tty/serial: 8250: add support for Marvell Armada XP processor and DeviceTree work
* rtc: add support for Marvell Armada XP onchip RTC controller
* net: pppoe: add Marvell ethernet NFP hook in PPPoE networking driver
* mtd: nand: add support for Marvell Armada XP Nand Flash Controller
* mtd: maps: add Marvell Armada XP specific map driver
* mmc: add support for Marvell Armada XP MMC/SD host controller
* i2c: add support for Marvell Armada XP onchip i2c bus controller
* hwmon: add Kconfig option for Armada XP onchip thermal sensor driver
* dmaengine: add Net DMA support for splice and update Marvell XOR DMA engine driver
* ata: add support for Marvell Armada XP SATA controller and update some quirks
* ARM: add Marvell Armada XP machine to mach-types
* ARM: oprofile: add support for Marvell PJ4B core
* ARM: mm: more ARMv6 switches for Marvell Armada XP
* ARM: remove static declaration to allow compilation
* ARM: alignment access fault trick
* ARM: mm: skip some fault fixing when run on NONE SMP ARMv6 mode during early abort event
* ARM: mm: add Marvell Sheeva CPU Architecture for PJ4B
* ARM: introduce optimized copy operation for Marvell Armada XP
* ARM: SAUCE: hardware breakpoint trick for Marvell Armada XP
* ARM: big endian and little endian tricks for Marvell Armada XP
* ARM: SAUCE: Add Marvell Armada XP build rules to arch/arm/kernel/Makefile
* ARM: vfp: add special handling for Marvell Armada XP
* ARM: add support for Marvell U-Boot
* ARM: add mv_controller_num for ARM PCI drivers
* ARM: add support for local PMUs, general SMP tweaks and cache flushing
* ARM: add Marvell device identifies in glue-proc.h
* ARM: add IPC driver support for Marvell platforms
* ARM: add DMA mapping for Marvell platforms
* ARM: add Sheeva errata and PJ4B code for booting
* ARM: update Kconfig and Makefile to include Marvell Armada XP platforms
* ARM: Armada XP: import LSP from Marvell for Armada XP 3.2 kernel enablement

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 * NetLabel system.  The NetLabel system manages static and dynamic label
6
6
 * mappings for network protocols such as CIPSO and RIPSO.
7
7
 *
8
 
 * Author: Paul Moore <paul.moore@hp.com>
 
8
 * Author: Paul Moore <paul@paul-moore.com>
9
9
 *
10
10
 */
11
11
 
52
52
#include <net/net_namespace.h>
53
53
#include <net/netlabel.h>
54
54
#include <asm/bug.h>
55
 
#include <asm/atomic.h>
 
55
#include <linux/atomic.h>
56
56
 
57
57
#include "netlabel_user.h"
58
58
#include "netlabel_addrlist.h"
116
116
 * hash table should be okay */
117
117
static DEFINE_SPINLOCK(netlbl_unlhsh_lock);
118
118
#define netlbl_unlhsh_rcu_deref(p) \
119
 
        rcu_dereference_check(p, rcu_read_lock_held() || \
120
 
                                 lockdep_is_held(&netlbl_unlhsh_lock))
 
119
        rcu_dereference_check(p, lockdep_is_held(&netlbl_unlhsh_lock))
121
120
static struct netlbl_unlhsh_tbl *netlbl_unlhsh = NULL;
122
121
static struct netlbl_unlhsh_iface *netlbl_unlhsh_def = NULL;
123
122
 
426
425
                                              audit_info);
427
426
        switch (addr_len) {
428
427
        case sizeof(struct in_addr): {
429
 
                struct in_addr *addr4, *mask4;
 
428
                const struct in_addr *addr4 = addr;
 
429
                const struct in_addr *mask4 = mask;
430
430
 
431
 
                addr4 = (struct in_addr *)addr;
432
 
                mask4 = (struct in_addr *)mask;
433
431
                ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid);
434
432
                if (audit_buf != NULL)
435
433
                        netlbl_af4list_audit_addr(audit_buf, 1,
440
438
        }
441
439
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
442
440
        case sizeof(struct in6_addr): {
443
 
                struct in6_addr *addr6, *mask6;
 
441
                const struct in6_addr *addr6 = addr;
 
442
                const struct in6_addr *mask6 = mask;
444
443
 
445
 
                addr6 = (struct in6_addr *)addr;
446
 
                mask6 = (struct in6_addr *)mask;
447
444
                ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid);
448
445
                if (audit_buf != NULL)
449
446
                        netlbl_af6list_audit_addr(audit_buf, 1,
624
621
        if (iface->ifindex > 0)
625
622
                list_del_rcu(&iface->list);
626
623
        else
627
 
                rcu_assign_pointer(netlbl_unlhsh_def, NULL);
 
624
                RCU_INIT_POINTER(netlbl_unlhsh_def, NULL);
628
625
        spin_unlock(&netlbl_unlhsh_lock);
629
626
 
630
627
        call_rcu(&iface->rcu, netlbl_unlhsh_free_iface);
1450
1447
        for (iter = 0; iter < hsh_tbl->size; iter++)
1451
1448
                INIT_LIST_HEAD(&hsh_tbl->tbl[iter]);
1452
1449
 
1453
 
        rcu_read_lock();
1454
1450
        spin_lock(&netlbl_unlhsh_lock);
1455
1451
        rcu_assign_pointer(netlbl_unlhsh, hsh_tbl);
1456
1452
        spin_unlock(&netlbl_unlhsh_lock);
1457
 
        rcu_read_unlock();
1458
1453
 
1459
1454
        register_netdevice_notifier(&netlbl_unlhsh_netdev_notifier);
1460
1455