diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-02 10:46:18 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-02 10:46:18 -0400 |
| commit | 2f819ae8816990aaad46dd6d1748a096d136df68 (patch) | |
| tree | 65891bf45d2d0e4e7884c4cc69beb9c27b67be95 /include/linux | |
| parent | d40c2f29f3b0f5937bace575722598dac474c478 (diff) | |
| parent | 802fb176d8c635ae42da31b80841c26e8c7338a0 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (45 commits)
[VLAN]: Proc entry is not renamed when vlan device name changes.
[IPV6]: Fix ICMP relookup error path dst leak
[ATM] drivers/atm/iphase.c: compilation warning fix
IPv6: do not create temporary adresses with too short preferred lifetime
IPv6: only update the lifetime of the relevant temporary address
bluetooth : __rfcomm_dlc_close lock fix
bluetooth : use lockdep sub-classes for diffrent bluetooth protocol
[ROSE/AX25] af_rose: rose_release() fix
mac80211: correct use_short_preamble handling
b43: Fix PCMCIA IRQ routing
b43: Add DMA mapping failure messages
mac80211: trigger ieee80211_sta_work after opening interface
[LLC]: skb allocation size for responses
[IP] UDP: Use SEQ_START_TOKEN.
[NET]: Remove Documentation/networking/sk98lin.txt
[ATM] atm/idt77252.c: Make 2 functions static
[ATM]: Make atm/he.c:read_prom_byte() static
[IPV6] MCAST: Ensure to check multicast listener(s).
[LLC]: Kill llc_station_mac_sa symbol export.
forcedeth: fix locking bug with netconsole
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index a2f003239c85..ee81906b5164 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -383,9 +383,11 @@ static inline void __napi_complete(struct napi_struct *n) | |||
| 383 | 383 | ||
| 384 | static inline void napi_complete(struct napi_struct *n) | 384 | static inline void napi_complete(struct napi_struct *n) |
| 385 | { | 385 | { |
| 386 | local_irq_disable(); | 386 | unsigned long flags; |
| 387 | |||
| 388 | local_irq_save(flags); | ||
| 387 | __napi_complete(n); | 389 | __napi_complete(n); |
| 388 | local_irq_enable(); | 390 | local_irq_restore(flags); |
| 389 | } | 391 | } |
| 390 | 392 | ||
| 391 | /** | 393 | /** |
| @@ -1072,12 +1074,14 @@ static inline int netif_is_multiqueue(const struct net_device *dev) | |||
| 1072 | } | 1074 | } |
| 1073 | 1075 | ||
| 1074 | /* Use this variant when it is known for sure that it | 1076 | /* Use this variant when it is known for sure that it |
| 1075 | * is executing from interrupt context. | 1077 | * is executing from hardware interrupt context or with hardware interrupts |
| 1078 | * disabled. | ||
| 1076 | */ | 1079 | */ |
| 1077 | extern void dev_kfree_skb_irq(struct sk_buff *skb); | 1080 | extern void dev_kfree_skb_irq(struct sk_buff *skb); |
| 1078 | 1081 | ||
| 1079 | /* Use this variant in places where it could be invoked | 1082 | /* Use this variant in places where it could be invoked |
| 1080 | * either from interrupt or non-interrupt context. | 1083 | * from either hardware interrupt or other context, with hardware interrupts |
| 1084 | * either disabled or enabled. | ||
| 1081 | */ | 1085 | */ |
| 1082 | extern void dev_kfree_skb_any(struct sk_buff *skb); | 1086 | extern void dev_kfree_skb_any(struct sk_buff *skb); |
| 1083 | 1087 | ||
