mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: Documentation/networking/ip-sysctl.txt drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c Both conflicts were simply overlapping context. A build fix for qlcnic is in here too, simply removing the added devinit annotations which no longer exist. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
4b87f92259
1768 changed files with 18967 additions and 10643 deletions
|
|
@ -1,5 +0,0 @@
|
|||
header-y += dvb/
|
||||
header-y += hdlc/
|
||||
header-y += hsi/
|
||||
header-y += raid/
|
||||
header-y += usb/
|
||||
|
|
@ -15,12 +15,12 @@ struct pata_platform_info {
|
|||
unsigned int irq_flags;
|
||||
};
|
||||
|
||||
extern int __devinit __pata_platform_probe(struct device *dev,
|
||||
struct resource *io_res,
|
||||
struct resource *ctl_res,
|
||||
struct resource *irq_res,
|
||||
unsigned int ioport_shift,
|
||||
int __pio_mask);
|
||||
extern int __pata_platform_probe(struct device *dev,
|
||||
struct resource *io_res,
|
||||
struct resource *ctl_res,
|
||||
struct resource *irq_res,
|
||||
unsigned int ioport_shift,
|
||||
int __pio_mask);
|
||||
|
||||
/*
|
||||
* Marvell SATA private data
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#define _LINUX_AUDIT_H_
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <linux/ptrace.h>
|
||||
#include <uapi/linux/audit.h>
|
||||
|
||||
struct audit_sig_info {
|
||||
|
|
@ -157,7 +158,8 @@ void audit_core_dumps(long signr);
|
|||
|
||||
static inline void audit_seccomp(unsigned long syscall, long signr, int code)
|
||||
{
|
||||
if (unlikely(!audit_dummy_context()))
|
||||
/* Force a record to be reported if a signal was delivered. */
|
||||
if (signr || unlikely(!audit_dummy_context()))
|
||||
__audit_seccomp(syscall, signr, code);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ struct bcma_drv_gmac_cmn {
|
|||
#define gmac_cmn_write32(gc, offset, val) bcma_write32((gc)->core, offset, val)
|
||||
|
||||
#ifdef CONFIG_BCMA_DRIVER_GMAC_CMN
|
||||
extern void __devinit bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc);
|
||||
extern void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc);
|
||||
#else
|
||||
static inline void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc) { }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ struct bcma_drv_pci {
|
|||
#define pcicore_write16(pc, offset, val) bcma_write16((pc)->core, offset, val)
|
||||
#define pcicore_write32(pc, offset, val) bcma_write32((pc)->core, offset, val)
|
||||
|
||||
extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc);
|
||||
extern void bcma_core_pci_init(struct bcma_drv_pci *pc);
|
||||
extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc,
|
||||
struct bcma_device *core, bool enable);
|
||||
extern void bcma_core_pci_extend_L1timer(struct bcma_drv_pci *pc, bool extend);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ extern int sysctl_extfrag_handler(struct ctl_table *table, int write,
|
|||
extern int fragmentation_index(struct zone *zone, unsigned int order);
|
||||
extern unsigned long try_to_compact_pages(struct zonelist *zonelist,
|
||||
int order, gfp_t gfp_mask, nodemask_t *mask,
|
||||
bool sync, bool *contended, struct page **page);
|
||||
bool sync, bool *contended);
|
||||
extern int compact_pgdat(pg_data_t *pgdat, int order);
|
||||
extern void reset_isolation_suitable(pg_data_t *pgdat);
|
||||
extern unsigned long compaction_suitable(struct zone *zone, int order);
|
||||
|
|
@ -75,7 +75,7 @@ static inline bool compaction_restarting(struct zone *zone, int order)
|
|||
#else
|
||||
static inline unsigned long try_to_compact_pages(struct zonelist *zonelist,
|
||||
int order, gfp_t gfp_mask, nodemask_t *nodemask,
|
||||
bool sync, bool *contended, struct page **page)
|
||||
bool sync, bool *contended)
|
||||
{
|
||||
return COMPACT_CONTINUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,11 @@
|
|||
#include <linux/cpumask.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/kref.h>
|
||||
|
||||
/**
|
||||
* struct cpu_rmap - CPU affinity reverse-map
|
||||
* @refcount: kref for object
|
||||
* @size: Number of objects to be reverse-mapped
|
||||
* @used: Number of objects added
|
||||
* @obj: Pointer to array of object pointers
|
||||
|
|
@ -23,6 +25,7 @@
|
|||
* based on affinity masks
|
||||
*/
|
||||
struct cpu_rmap {
|
||||
struct kref refcount;
|
||||
u16 size, used;
|
||||
void **obj;
|
||||
struct {
|
||||
|
|
@ -33,15 +36,7 @@ struct cpu_rmap {
|
|||
#define CPU_RMAP_DIST_INF 0xffff
|
||||
|
||||
extern struct cpu_rmap *alloc_cpu_rmap(unsigned int size, gfp_t flags);
|
||||
|
||||
/**
|
||||
* free_cpu_rmap - free CPU affinity reverse-map
|
||||
* @rmap: Reverse-map allocated with alloc_cpu_rmap(), or %NULL
|
||||
*/
|
||||
static inline void free_cpu_rmap(struct cpu_rmap *rmap)
|
||||
{
|
||||
kfree(rmap);
|
||||
}
|
||||
extern int cpu_rmap_put(struct cpu_rmap *rmap);
|
||||
|
||||
extern int cpu_rmap_add(struct cpu_rmap *rmap, void *obj);
|
||||
extern int cpu_rmap_update(struct cpu_rmap *rmap, u16 index,
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@ struct cred {
|
|||
struct key *process_keyring; /* keyring private to this process */
|
||||
struct key *thread_keyring; /* keyring private to this thread */
|
||||
struct key *request_key_auth; /* assumed request_key authority */
|
||||
struct thread_group_cred *tgcred; /* thread-group shared credentials */
|
||||
#endif
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *security; /* subjective LSM security */
|
||||
|
|
|
|||
|
|
@ -93,14 +93,6 @@
|
|||
|
||||
#define __exit __section(.exit.text) __exitused __cold notrace
|
||||
|
||||
/* Used for HOTPLUG, but that is always enabled now, so just make them noops */
|
||||
#define __devinit
|
||||
#define __devinitdata
|
||||
#define __devinitconst
|
||||
#define __devexit
|
||||
#define __devexitdata
|
||||
#define __devexitconst
|
||||
|
||||
/* Used for HOTPLUG_CPU */
|
||||
#define __cpuinit __section(.cpuinit.text) __cold notrace
|
||||
#define __cpuinitdata __section(.cpuinit.data)
|
||||
|
|
@ -337,18 +329,6 @@ void __init parse_early_options(char *cmdline);
|
|||
#define __INITRODATA_OR_MODULE __INITRODATA
|
||||
#endif /*CONFIG_MODULES*/
|
||||
|
||||
/* Functions marked as __devexit may be discarded at kernel link time, depending
|
||||
on config options. Newer versions of binutils detect references from
|
||||
retained sections to discarded sections and flag an error. Pointers to
|
||||
__devexit functions must use __devexit_p(function_name), the wrapper will
|
||||
insert either the function_name or NULL, depending on the config options.
|
||||
*/
|
||||
#if defined(MODULE) || defined(CONFIG_HOTPLUG)
|
||||
#define __devexit_p(x) x
|
||||
#else
|
||||
#define __devexit_p(x) NULL
|
||||
#endif
|
||||
|
||||
#ifdef MODULE
|
||||
#define __exit_p(x) x
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -268,11 +268,6 @@ struct irq_affinity_notify {
|
|||
extern int
|
||||
irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify);
|
||||
|
||||
static inline void irq_run_affinity_notifiers(void)
|
||||
{
|
||||
flush_scheduled_work();
|
||||
}
|
||||
|
||||
#else /* CONFIG_SMP */
|
||||
|
||||
static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ struct ipc_ids {
|
|||
unsigned short seq_max;
|
||||
struct rw_semaphore rw_mutex;
|
||||
struct idr ipcs_idr;
|
||||
int next_id;
|
||||
};
|
||||
|
||||
struct ipc_namespace {
|
||||
|
|
|
|||
|
|
@ -1098,7 +1098,7 @@ void jbd2_journal_set_triggers(struct buffer_head *,
|
|||
extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *);
|
||||
extern int jbd2_journal_forget (handle_t *, struct buffer_head *);
|
||||
extern void journal_sync_buffer (struct buffer_head *);
|
||||
extern void jbd2_journal_invalidatepage(journal_t *,
|
||||
extern int jbd2_journal_invalidatepage(journal_t *,
|
||||
struct page *, unsigned long);
|
||||
extern int jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t);
|
||||
extern int jbd2_journal_stop(handle_t *);
|
||||
|
|
|
|||
|
|
@ -524,14 +524,17 @@ static inline void print_irqtrace_events(struct task_struct *curr)
|
|||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
# ifdef CONFIG_PROVE_LOCKING
|
||||
# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
|
||||
# define rwsem_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 2, n, i)
|
||||
# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 2, NULL, i)
|
||||
# else
|
||||
# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
|
||||
# define rwsem_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 1, n, i)
|
||||
# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 1, NULL, i)
|
||||
# endif
|
||||
# define rwsem_release(l, n, i) lock_release(l, n, i)
|
||||
#else
|
||||
# define rwsem_acquire(l, s, t, i) do { } while (0)
|
||||
# define rwsem_acquire_nest(l, s, t, n, i) do { } while (0)
|
||||
# define rwsem_acquire_read(l, s, t, i) do { } while (0)
|
||||
# define rwsem_release(l, n, i) do { } while (0)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ struct sp_node {
|
|||
|
||||
struct shared_policy {
|
||||
struct rb_root root;
|
||||
struct mutex mutex;
|
||||
spinlock_t lock;
|
||||
};
|
||||
|
||||
void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol);
|
||||
|
|
@ -165,11 +165,10 @@ int do_migrate_pages(struct mm_struct *mm, const nodemask_t *from,
|
|||
|
||||
|
||||
#ifdef CONFIG_TMPFS
|
||||
extern int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context);
|
||||
extern int mpol_parse_str(char *str, struct mempolicy **mpol);
|
||||
#endif
|
||||
|
||||
extern int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol,
|
||||
int no_context);
|
||||
extern int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol);
|
||||
|
||||
/* Check if a vma is migratable */
|
||||
static inline int vma_migratable(struct vm_area_struct *vma)
|
||||
|
|
@ -296,15 +295,13 @@ static inline void check_highest_zone(int k)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_TMPFS
|
||||
static inline int mpol_parse_str(char *str, struct mempolicy **mpol,
|
||||
int no_context)
|
||||
static inline int mpol_parse_str(char *str, struct mempolicy **mpol)
|
||||
{
|
||||
return 1; /* error */
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol,
|
||||
int no_context)
|
||||
static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -455,7 +455,6 @@ void put_pages_list(struct list_head *pages);
|
|||
|
||||
void split_page(struct page *page, unsigned int order);
|
||||
int split_free_page(struct page *page);
|
||||
int capture_free_page(struct page *page, int alloc_order, int migratetype);
|
||||
|
||||
/*
|
||||
* Compound pages have a destructor function. Provide a
|
||||
|
|
|
|||
|
|
@ -503,14 +503,6 @@ struct zone {
|
|||
* rarely used fields:
|
||||
*/
|
||||
const char *name;
|
||||
#ifdef CONFIG_MEMORY_ISOLATION
|
||||
/*
|
||||
* the number of MIGRATE_ISOLATE *pageblock*.
|
||||
* We need this for free page counting. Look at zone_watermark_ok_safe.
|
||||
* It's protected by zone->lock
|
||||
*/
|
||||
int nr_pageblock_isolate;
|
||||
#endif
|
||||
} ____cacheline_internodealigned_in_smp;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,9 @@ struct msg_queue {
|
|||
/* Helper routines for sys_msgsnd and sys_msgrcv */
|
||||
extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
|
||||
size_t msgsz, int msgflg);
|
||||
extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext,
|
||||
size_t msgsz, long msgtyp, int msgflg);
|
||||
extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp,
|
||||
int msgflg,
|
||||
long (*msg_fill)(void __user *, struct msg_msg *,
|
||||
size_t));
|
||||
|
||||
#endif /* _LINUX_MSG_H */
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _LINUX_NAMEI_H
|
||||
|
||||
#include <linux/dcache.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/path.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,9 @@ struct wireless_dev;
|
|||
#define SET_ETHTOOL_OPS(netdev,ops) \
|
||||
( (netdev)->ethtool_ops = (ops) )
|
||||
|
||||
extern void netdev_set_default_ethtool_ops(struct net_device *dev,
|
||||
const struct ethtool_ops *ops);
|
||||
|
||||
/* hardware address assignment types */
|
||||
#define NET_ADDR_PERM 0 /* address is permanent (default) */
|
||||
#define NET_ADDR_RANDOM 1 /* address is generated randomly */
|
||||
|
|
|
|||
|
|
@ -1568,6 +1568,7 @@
|
|||
#define PCI_DEVICE_ID_RICOH_RL5C476 0x0476
|
||||
#define PCI_DEVICE_ID_RICOH_RL5C478 0x0478
|
||||
#define PCI_DEVICE_ID_RICOH_R5C822 0x0822
|
||||
#define PCI_DEVICE_ID_RICOH_R5CE822 0xe822
|
||||
#define PCI_DEVICE_ID_RICOH_R5CE823 0xe823
|
||||
#define PCI_DEVICE_ID_RICOH_R5C832 0x0832
|
||||
#define PCI_DEVICE_ID_RICOH_R5C843 0x0843
|
||||
|
|
|
|||
|
|
@ -46,9 +46,8 @@ struct persistent_ram_zone {
|
|||
size_t old_log_size;
|
||||
};
|
||||
|
||||
struct persistent_ram_zone * __devinit persistent_ram_new(phys_addr_t start,
|
||||
size_t size, u32 sig,
|
||||
int ecc_size);
|
||||
struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size,
|
||||
u32 sig, int ecc_size);
|
||||
void persistent_ram_free(struct persistent_ram_zone *prz);
|
||||
void persistent_ram_zap(struct persistent_ram_zone *prz);
|
||||
|
||||
|
|
|
|||
|
|
@ -123,9 +123,9 @@ __rb_change_child(struct rb_node *old, struct rb_node *new,
|
|||
extern void __rb_erase_color(struct rb_node *parent, struct rb_root *root,
|
||||
void (*augment_rotate)(struct rb_node *old, struct rb_node *new));
|
||||
|
||||
static __always_inline void
|
||||
rb_erase_augmented(struct rb_node *node, struct rb_root *root,
|
||||
const struct rb_augment_callbacks *augment)
|
||||
static __always_inline struct rb_node *
|
||||
__rb_erase_augmented(struct rb_node *node, struct rb_root *root,
|
||||
const struct rb_augment_callbacks *augment)
|
||||
{
|
||||
struct rb_node *child = node->rb_right, *tmp = node->rb_left;
|
||||
struct rb_node *parent, *rebalance;
|
||||
|
|
@ -217,6 +217,14 @@ rb_erase_augmented(struct rb_node *node, struct rb_root *root,
|
|||
}
|
||||
|
||||
augment->propagate(tmp, NULL);
|
||||
return rebalance;
|
||||
}
|
||||
|
||||
static __always_inline void
|
||||
rb_erase_augmented(struct rb_node *node, struct rb_root *root,
|
||||
const struct rb_augment_callbacks *augment)
|
||||
{
|
||||
struct rb_node *rebalance = __rb_erase_augmented(node, root, augment);
|
||||
if (rebalance)
|
||||
__rb_erase_color(rebalance, root, augment->rotate);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,8 +125,17 @@ extern void downgrade_write(struct rw_semaphore *sem);
|
|||
*/
|
||||
extern void down_read_nested(struct rw_semaphore *sem, int subclass);
|
||||
extern void down_write_nested(struct rw_semaphore *sem, int subclass);
|
||||
extern void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest_lock);
|
||||
|
||||
# define down_write_nest_lock(sem, nest_lock) \
|
||||
do { \
|
||||
typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \
|
||||
_down_write_nest_lock(sem, &(nest_lock)->dep_map); \
|
||||
} while (0);
|
||||
|
||||
#else
|
||||
# define down_read_nested(sem, subclass) down_read(sem)
|
||||
# define down_write_nest_lock(sem, nest_lock) down_read(sem)
|
||||
# define down_write_nested(sem, subclass) down_write(sem)
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -989,17 +989,29 @@ static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
|
|||
* tells the LSM to decrement the number of secmark labeling rules loaded
|
||||
* @req_classify_flow:
|
||||
* Sets the flow's sid to the openreq sid.
|
||||
* @tun_dev_alloc_security:
|
||||
* This hook allows a module to allocate a security structure for a TUN
|
||||
* device.
|
||||
* @security pointer to a security structure pointer.
|
||||
* Returns a zero on success, negative values on failure.
|
||||
* @tun_dev_free_security:
|
||||
* This hook allows a module to free the security structure for a TUN
|
||||
* device.
|
||||
* @security pointer to the TUN device's security structure
|
||||
* @tun_dev_create:
|
||||
* Check permissions prior to creating a new TUN device.
|
||||
* @tun_dev_post_create:
|
||||
* This hook allows a module to update or allocate a per-socket security
|
||||
* structure.
|
||||
* @sk contains the newly created sock structure.
|
||||
* @tun_dev_attach_queue:
|
||||
* Check permissions prior to attaching to a TUN device queue.
|
||||
* @security pointer to the TUN device's security structure.
|
||||
* @tun_dev_attach:
|
||||
* Check permissions prior to attaching to a persistent TUN device. This
|
||||
* hook can also be used by the module to update any security state
|
||||
* This hook can be used by the module to update any security state
|
||||
* associated with the TUN device's sock structure.
|
||||
* @sk contains the existing sock structure.
|
||||
* @security pointer to the TUN device's security structure.
|
||||
* @tun_dev_open:
|
||||
* This hook can be used by the module to update any security state
|
||||
* associated with the TUN device's security structure.
|
||||
* @security pointer to the TUN devices's security structure.
|
||||
*
|
||||
* Security hooks for XFRM operations.
|
||||
*
|
||||
|
|
@ -1620,9 +1632,12 @@ struct security_operations {
|
|||
void (*secmark_refcount_inc) (void);
|
||||
void (*secmark_refcount_dec) (void);
|
||||
void (*req_classify_flow) (const struct request_sock *req, struct flowi *fl);
|
||||
int (*tun_dev_create)(void);
|
||||
void (*tun_dev_post_create)(struct sock *sk);
|
||||
int (*tun_dev_attach)(struct sock *sk);
|
||||
int (*tun_dev_alloc_security) (void **security);
|
||||
void (*tun_dev_free_security) (void *security);
|
||||
int (*tun_dev_create) (void);
|
||||
int (*tun_dev_attach_queue) (void *security);
|
||||
int (*tun_dev_attach) (struct sock *sk, void *security);
|
||||
int (*tun_dev_open) (void *security);
|
||||
#endif /* CONFIG_SECURITY_NETWORK */
|
||||
|
||||
#ifdef CONFIG_SECURITY_NETWORK_XFRM
|
||||
|
|
@ -2566,9 +2581,12 @@ void security_inet_conn_established(struct sock *sk,
|
|||
int security_secmark_relabel_packet(u32 secid);
|
||||
void security_secmark_refcount_inc(void);
|
||||
void security_secmark_refcount_dec(void);
|
||||
int security_tun_dev_alloc_security(void **security);
|
||||
void security_tun_dev_free_security(void *security);
|
||||
int security_tun_dev_create(void);
|
||||
void security_tun_dev_post_create(struct sock *sk);
|
||||
int security_tun_dev_attach(struct sock *sk);
|
||||
int security_tun_dev_attach_queue(void *security);
|
||||
int security_tun_dev_attach(struct sock *sk, void *security);
|
||||
int security_tun_dev_open(void *security);
|
||||
|
||||
#else /* CONFIG_SECURITY_NETWORK */
|
||||
static inline int security_unix_stream_connect(struct sock *sock,
|
||||
|
|
@ -2733,16 +2751,31 @@ static inline void security_secmark_refcount_dec(void)
|
|||
{
|
||||
}
|
||||
|
||||
static inline int security_tun_dev_alloc_security(void **security)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void security_tun_dev_free_security(void *security)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int security_tun_dev_create(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void security_tun_dev_post_create(struct sock *sk)
|
||||
static inline int security_tun_dev_attach_queue(void *security)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int security_tun_dev_attach(struct sock *sk)
|
||||
static inline int security_tun_dev_attach(struct sock *sk, void *security)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int security_tun_dev_open(void *security)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue