summaryrefslogtreecommitdiffstats
path: root/net/ipv6/af_inet6.c
Commit message (Expand)AuthorAgeFilesLines
* GRE: Refactor GRE tunneling code.Pravin B Shelar2013-03-261-1/+0Star
* ipv6: use newly introduced __ipv6_addr_needs_scope_id and ipv6_iface_scope_idHannes Frederic Sowa2013-03-081-3/+3
* ipv6: Use FIELD_SIZEOF() in inet6_init().YOSHIFUJI Hideaki / 吉藤英明2013-01-101-2/+1Star
* net: Make CAP_NET_BIND_SERVICE per user namespaceEric W. Biederman2012-11-191-1/+1
* net: Allow userns root to control ipv6Eric W. Biederman2012-11-191-1/+2
* ipv6: Pull IPv6 GSO registration out of the moduleVlad Yasevich2012-11-151-3/+0Star
* ipv6: Separate ipv6 offload supportVlad Yasevich2012-11-151-246/+3Star
* ipv6: Switch to using new offload infrastructure.Vlad Yasevich2012-11-151-11/+11
* net: Switch to using the new packet offload infrustructureVlad Yasevich2012-11-151-0/+6
* ipv6: gro: fix PV6_GRO_CB(skb)->proto problemEric Dumazet2012-10-081-9/+2Star
* ipv6: GRO should be ECN friendlyEric Dumazet2012-10-071-4/+7
* ipv6: bool conversions phase1Eric Dumazet2012-05-181-5/+5
* net: ipv6: Standardize prefixes for message loggingJoe Perches2012-05-161-9/+5Star
* net/ipv6/af_inet6.c: checkpatch cleanupEldad Zack2012-05-121-18/+11Star
* sock: Introduce named constants for sk_reusePavel Emelyanov2012-04-211-1/+1
* net ipv6: Remove unneded registration of an empty net/ipv6/neighEric W. Biederman2012-04-211-15/+0Star
* Remove all #inclusions of asm/system.hDavid Howells2012-03-281-1/+0Star
* net: implement IP_RECVTOS for IP_PKTOPTIONSJiri Benc2012-02-131-0/+1
* per-netns ipv4 sysctl_tcp_memGlauber Costa2011-12-131-0/+2
* net: remove ipv6_addr_copy()Alexey Dobriyan2011-11-221-7/+7
* net: introduce and use netdev_features_t for device features setsMichał Mirosław2011-11-161-1/+2
* ipv6: reduce percpu needs for icmpv6msg mibsEric Dumazet2011-11-141-4/+4
* net: make ipv6 bind honour freebindMaciej Żenczykowski2011-11-081-1/+1
* gro: refetch inet6_protos[] after pulling ext headersYan, Zheng2011-10-101-0/+1
* net: bind() fix error return on wrong address familyMarcus Meissner2011-07-051-1/+1
* net/ipv6: check for mistakenly passed in non-AF_INET6 sockaddrsMarcus Meissner2011-06-061-0/+4
* inet: constify ip headers and in6_addrEric Dumazet2011-04-221-1/+1
* Fix common misspellingsLucas De Marchi2011-03-311-1/+1
* net: Put fl6_* macros to struct flowi6 and use them again.David S. Miller2011-03-131-2/+2
* ipv6: Convert to use flowi6 where applicable.David S. Miller2011-03-131-16/+16
* net: Make flowi ports AF dependent.David S. Miller2011-03-131-2/+2
* net: Put flowi_* prefix on AF independent members of struct flowiDavid S. Miller2011-03-131-3/+3
* ipv6: Consolidate route lookup sequences.David S. Miller2011-03-011-12/+5Star
* net: change netdev->features to u32Michał Mirosław2011-01-251-1/+1
* Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jiko...Linus Torvalds2011-01-131-1/+1
|\
| * fix comment typos concerning "consistent"Uwe Kleine-König2010-12-101-1/+1
* | inet6: Remove redundant unlikely()Tobias Klauser2010-12-101-1/+1
|/
* Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/...David S. Miller2010-10-211-1/+2
|\
| * tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabledBalazs Scheidler2010-10-211-1/+2
* | net: return operator cleanupEric Dumazet2010-09-231-3/+3
|/
* inet, inet6: make tcp_sendmsg() and tcp_sendpage() through inet_sendmsg() and...Changli Gao2010-07-131-4/+4
* snmp: add align parameter to snmp_mib_init()Eric Dumazet2010-06-261-5/+10
* ipv6: Refactor update of IPv6 flowi destination address for srcrt (RH) optionArnaud Ebalard2010-06-021-7/+2Star
* Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/ne...David S. Miller2010-05-121-1/+1
|\
| * ipv6: Fix default multicast hops setting.David S. Miller2010-05-041-1/+1
* | IPv6: Complete IPV6_DONTFRAG supportBrian Haley2010-04-241-0/+3
|/
* include cleanup: Update gfp.h and slab.h includes to prepare for breaking imp...Tejun Heo2010-03-301-0/+1
* percpu: add __percpu sparse annotations to netTejun Heo2010-02-171-14/+14
* net: spread __net_init, __net_exitAlexey Dobriyan2010-01-181-2/+2
* net: check kern before calling security subsystemEric Paris2009-11-061-1/+1
->flags)) return 0; else return autoremove_wake_function(wait, mode, sync, key); } EXPORT_SYMBOL(wake_bit_function); /* * To allow interruptible waiting and asynchronous (i.e. nonblocking) * waiting, the actions of __wait_on_bit() and __wait_on_bit_lock() are * permitted return codes. Nonzero return codes halt waiting and return. */ int __sched fastcall __wait_on_bit(wait_queue_head_t *wq, struct wait_bit_queue *q, int (*action)(void *), unsigned mode) { int ret = 0; do { prepare_to_wait(wq, &q->wait, mode); if (test_bit(q->key.bit_nr, q->key.flags)) ret = (*action)(q->key.flags); } while (test_bit(q->key.bit_nr, q->key.flags) && !ret); finish_wait(wq, &q->wait); return ret; } EXPORT_SYMBOL(__wait_on_bit); int __sched fastcall out_of_line_wait_on_bit(void *word, int bit, int (*action)(void *), unsigned mode) { wait_queue_head_t *wq = bit_waitqueue(word, bit); DEFINE_WAIT_BIT(wait, word, bit); return __wait_on_bit(wq, &wait, action, mode); } EXPORT_SYMBOL(out_of_line_wait_on_bit); int __sched fastcall __wait_on_bit_lock(wait_queue_head_t *wq, struct wait_bit_queue *q, int (*action)(void *), unsigned mode) { int ret = 0; do { prepare_to_wait_exclusive(wq, &q->wait, mode); if (test_bit(q->key.bit_nr, q->key.flags)) { if ((ret = (*action)(q->key.flags))) break; } } while (test_and_set_bit(q->key.bit_nr, q->key.flags)); finish_wait(wq, &q->wait); return ret; } EXPORT_SYMBOL(__wait_on_bit_lock); int __sched fastcall out_of_line_wait_on_bit_lock(void *word, int bit, int (*action)(void *), unsigned mode) { wait_queue_head_t *wq = bit_waitqueue(word, bit); DEFINE_WAIT_BIT(wait, word, bit); return __wait_on_bit_lock(wq, &wait, action, mode); } EXPORT_SYMBOL(out_of_line_wait_on_bit_lock); void fastcall __wake_up_bit(wait_queue_head_t *wq, void *word, int bit) { struct wait_bit_key key = __WAIT_BIT_KEY_INITIALIZER(word, bit); if (waitqueue_active(wq)) __wake_up(wq, TASK_INTERRUPTIBLE|TASK_UNINTERRUPTIBLE, 1, &key); } EXPORT_SYMBOL(__wake_up_bit); /** * wake_up_bit - wake up a waiter on a bit * @word: the word being waited on, a kernel virtual address * @bit: the bit of the word being waited on * * There is a standard hashed waitqueue table for generic use. This * is the part of the hashtable's accessor API that wakes up waiters * on a bit. For instance, if one were to have waiters on a bitflag, * one would call wake_up_bit() after clearing the bit. * * In order for this to function properly, as it uses waitqueue_active() * internally, some kind of memory barrier must be done prior to calling * this. Typically, this will be smp_mb__after_clear_bit(), but in some * cases where bitflags are manipulated non-atomically under a lock, one * may need to use a less regular barrier, such fs/inode.c's smp_mb(), * because spin_unlock() does not guarantee a memory barrier. */ void fastcall wake_up_bit(void *word, int bit) { __wake_up_bit(bit_waitqueue(word, bit), word, bit); } EXPORT_SYMBOL(wake_up_bit); fastcall wait_queue_head_t *bit_waitqueue(void *word, int bit) { const int shift = BITS_PER_LONG == 32 ? 5 : 6; const struct zone *zone = page_zone(virt_to_page(word)); unsigned long val = (unsigned long)word << shift | bit; return &zone->wait_table[hash_long(val, zone->wait_table_bits)]; } EXPORT_SYMBOL(bit_waitqueue);