diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/Kbuild | 1 | ||||
-rw-r--r-- | include/linux/can/platform/sja1000.h | 3 | ||||
-rw-r--r-- | include/linux/ethtool.h | 8 | ||||
-rw-r--r-- | include/linux/ieee80211.h | 1 | ||||
-rw-r--r-- | include/linux/if_arp.h | 2 | ||||
-rw-r--r-- | include/linux/if_ether.h | 1 | ||||
-rw-r--r-- | include/linux/in.h | 1 | ||||
-rw-r--r-- | include/linux/ipv6.h | 6 | ||||
-rw-r--r-- | include/linux/isdn/capilli.h | 2 | ||||
-rw-r--r-- | include/linux/mdio.h | 9 | ||||
-rw-r--r-- | include/linux/netdevice.h | 48 | ||||
-rw-r--r-- | include/linux/netfilter/nf_conntrack_tcp.h | 4 | ||||
-rw-r--r-- | include/linux/nl802154.h | 119 | ||||
-rw-r--r-- | include/linux/notifier.h | 1 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 38 | ||||
-rw-r--r-- | include/linux/rfkill.h | 371 | ||||
-rw-r--r-- | include/linux/sctp.h | 20 | ||||
-rw-r--r-- | include/linux/skbuff.h | 53 | ||||
-rw-r--r-- | include/linux/socket.h | 4 | ||||
-rw-r--r-- | include/linux/spi/libertas_spi.h | 3 | ||||
-rw-r--r-- | include/linux/wimax.h | 7 |
21 files changed, 541 insertions, 161 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 3f0eaa397ef5..7e09c5c1ed02 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -311,6 +311,7 @@ unifdef-y += ptrace.h | |||
311 | unifdef-y += qnx4_fs.h | 311 | unifdef-y += qnx4_fs.h |
312 | unifdef-y += quota.h | 312 | unifdef-y += quota.h |
313 | unifdef-y += random.h | 313 | unifdef-y += random.h |
314 | unifdef-y += rfkill.h | ||
314 | unifdef-y += irqnr.h | 315 | unifdef-y += irqnr.h |
315 | unifdef-y += reboot.h | 316 | unifdef-y += reboot.h |
316 | unifdef-y += reiserfs_fs.h | 317 | unifdef-y += reiserfs_fs.h |
diff --git a/include/linux/can/platform/sja1000.h b/include/linux/can/platform/sja1000.h index 37966e630ff5..01ee2aeb048d 100644 --- a/include/linux/can/platform/sja1000.h +++ b/include/linux/can/platform/sja1000.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #define OCR_MODE_TEST 0x01 | 13 | #define OCR_MODE_TEST 0x01 |
14 | #define OCR_MODE_NORMAL 0x02 | 14 | #define OCR_MODE_NORMAL 0x02 |
15 | #define OCR_MODE_CLOCK 0x03 | 15 | #define OCR_MODE_CLOCK 0x03 |
16 | #define OCR_MODE_MASK 0x07 | ||
16 | #define OCR_TX0_INVERT 0x04 | 17 | #define OCR_TX0_INVERT 0x04 |
17 | #define OCR_TX0_PULLDOWN 0x08 | 18 | #define OCR_TX0_PULLDOWN 0x08 |
18 | #define OCR_TX0_PULLUP 0x10 | 19 | #define OCR_TX0_PULLUP 0x10 |
@@ -21,6 +22,8 @@ | |||
21 | #define OCR_TX1_PULLDOWN 0x40 | 22 | #define OCR_TX1_PULLDOWN 0x40 |
22 | #define OCR_TX1_PULLUP 0x80 | 23 | #define OCR_TX1_PULLUP 0x80 |
23 | #define OCR_TX1_PUSHPULL 0xc0 | 24 | #define OCR_TX1_PUSHPULL 0xc0 |
25 | #define OCR_TX_MASK 0xfc | ||
26 | #define OCR_TX_SHIFT 2 | ||
24 | 27 | ||
25 | struct sja1000_platform_data { | 28 | struct sja1000_platform_data { |
26 | u32 clock; /* CAN bus oscillator frequency in Hz */ | 29 | u32 clock; /* CAN bus oscillator frequency in Hz */ |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 380b04272bf1..9b660bd2e2b3 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -30,7 +30,8 @@ struct ethtool_cmd { | |||
30 | __u32 maxtxpkt; /* Tx pkts before generating tx int */ | 30 | __u32 maxtxpkt; /* Tx pkts before generating tx int */ |
31 | __u32 maxrxpkt; /* Rx pkts before generating rx int */ | 31 | __u32 maxrxpkt; /* Rx pkts before generating rx int */ |
32 | __u16 speed_hi; | 32 | __u16 speed_hi; |
33 | __u16 reserved2; | 33 | __u8 eth_tp_mdix; |
34 | __u8 reserved2; | ||
34 | __u32 lp_advertising; /* Features the link partner advertises */ | 35 | __u32 lp_advertising; /* Features the link partner advertises */ |
35 | __u32 reserved[2]; | 36 | __u32 reserved[2]; |
36 | }; | 37 | }; |
@@ -632,6 +633,11 @@ struct ethtool_ops { | |||
632 | #define AUTONEG_DISABLE 0x00 | 633 | #define AUTONEG_DISABLE 0x00 |
633 | #define AUTONEG_ENABLE 0x01 | 634 | #define AUTONEG_ENABLE 0x01 |
634 | 635 | ||
636 | /* Mode MDI or MDI-X */ | ||
637 | #define ETH_TP_MDI_INVALID 0x00 | ||
638 | #define ETH_TP_MDI 0x01 | ||
639 | #define ETH_TP_MDI_X 0x02 | ||
640 | |||
635 | /* Wake-On-Lan options. */ | 641 | /* Wake-On-Lan options. */ |
636 | #define WAKE_PHY (1 << 0) | 642 | #define WAKE_PHY (1 << 0) |
637 | #define WAKE_UCAST (1 << 1) | 643 | #define WAKE_UCAST (1 << 1) |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 34de8b21f6d4..a9173d5434d1 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -1092,6 +1092,7 @@ enum ieee80211_key_len { | |||
1092 | WLAN_KEY_LEN_WEP104 = 13, | 1092 | WLAN_KEY_LEN_WEP104 = 13, |
1093 | WLAN_KEY_LEN_CCMP = 16, | 1093 | WLAN_KEY_LEN_CCMP = 16, |
1094 | WLAN_KEY_LEN_TKIP = 32, | 1094 | WLAN_KEY_LEN_TKIP = 32, |
1095 | WLAN_KEY_LEN_AES_CMAC = 16, | ||
1095 | }; | 1096 | }; |
1096 | 1097 | ||
1097 | /* | 1098 | /* |
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h index 5ff89809a581..b554300ef8bf 100644 --- a/include/linux/if_arp.h +++ b/include/linux/if_arp.h | |||
@@ -86,6 +86,8 @@ | |||
86 | #define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ | 86 | #define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ |
87 | #define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ | 87 | #define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ |
88 | #define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ | 88 | #define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ |
89 | #define ARPHRD_IEEE802154 804 | ||
90 | #define ARPHRD_IEEE802154_PHY 805 | ||
89 | 91 | ||
90 | #define ARPHRD_PHONET 820 /* PhoNet media type */ | 92 | #define ARPHRD_PHONET 820 /* PhoNet media type */ |
91 | #define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */ | 93 | #define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */ |
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index cfe4fe1b7132..11a60e4f0a66 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h | |||
@@ -106,6 +106,7 @@ | |||
106 | #define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ | 106 | #define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ |
107 | #define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ | 107 | #define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ |
108 | #define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ | 108 | #define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ |
109 | #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ | ||
109 | 110 | ||
110 | /* | 111 | /* |
111 | * This is an Ethernet frame header. | 112 | * This is an Ethernet frame header. |
diff --git a/include/linux/in.h b/include/linux/in.h index d60122a3a088..cf196da04ec9 100644 --- a/include/linux/in.h +++ b/include/linux/in.h | |||
@@ -107,6 +107,7 @@ struct in_addr { | |||
107 | #define MCAST_JOIN_SOURCE_GROUP 46 | 107 | #define MCAST_JOIN_SOURCE_GROUP 46 |
108 | #define MCAST_LEAVE_SOURCE_GROUP 47 | 108 | #define MCAST_LEAVE_SOURCE_GROUP 47 |
109 | #define MCAST_MSFILTER 48 | 109 | #define MCAST_MSFILTER 48 |
110 | #define IP_MULTICAST_ALL 49 | ||
110 | 111 | ||
111 | #define MCAST_EXCLUDE 0 | 112 | #define MCAST_EXCLUDE 0 |
112 | #define MCAST_INCLUDE 1 | 113 | #define MCAST_INCLUDE 1 |
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 476d9464ac82..c662efa68289 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
@@ -169,6 +169,12 @@ struct ipv6_devconf { | |||
169 | __s32 accept_dad; | 169 | __s32 accept_dad; |
170 | void *sysctl; | 170 | void *sysctl; |
171 | }; | 171 | }; |
172 | |||
173 | struct ipv6_params { | ||
174 | __s32 disable_ipv6; | ||
175 | __s32 autoconf; | ||
176 | }; | ||
177 | extern struct ipv6_params ipv6_defaults; | ||
172 | #endif | 178 | #endif |
173 | 179 | ||
174 | /* index values for the variables in ipv6_devconf */ | 180 | /* index values for the variables in ipv6_devconf */ |
diff --git a/include/linux/isdn/capilli.h b/include/linux/isdn/capilli.h index 35e9b0fd014b..7acb87a44872 100644 --- a/include/linux/isdn/capilli.h +++ b/include/linux/isdn/capilli.h | |||
@@ -79,7 +79,7 @@ int attach_capi_ctr(struct capi_ctr *); | |||
79 | int detach_capi_ctr(struct capi_ctr *); | 79 | int detach_capi_ctr(struct capi_ctr *); |
80 | 80 | ||
81 | void capi_ctr_ready(struct capi_ctr * card); | 81 | void capi_ctr_ready(struct capi_ctr * card); |
82 | void capi_ctr_reseted(struct capi_ctr * card); | 82 | void capi_ctr_down(struct capi_ctr * card); |
83 | void capi_ctr_suspend_output(struct capi_ctr * card); | 83 | void capi_ctr_suspend_output(struct capi_ctr * card); |
84 | void capi_ctr_resume_output(struct capi_ctr * card); | 84 | void capi_ctr_resume_output(struct capi_ctr * card); |
85 | void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb); | 85 | void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb); |
diff --git a/include/linux/mdio.h b/include/linux/mdio.h index 56851646529a..cfdf1df2875e 100644 --- a/include/linux/mdio.h +++ b/include/linux/mdio.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #define MDIO_PHYXS_LNSTAT 24 /* PHY XGXS lane state */ | 45 | #define MDIO_PHYXS_LNSTAT 24 /* PHY XGXS lane state */ |
46 | 46 | ||
47 | /* Media-dependent registers. */ | 47 | /* Media-dependent registers. */ |
48 | #define MDIO_PMA_10GBT_SWAPPOL 130 /* 10GBASE-T pair swap & polarity */ | ||
48 | #define MDIO_PMA_10GBT_TXPWR 131 /* 10GBASE-T TX power control */ | 49 | #define MDIO_PMA_10GBT_TXPWR 131 /* 10GBASE-T TX power control */ |
49 | #define MDIO_PMA_10GBT_SNR 133 /* 10GBASE-T SNR margin, lane A. | 50 | #define MDIO_PMA_10GBT_SNR 133 /* 10GBASE-T SNR margin, lane A. |
50 | * Lanes B-D are numbered 134-136. */ | 51 | * Lanes B-D are numbered 134-136. */ |
@@ -195,6 +196,14 @@ | |||
195 | #define MDIO_PHYXS_LNSTAT_SYNC3 0x0008 | 196 | #define MDIO_PHYXS_LNSTAT_SYNC3 0x0008 |
196 | #define MDIO_PHYXS_LNSTAT_ALIGN 0x1000 | 197 | #define MDIO_PHYXS_LNSTAT_ALIGN 0x1000 |
197 | 198 | ||
199 | /* PMA 10GBASE-T pair swap & polarity */ | ||
200 | #define MDIO_PMA_10GBT_SWAPPOL_ABNX 0x0001 /* Pair A/B uncrossed */ | ||
201 | #define MDIO_PMA_10GBT_SWAPPOL_CDNX 0x0002 /* Pair C/D uncrossed */ | ||
202 | #define MDIO_PMA_10GBT_SWAPPOL_AREV 0x0100 /* Pair A polarity reversed */ | ||
203 | #define MDIO_PMA_10GBT_SWAPPOL_BREV 0x0200 /* Pair B polarity reversed */ | ||
204 | #define MDIO_PMA_10GBT_SWAPPOL_CREV 0x0400 /* Pair C polarity reversed */ | ||
205 | #define MDIO_PMA_10GBT_SWAPPOL_DREV 0x0800 /* Pair D polarity reversed */ | ||
206 | |||
198 | /* PMA 10GBASE-T TX power register. */ | 207 | /* PMA 10GBASE-T TX power register. */ |
199 | #define MDIO_PMA_10GBT_TXPWR_SHORT 0x0001 /* Short-reach mode */ | 208 | #define MDIO_PMA_10GBT_TXPWR_SHORT 0x0001 /* Short-reach mode */ |
200 | 209 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 371ece521e58..9ea8d6dfe540 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -215,9 +215,12 @@ struct netdev_hw_addr { | |||
215 | struct list_head list; | 215 | struct list_head list; |
216 | unsigned char addr[MAX_ADDR_LEN]; | 216 | unsigned char addr[MAX_ADDR_LEN]; |
217 | unsigned char type; | 217 | unsigned char type; |
218 | #define NETDEV_HW_ADDR_T_LAN 1 | 218 | #define NETDEV_HW_ADDR_T_LAN 1 |
219 | #define NETDEV_HW_ADDR_T_SAN 2 | 219 | #define NETDEV_HW_ADDR_T_SAN 2 |
220 | #define NETDEV_HW_ADDR_T_SLAVE 3 | 220 | #define NETDEV_HW_ADDR_T_SLAVE 3 |
221 | #define NETDEV_HW_ADDR_T_UNICAST 4 | ||
222 | int refcount; | ||
223 | bool synced; | ||
221 | struct rcu_head rcu_head; | 224 | struct rcu_head rcu_head; |
222 | }; | 225 | }; |
223 | 226 | ||
@@ -773,10 +776,11 @@ struct net_device | |||
773 | unsigned char addr_len; /* hardware address length */ | 776 | unsigned char addr_len; /* hardware address length */ |
774 | unsigned short dev_id; /* for shared network cards */ | 777 | unsigned short dev_id; /* for shared network cards */ |
775 | 778 | ||
776 | spinlock_t addr_list_lock; | 779 | struct list_head uc_list; /* Secondary unicast mac |
777 | struct dev_addr_list *uc_list; /* Secondary unicast mac addresses */ | 780 | addresses */ |
778 | int uc_count; /* Number of installed ucasts */ | 781 | int uc_count; /* Number of installed ucasts */ |
779 | int uc_promisc; | 782 | int uc_promisc; |
783 | spinlock_t addr_list_lock; | ||
780 | struct dev_addr_list *mc_list; /* Multicast mac addresses */ | 784 | struct dev_addr_list *mc_list; /* Multicast mac addresses */ |
781 | int mc_count; /* Number of installed mcasts */ | 785 | int mc_count; /* Number of installed mcasts */ |
782 | unsigned int promiscuity; | 786 | unsigned int promiscuity; |
@@ -905,7 +909,6 @@ struct net_device | |||
905 | #define to_net_dev(d) container_of(d, struct net_device, dev) | 909 | #define to_net_dev(d) container_of(d, struct net_device, dev) |
906 | 910 | ||
907 | #define NETDEV_ALIGN 32 | 911 | #define NETDEV_ALIGN 32 |
908 | #define NETDEV_ALIGN_CONST (NETDEV_ALIGN - 1) | ||
909 | 912 | ||
910 | static inline | 913 | static inline |
911 | struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev, | 914 | struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev, |
@@ -976,9 +979,7 @@ static inline bool netdev_uses_trailer_tags(struct net_device *dev) | |||
976 | */ | 979 | */ |
977 | static inline void *netdev_priv(const struct net_device *dev) | 980 | static inline void *netdev_priv(const struct net_device *dev) |
978 | { | 981 | { |
979 | return (char *)dev + ((sizeof(struct net_device) | 982 | return (char *)dev + ALIGN(sizeof(struct net_device), NETDEV_ALIGN); |
980 | + NETDEV_ALIGN_CONST) | ||
981 | & ~NETDEV_ALIGN_CONST); | ||
982 | } | 983 | } |
983 | 984 | ||
984 | /* Set the sysfs physical device reference for the network logical device | 985 | /* Set the sysfs physical device reference for the network logical device |
@@ -1839,8 +1840,8 @@ extern int dev_addr_del_multiple(struct net_device *to_dev, | |||
1839 | /* Functions used for secondary unicast and multicast support */ | 1840 | /* Functions used for secondary unicast and multicast support */ |
1840 | extern void dev_set_rx_mode(struct net_device *dev); | 1841 | extern void dev_set_rx_mode(struct net_device *dev); |
1841 | extern void __dev_set_rx_mode(struct net_device *dev); | 1842 | extern void __dev_set_rx_mode(struct net_device *dev); |
1842 | extern int dev_unicast_delete(struct net_device *dev, void *addr, int alen); | 1843 | extern int dev_unicast_delete(struct net_device *dev, void *addr); |
1843 | extern int dev_unicast_add(struct net_device *dev, void *addr, int alen); | 1844 | extern int dev_unicast_add(struct net_device *dev, void *addr); |
1844 | extern int dev_unicast_sync(struct net_device *to, struct net_device *from); | 1845 | extern int dev_unicast_sync(struct net_device *to, struct net_device *from); |
1845 | extern void dev_unicast_unsync(struct net_device *to, struct net_device *from); | 1846 | extern void dev_unicast_unsync(struct net_device *to, struct net_device *from); |
1846 | extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all); | 1847 | extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all); |
@@ -1902,15 +1903,14 @@ static inline int net_gso_ok(int features, int gso_type) | |||
1902 | 1903 | ||
1903 | static inline int skb_gso_ok(struct sk_buff *skb, int features) | 1904 | static inline int skb_gso_ok(struct sk_buff *skb, int features) |
1904 | { | 1905 | { |
1905 | return net_gso_ok(features, skb_shinfo(skb)->gso_type); | 1906 | return net_gso_ok(features, skb_shinfo(skb)->gso_type) && |
1907 | (!skb_has_frags(skb) || (features & NETIF_F_FRAGLIST)); | ||
1906 | } | 1908 | } |
1907 | 1909 | ||
1908 | static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) | 1910 | static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) |
1909 | { | 1911 | { |
1910 | return skb_is_gso(skb) && | 1912 | return skb_is_gso(skb) && |
1911 | (!skb_gso_ok(skb, dev->features) || | 1913 | (!skb_gso_ok(skb, dev->features) || |
1912 | (skb_shinfo(skb)->frag_list && | ||
1913 | !(dev->features & NETIF_F_FRAGLIST)) || | ||
1914 | unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); | 1914 | unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); |
1915 | } | 1915 | } |
1916 | 1916 | ||
@@ -1920,6 +1920,16 @@ static inline void netif_set_gso_max_size(struct net_device *dev, | |||
1920 | dev->gso_max_size = size; | 1920 | dev->gso_max_size = size; |
1921 | } | 1921 | } |
1922 | 1922 | ||
1923 | static inline void skb_bond_set_mac_by_master(struct sk_buff *skb, | ||
1924 | struct net_device *master) | ||
1925 | { | ||
1926 | if (skb->pkt_type == PACKET_HOST) { | ||
1927 | u16 *dest = (u16 *) eth_hdr(skb)->h_dest; | ||
1928 | |||
1929 | memcpy(dest, master->dev_addr, ETH_ALEN); | ||
1930 | } | ||
1931 | } | ||
1932 | |||
1923 | /* On bonding slaves other than the currently active slave, suppress | 1933 | /* On bonding slaves other than the currently active slave, suppress |
1924 | * duplicates except for 802.3ad ETH_P_SLOW, alb non-mcast/bcast, and | 1934 | * duplicates except for 802.3ad ETH_P_SLOW, alb non-mcast/bcast, and |
1925 | * ARP on active-backup slaves with arp_validate enabled. | 1935 | * ARP on active-backup slaves with arp_validate enabled. |
@@ -1933,6 +1943,14 @@ static inline int skb_bond_should_drop(struct sk_buff *skb) | |||
1933 | if (master->priv_flags & IFF_MASTER_ARPMON) | 1943 | if (master->priv_flags & IFF_MASTER_ARPMON) |
1934 | dev->last_rx = jiffies; | 1944 | dev->last_rx = jiffies; |
1935 | 1945 | ||
1946 | if ((master->priv_flags & IFF_MASTER_ALB) && master->br_port) { | ||
1947 | /* Do address unmangle. The local destination address | ||
1948 | * will be always the one master has. Provides the right | ||
1949 | * functionality in a bridge. | ||
1950 | */ | ||
1951 | skb_bond_set_mac_by_master(skb, master); | ||
1952 | } | ||
1953 | |||
1936 | if (dev->priv_flags & IFF_SLAVE_INACTIVE) { | 1954 | if (dev->priv_flags & IFF_SLAVE_INACTIVE) { |
1937 | if ((dev->priv_flags & IFF_SLAVE_NEEDARP) && | 1955 | if ((dev->priv_flags & IFF_SLAVE_NEEDARP) && |
1938 | skb->protocol == __cpu_to_be16(ETH_P_ARP)) | 1956 | skb->protocol == __cpu_to_be16(ETH_P_ARP)) |
@@ -1978,4 +1996,4 @@ static inline u32 dev_ethtool_get_flags(struct net_device *dev) | |||
1978 | } | 1996 | } |
1979 | #endif /* __KERNEL__ */ | 1997 | #endif /* __KERNEL__ */ |
1980 | 1998 | ||
1981 | #endif /* _LINUX_DEV_H */ | 1999 | #endif /* _LINUX_NETDEVICE_H */ |
diff --git a/include/linux/netfilter/nf_conntrack_tcp.h b/include/linux/netfilter/nf_conntrack_tcp.h index 74c27ca770e5..4352feed2377 100644 --- a/include/linux/netfilter/nf_conntrack_tcp.h +++ b/include/linux/netfilter/nf_conntrack_tcp.h | |||
@@ -36,6 +36,9 @@ enum tcp_conntrack { | |||
36 | /* Has unacknowledged data */ | 36 | /* Has unacknowledged data */ |
37 | #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 | 37 | #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 |
38 | 38 | ||
39 | /* The field td_maxack has been set */ | ||
40 | #define IP_CT_TCP_FLAG_MAXACK_SET 0x20 | ||
41 | |||
39 | struct nf_ct_tcp_flags { | 42 | struct nf_ct_tcp_flags { |
40 | __u8 flags; | 43 | __u8 flags; |
41 | __u8 mask; | 44 | __u8 mask; |
@@ -47,6 +50,7 @@ struct ip_ct_tcp_state { | |||
47 | u_int32_t td_end; /* max of seq + len */ | 50 | u_int32_t td_end; /* max of seq + len */ |
48 | u_int32_t td_maxend; /* max of ack + max(win, 1) */ | 51 | u_int32_t td_maxend; /* max of ack + max(win, 1) */ |
49 | u_int32_t td_maxwin; /* max(win) */ | 52 | u_int32_t td_maxwin; /* max(win) */ |
53 | u_int32_t td_maxack; /* max of ack */ | ||
50 | u_int8_t td_scale; /* window scale factor */ | 54 | u_int8_t td_scale; /* window scale factor */ |
51 | u_int8_t flags; /* per direction options */ | 55 | u_int8_t flags; /* per direction options */ |
52 | }; | 56 | }; |
diff --git a/include/linux/nl802154.h b/include/linux/nl802154.h new file mode 100644 index 000000000000..2cda00ccfcca --- /dev/null +++ b/include/linux/nl802154.h | |||
@@ -0,0 +1,119 @@ | |||
1 | /* | ||
2 | * nl802154.h | ||
3 | * | ||
4 | * Copyright (C) 2007, 2008, 2009 Siemens AG | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 | ||
8 | * as published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License along | ||
16 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
18 | * | ||
19 | */ | ||
20 | |||
21 | #ifndef NL802154_H | ||
22 | #define NL802154_H | ||
23 | |||
24 | #define IEEE802154_NL_NAME "802.15.4 MAC" | ||
25 | #define IEEE802154_MCAST_COORD_NAME "coordinator" | ||
26 | #define IEEE802154_MCAST_BEACON_NAME "beacon" | ||
27 | |||
28 | enum { | ||
29 | __IEEE802154_ATTR_INVALID, | ||
30 | |||
31 | IEEE802154_ATTR_DEV_NAME, | ||
32 | IEEE802154_ATTR_DEV_INDEX, | ||
33 | |||
34 | IEEE802154_ATTR_STATUS, | ||
35 | |||
36 | IEEE802154_ATTR_SHORT_ADDR, | ||
37 | IEEE802154_ATTR_HW_ADDR, | ||
38 | IEEE802154_ATTR_PAN_ID, | ||
39 | |||
40 | IEEE802154_ATTR_CHANNEL, | ||
41 | |||
42 | IEEE802154_ATTR_COORD_SHORT_ADDR, | ||
43 | IEEE802154_ATTR_COORD_HW_ADDR, | ||
44 | IEEE802154_ATTR_COORD_PAN_ID, | ||
45 | |||
46 | IEEE802154_ATTR_SRC_SHORT_ADDR, | ||
47 | IEEE802154_ATTR_SRC_HW_ADDR, | ||
48 | IEEE802154_ATTR_SRC_PAN_ID, | ||
49 | |||
50 | IEEE802154_ATTR_DEST_SHORT_ADDR, | ||
51 | IEEE802154_ATTR_DEST_HW_ADDR, | ||
52 | IEEE802154_ATTR_DEST_PAN_ID, | ||
53 | |||
54 | IEEE802154_ATTR_CAPABILITY, | ||
55 | IEEE802154_ATTR_REASON, | ||
56 | IEEE802154_ATTR_SCAN_TYPE, | ||
57 | IEEE802154_ATTR_CHANNELS, | ||
58 | IEEE802154_ATTR_DURATION, | ||
59 | IEEE802154_ATTR_ED_LIST, | ||
60 | IEEE802154_ATTR_BCN_ORD, | ||
61 | IEEE802154_ATTR_SF_ORD, | ||
62 | IEEE802154_ATTR_PAN_COORD, | ||
63 | IEEE802154_ATTR_BAT_EXT, | ||
64 | IEEE802154_ATTR_COORD_REALIGN, | ||
65 | IEEE802154_ATTR_SEC, | ||
66 | |||
67 | __IEEE802154_ATTR_MAX, | ||
68 | }; | ||
69 | |||
70 | #define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1) | ||
71 | |||
72 | extern struct nla_policy ieee802154_policy[]; | ||
73 | |||
74 | /* commands */ | ||
75 | /* REQ should be responded with CONF | ||
76 | * and INDIC with RESP | ||
77 | */ | ||
78 | enum { | ||
79 | __IEEE802154_COMMAND_INVALID, | ||
80 | |||
81 | IEEE802154_ASSOCIATE_REQ, | ||
82 | IEEE802154_ASSOCIATE_CONF, | ||
83 | IEEE802154_DISASSOCIATE_REQ, | ||
84 | IEEE802154_DISASSOCIATE_CONF, | ||
85 | IEEE802154_GET_REQ, | ||
86 | IEEE802154_GET_CONF, | ||
87 | IEEE802154_RESET_REQ, | ||
88 | IEEE802154_RESET_CONF, | ||
89 | IEEE802154_SCAN_REQ, | ||
90 | IEEE802154_SCAN_CONF, | ||
91 | IEEE802154_SET_REQ, | ||
92 | IEEE802154_SET_CONF, | ||
93 | IEEE802154_START_REQ, | ||
94 | IEEE802154_START_CONF, | ||
95 | IEEE802154_SYNC_REQ, | ||
96 | IEEE802154_POLL_REQ, | ||
97 | IEEE802154_POLL_CONF, | ||
98 | |||
99 | IEEE802154_ASSOCIATE_INDIC, | ||
100 | IEEE802154_ASSOCIATE_RESP, | ||
101 | IEEE802154_DISASSOCIATE_INDIC, | ||
102 | IEEE802154_BEACON_NOTIFY_INDIC, | ||
103 | IEEE802154_ORPHAN_INDIC, | ||
104 | IEEE802154_ORPHAN_RESP, | ||
105 | IEEE802154_COMM_STATUS_INDIC, | ||
106 | IEEE802154_SYNC_LOSS_INDIC, | ||
107 | |||
108 | IEEE802154_GTS_REQ, /* Not supported yet */ | ||
109 | IEEE802154_GTS_INDIC, /* Not supported yet */ | ||
110 | IEEE802154_GTS_CONF, /* Not supported yet */ | ||
111 | IEEE802154_RX_ENABLE_REQ, /* Not supported yet */ | ||
112 | IEEE802154_RX_ENABLE_CONF, /* Not supported yet */ | ||
113 | |||
114 | __IEEE802154_CMD_MAX, | ||
115 | }; | ||
116 | |||
117 | #define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1) | ||
118 | |||
119 | #endif | ||
diff --git a/include/linux/notifier.h b/include/linux/notifier.h index b86fa2ffca0c..81bc252dc8ac 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h | |||
@@ -198,6 +198,7 @@ static inline int notifier_to_errno(int ret) | |||
198 | #define NETDEV_CHANGENAME 0x000A | 198 | #define NETDEV_CHANGENAME 0x000A |
199 | #define NETDEV_FEAT_CHANGE 0x000B | 199 | #define NETDEV_FEAT_CHANGE 0x000B |
200 | #define NETDEV_BONDING_FAILOVER 0x000C | 200 | #define NETDEV_BONDING_FAILOVER 0x000C |
201 | #define NETDEV_PRE_UP 0x000D | ||
201 | 202 | ||
202 | #define SYS_DOWN 0x0001 /* Notify of system down */ | 203 | #define SYS_DOWN 0x0001 /* Notify of system down */ |
203 | #define SYS_RESTART SYS_DOWN | 204 | #define SYS_RESTART SYS_DOWN |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 12db06cf0e23..b87c51aea14c 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1066,8 +1066,6 @@ | |||
1066 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SMBUS 0x0034 | 1066 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SMBUS 0x0034 |
1067 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE 0x0035 | 1067 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE 0x0035 |
1068 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA 0x0036 | 1068 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA 0x0036 |
1069 | #define PCI_DEVICE_ID_NVIDIA_NVENET_10 0x0037 | ||
1070 | #define PCI_DEVICE_ID_NVIDIA_NVENET_11 0x0038 | ||
1071 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2 0x003e | 1069 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2 0x003e |
1072 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800_ULTRA 0x0040 | 1070 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800_ULTRA 0x0040 |
1073 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800 0x0041 | 1071 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800 0x0041 |
@@ -1078,21 +1076,16 @@ | |||
1078 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE 0x0053 | 1076 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE 0x0053 |
1079 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA 0x0054 | 1077 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA 0x0054 |
1080 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 0x0055 | 1078 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 0x0055 |
1081 | #define PCI_DEVICE_ID_NVIDIA_NVENET_8 0x0056 | ||
1082 | #define PCI_DEVICE_ID_NVIDIA_NVENET_9 0x0057 | ||
1083 | #define PCI_DEVICE_ID_NVIDIA_CK804_AUDIO 0x0059 | 1079 | #define PCI_DEVICE_ID_NVIDIA_CK804_AUDIO 0x0059 |
1084 | #define PCI_DEVICE_ID_NVIDIA_CK804_PCIE 0x005d | 1080 | #define PCI_DEVICE_ID_NVIDIA_CK804_PCIE 0x005d |
1085 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064 | 1081 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064 |
1086 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065 | 1082 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065 |
1087 | #define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066 | ||
1088 | #define PCI_DEVICE_ID_NVIDIA_MCP2_MODEM 0x0069 | 1083 | #define PCI_DEVICE_ID_NVIDIA_MCP2_MODEM 0x0069 |
1089 | #define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a | 1084 | #define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a |
1090 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084 | 1085 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084 |
1091 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085 | 1086 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085 |
1092 | #define PCI_DEVICE_ID_NVIDIA_NVENET_4 0x0086 | ||
1093 | #define PCI_DEVICE_ID_NVIDIA_MCP2S_MODEM 0x0089 | 1087 | #define PCI_DEVICE_ID_NVIDIA_MCP2S_MODEM 0x0089 |
1094 | #define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO 0x008a | 1088 | #define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO 0x008a |
1095 | #define PCI_DEVICE_ID_NVIDIA_NVENET_5 0x008c | ||
1096 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e | 1089 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e |
1097 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GT 0x0090 | 1090 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GT 0x0090 |
1098 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GTX 0x0091 | 1091 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GTX 0x0091 |
@@ -1108,15 +1101,12 @@ | |||
1108 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1 | 1101 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1 |
1109 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 | 1102 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 |
1110 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 | 1103 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 |
1111 | #define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6 | ||
1112 | #define PCI_DEVICE_ID_NVIDIA_MCP3_MODEM 0x00d9 | 1104 | #define PCI_DEVICE_ID_NVIDIA_MCP3_MODEM 0x00d9 |
1113 | #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da | 1105 | #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da |
1114 | #define PCI_DEVICE_ID_NVIDIA_NVENET_7 0x00df | ||
1115 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1 | 1106 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1 |
1116 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3 | 1107 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3 |
1117 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4 | 1108 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4 |
1118 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5 | 1109 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5 |
1119 | #define PCI_DEVICE_ID_NVIDIA_NVENET_6 0x00e6 | ||
1120 | #define PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO 0x00ea | 1110 | #define PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO 0x00ea |
1121 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee | 1111 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee |
1122 | #define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6800_ALT1 0x00f0 | 1112 | #define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6800_ALT1 0x00f0 |
@@ -1176,7 +1166,6 @@ | |||
1176 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4 | 1166 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4 |
1177 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc | 1167 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc |
1178 | #define PCI_DEVICE_ID_NVIDIA_MCP1_MODEM 0x01c1 | 1168 | #define PCI_DEVICE_ID_NVIDIA_MCP1_MODEM 0x01c1 |
1179 | #define PCI_DEVICE_ID_NVIDIA_NVENET_1 0x01c3 | ||
1180 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0 | 1169 | #define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0 |
1181 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200 | 1170 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200 |
1182 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE3_1 0x0201 | 1171 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE3_1 0x0201 |
@@ -1199,8 +1188,6 @@ | |||
1199 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E | 1188 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E |
1200 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E | 1189 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E |
1201 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F | 1190 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F |
1202 | #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 | ||
1203 | #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 | ||
1204 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280 | 1191 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280 |
1205 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281 | 1192 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281 |
1206 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282 | 1193 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282 |
@@ -1247,46 +1234,21 @@ | |||
1247 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_2 0x0348 | 1234 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_2 0x0348 |
1248 | #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO1000 0x034C | 1235 | #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO1000 0x034C |
1249 | #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1100 0x034E | 1236 | #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1100 0x034E |
1250 | #define PCI_DEVICE_ID_NVIDIA_NVENET_14 0x0372 | ||
1251 | #define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373 | 1237 | #define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373 |
1252 | #define PCI_DEVICE_ID_NVIDIA_NVENET_16 0x03E5 | ||
1253 | #define PCI_DEVICE_ID_NVIDIA_NVENET_17 0x03E6 | ||
1254 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA 0x03E7 | 1238 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA 0x03E7 |
1255 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SMBUS 0x03EB | 1239 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SMBUS 0x03EB |
1256 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE 0x03EC | 1240 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE 0x03EC |
1257 | #define PCI_DEVICE_ID_NVIDIA_NVENET_18 0x03EE | ||
1258 | #define PCI_DEVICE_ID_NVIDIA_NVENET_19 0x03EF | ||
1259 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2 0x03F6 | 1241 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2 0x03F6 |
1260 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3 0x03F7 | 1242 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3 0x03F7 |
1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_SMBUS 0x0446 | 1243 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_SMBUS 0x0446 |
1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE 0x0448 | 1244 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE 0x0448 |
1263 | #define PCI_DEVICE_ID_NVIDIA_NVENET_20 0x0450 | ||
1264 | #define PCI_DEVICE_ID_NVIDIA_NVENET_21 0x0451 | ||
1265 | #define PCI_DEVICE_ID_NVIDIA_NVENET_22 0x0452 | ||
1266 | #define PCI_DEVICE_ID_NVIDIA_NVENET_23 0x0453 | ||
1267 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_SMBUS 0x0542 | 1245 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_SMBUS 0x0542 |
1268 | #define PCI_DEVICE_ID_NVIDIA_NVENET_24 0x054C | ||
1269 | #define PCI_DEVICE_ID_NVIDIA_NVENET_25 0x054D | ||
1270 | #define PCI_DEVICE_ID_NVIDIA_NVENET_26 0x054E | ||
1271 | #define PCI_DEVICE_ID_NVIDIA_NVENET_27 0x054F | ||
1272 | #define PCI_DEVICE_ID_NVIDIA_NVENET_28 0x07DC | ||
1273 | #define PCI_DEVICE_ID_NVIDIA_NVENET_29 0x07DD | ||
1274 | #define PCI_DEVICE_ID_NVIDIA_NVENET_30 0x07DE | ||
1275 | #define PCI_DEVICE_ID_NVIDIA_NVENET_31 0x07DF | ||
1276 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE 0x0560 | 1246 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE 0x0560 |
1277 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE 0x056C | 1247 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE 0x056C |
1278 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x0752 | 1248 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x0752 |
1279 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 | 1249 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 |
1280 | #define PCI_DEVICE_ID_NVIDIA_NVENET_32 0x0760 | ||
1281 | #define PCI_DEVICE_ID_NVIDIA_NVENET_33 0x0761 | ||
1282 | #define PCI_DEVICE_ID_NVIDIA_NVENET_34 0x0762 | ||
1283 | #define PCI_DEVICE_ID_NVIDIA_NVENET_35 0x0763 | ||
1284 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 | 1250 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 |
1285 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 | 1251 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 |
1286 | #define PCI_DEVICE_ID_NVIDIA_NVENET_36 0x0AB0 | ||
1287 | #define PCI_DEVICE_ID_NVIDIA_NVENET_37 0x0AB1 | ||
1288 | #define PCI_DEVICE_ID_NVIDIA_NVENET_38 0x0AB2 | ||
1289 | #define PCI_DEVICE_ID_NVIDIA_NVENET_39 0x0AB3 | ||
1290 | 1252 | ||
1291 | #define PCI_VENDOR_ID_IMS 0x10e0 | 1253 | #define PCI_VENDOR_ID_IMS 0x10e0 |
1292 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 | 1254 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 |
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h index de18ef227e00..16e39c7a67fc 100644 --- a/include/linux/rfkill.h +++ b/include/linux/rfkill.h | |||
@@ -4,6 +4,7 @@ | |||
4 | /* | 4 | /* |
5 | * Copyright (C) 2006 - 2007 Ivo van Doorn | 5 | * Copyright (C) 2006 - 2007 Ivo van Doorn |
6 | * Copyright (C) 2007 Dmitry Torokhov | 6 | * Copyright (C) 2007 Dmitry Torokhov |
7 | * Copyright 2009 Johannes Berg <johannes@sipsolutions.net> | ||
7 | * | 8 | * |
8 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by | 10 | * it under the terms of the GNU General Public License as published by |
@@ -22,117 +23,331 @@ | |||
22 | */ | 23 | */ |
23 | 24 | ||
24 | #include <linux/types.h> | 25 | #include <linux/types.h> |
25 | #include <linux/kernel.h> | 26 | |
26 | #include <linux/list.h> | 27 | /* define userspace visible states */ |
27 | #include <linux/mutex.h> | 28 | #define RFKILL_STATE_SOFT_BLOCKED 0 |
28 | #include <linux/device.h> | 29 | #define RFKILL_STATE_UNBLOCKED 1 |
29 | #include <linux/leds.h> | 30 | #define RFKILL_STATE_HARD_BLOCKED 2 |
30 | 31 | ||
31 | /** | 32 | /** |
32 | * enum rfkill_type - type of rfkill switch. | 33 | * enum rfkill_type - type of rfkill switch. |
33 | * RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device. | 34 | * |
34 | * RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device. | 35 | * @RFKILL_TYPE_ALL: toggles all switches (userspace only) |
35 | * RFKILL_TYPE_UWB: switch is on a ultra wideband device. | 36 | * @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device. |
36 | * RFKILL_TYPE_WIMAX: switch is on a WiMAX device. | 37 | * @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device. |
37 | * RFKILL_TYPE_WWAN: switch is on a wireless WAN device. | 38 | * @RFKILL_TYPE_UWB: switch is on a ultra wideband device. |
39 | * @RFKILL_TYPE_WIMAX: switch is on a WiMAX device. | ||
40 | * @RFKILL_TYPE_WWAN: switch is on a wireless WAN device. | ||
41 | * @NUM_RFKILL_TYPES: number of defined rfkill types | ||
38 | */ | 42 | */ |
39 | enum rfkill_type { | 43 | enum rfkill_type { |
40 | RFKILL_TYPE_WLAN , | 44 | RFKILL_TYPE_ALL = 0, |
45 | RFKILL_TYPE_WLAN, | ||
41 | RFKILL_TYPE_BLUETOOTH, | 46 | RFKILL_TYPE_BLUETOOTH, |
42 | RFKILL_TYPE_UWB, | 47 | RFKILL_TYPE_UWB, |
43 | RFKILL_TYPE_WIMAX, | 48 | RFKILL_TYPE_WIMAX, |
44 | RFKILL_TYPE_WWAN, | 49 | RFKILL_TYPE_WWAN, |
45 | RFKILL_TYPE_MAX, | 50 | NUM_RFKILL_TYPES, |
46 | }; | 51 | }; |
47 | 52 | ||
48 | enum rfkill_state { | 53 | /** |
49 | RFKILL_STATE_SOFT_BLOCKED = 0, /* Radio output blocked */ | 54 | * enum rfkill_operation - operation types |
50 | RFKILL_STATE_UNBLOCKED = 1, /* Radio output allowed */ | 55 | * @RFKILL_OP_ADD: a device was added |
51 | RFKILL_STATE_HARD_BLOCKED = 2, /* Output blocked, non-overrideable */ | 56 | * @RFKILL_OP_DEL: a device was removed |
52 | RFKILL_STATE_MAX, /* marker for last valid state */ | 57 | * @RFKILL_OP_CHANGE: a device's state changed -- userspace changes one device |
58 | * @RFKILL_OP_CHANGE_ALL: userspace changes all devices (of a type, or all) | ||
59 | */ | ||
60 | enum rfkill_operation { | ||
61 | RFKILL_OP_ADD = 0, | ||
62 | RFKILL_OP_DEL, | ||
63 | RFKILL_OP_CHANGE, | ||
64 | RFKILL_OP_CHANGE_ALL, | ||
53 | }; | 65 | }; |
54 | 66 | ||
55 | /** | 67 | /** |
56 | * struct rfkill - rfkill control structure. | 68 | * struct rfkill_event - events for userspace on /dev/rfkill |
57 | * @name: Name of the switch. | 69 | * @idx: index of dev rfkill |
58 | * @type: Radio type which the button controls, the value stored | 70 | * @type: type of the rfkill struct |
59 | * here should be a value from enum rfkill_type. | 71 | * @op: operation code |
60 | * @state: State of the switch, "UNBLOCKED" means radio can operate. | 72 | * @hard: hard state (0/1) |
61 | * @mutex: Guards switch state transitions. It serializes callbacks | 73 | * @soft: soft state (0/1) |
62 | * and also protects the state. | 74 | * |
63 | * @data: Pointer to the RF button drivers private data which will be | 75 | * Structure used for userspace communication on /dev/rfkill, |
64 | * passed along when toggling radio state. | 76 | * used for events from the kernel and control to the kernel. |
65 | * @toggle_radio(): Mandatory handler to control state of the radio. | 77 | */ |
66 | * only RFKILL_STATE_SOFT_BLOCKED and RFKILL_STATE_UNBLOCKED are | 78 | struct rfkill_event { |
67 | * valid parameters. | 79 | __u32 idx; |
68 | * @get_state(): handler to read current radio state from hardware, | 80 | __u8 type; |
69 | * may be called from atomic context, should return 0 on success. | 81 | __u8 op; |
70 | * Either this handler OR judicious use of rfkill_force_state() is | 82 | __u8 soft, hard; |
71 | * MANDATORY for any driver capable of RFKILL_STATE_HARD_BLOCKED. | 83 | } __packed; |
72 | * @led_trigger: A LED trigger for this button's LED. | ||
73 | * @dev: Device structure integrating the switch into device tree. | ||
74 | * @node: Used to place switch into list of all switches known to the | ||
75 | * the system. | ||
76 | * | ||
77 | * This structure represents a RF switch located on a network device. | ||
78 | */ | ||
79 | struct rfkill { | ||
80 | const char *name; | ||
81 | enum rfkill_type type; | ||
82 | |||
83 | /* the mutex serializes callbacks and also protects | ||
84 | * the state */ | ||
85 | struct mutex mutex; | ||
86 | enum rfkill_state state; | ||
87 | void *data; | ||
88 | int (*toggle_radio)(void *data, enum rfkill_state state); | ||
89 | int (*get_state)(void *data, enum rfkill_state *state); | ||
90 | 84 | ||
91 | #ifdef CONFIG_RFKILL_LEDS | 85 | /* ioctl for turning off rfkill-input (if present) */ |
92 | struct led_trigger led_trigger; | 86 | #define RFKILL_IOC_MAGIC 'R' |
93 | #endif | 87 | #define RFKILL_IOC_NOINPUT 1 |
88 | #define RFKILL_IOCTL_NOINPUT _IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT) | ||
89 | |||
90 | /* and that's all userspace gets */ | ||
91 | #ifdef __KERNEL__ | ||
92 | /* don't allow anyone to use these in the kernel */ | ||
93 | enum rfkill_user_states { | ||
94 | RFKILL_USER_STATE_SOFT_BLOCKED = RFKILL_STATE_SOFT_BLOCKED, | ||
95 | RFKILL_USER_STATE_UNBLOCKED = RFKILL_STATE_UNBLOCKED, | ||
96 | RFKILL_USER_STATE_HARD_BLOCKED = RFKILL_STATE_HARD_BLOCKED, | ||
97 | }; | ||
98 | #undef RFKILL_STATE_SOFT_BLOCKED | ||
99 | #undef RFKILL_STATE_UNBLOCKED | ||
100 | #undef RFKILL_STATE_HARD_BLOCKED | ||
101 | |||
102 | #include <linux/types.h> | ||
103 | #include <linux/kernel.h> | ||
104 | #include <linux/list.h> | ||
105 | #include <linux/mutex.h> | ||
106 | #include <linux/device.h> | ||
107 | #include <linux/leds.h> | ||
108 | #include <linux/err.h> | ||
109 | |||
110 | /* this is opaque */ | ||
111 | struct rfkill; | ||
94 | 112 | ||
95 | struct device dev; | 113 | /** |
96 | struct list_head node; | 114 | * struct rfkill_ops - rfkill driver methods |
97 | enum rfkill_state state_for_resume; | 115 | * |
116 | * @poll: poll the rfkill block state(s) -- only assign this method | ||
117 | * when you need polling. When called, simply call one of the | ||
118 | * rfkill_set{,_hw,_sw}_state family of functions. If the hw | ||
119 | * is getting unblocked you need to take into account the return | ||
120 | * value of those functions to make sure the software block is | ||
121 | * properly used. | ||
122 | * @query: query the rfkill block state(s) and call exactly one of the | ||
123 | * rfkill_set{,_hw,_sw}_state family of functions. Assign this | ||
124 | * method if input events can cause hardware state changes to make | ||
125 | * the rfkill core query your driver before setting a requested | ||
126 | * block. | ||
127 | * @set_block: turn the transmitter on (blocked == false) or off | ||
128 | * (blocked == true) -- ignore and return 0 when hard blocked. | ||
129 | * This callback must be assigned. | ||
130 | */ | ||
131 | struct rfkill_ops { | ||
132 | void (*poll)(struct rfkill *rfkill, void *data); | ||
133 | void (*query)(struct rfkill *rfkill, void *data); | ||
134 | int (*set_block)(void *data, bool blocked); | ||
98 | }; | 135 | }; |
99 | #define to_rfkill(d) container_of(d, struct rfkill, dev) | ||
100 | 136 | ||
101 | struct rfkill * __must_check rfkill_allocate(struct device *parent, | 137 | #if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE) |
102 | enum rfkill_type type); | 138 | /** |
103 | void rfkill_free(struct rfkill *rfkill); | 139 | * rfkill_alloc - allocate rfkill structure |
140 | * @name: name of the struct -- the string is not copied internally | ||
141 | * @parent: device that has rf switch on it | ||
142 | * @type: type of the switch (RFKILL_TYPE_*) | ||
143 | * @ops: rfkill methods | ||
144 | * @ops_data: data passed to each method | ||
145 | * | ||
146 | * This function should be called by the transmitter driver to allocate an | ||
147 | * rfkill structure. Returns %NULL on failure. | ||
148 | */ | ||
149 | struct rfkill * __must_check rfkill_alloc(const char *name, | ||
150 | struct device *parent, | ||
151 | const enum rfkill_type type, | ||
152 | const struct rfkill_ops *ops, | ||
153 | void *ops_data); | ||
154 | |||
155 | /** | ||
156 | * rfkill_register - Register a rfkill structure. | ||
157 | * @rfkill: rfkill structure to be registered | ||
158 | * | ||
159 | * This function should be called by the transmitter driver to register | ||
160 | * the rfkill structure. Before calling this function the driver needs | ||
161 | * to be ready to service method calls from rfkill. | ||
162 | * | ||
163 | * If the software blocked state is not set before registration, | ||
164 | * set_block will be called to initialize it to a default value. | ||
165 | * | ||
166 | * If the hardware blocked state is not set before registration, | ||
167 | * it is assumed to be unblocked. | ||
168 | */ | ||
104 | int __must_check rfkill_register(struct rfkill *rfkill); | 169 | int __must_check rfkill_register(struct rfkill *rfkill); |
170 | |||
171 | /** | ||
172 | * rfkill_pause_polling(struct rfkill *rfkill) | ||
173 | * | ||
174 | * Pause polling -- say transmitter is off for other reasons. | ||
175 | * NOTE: not necessary for suspend/resume -- in that case the | ||
176 | * core stops polling anyway | ||
177 | */ | ||
178 | void rfkill_pause_polling(struct rfkill *rfkill); | ||
179 | |||
180 | /** | ||
181 | * rfkill_resume_polling(struct rfkill *rfkill) | ||
182 | * | ||
183 | * Pause polling -- say transmitter is off for other reasons. | ||
184 | * NOTE: not necessary for suspend/resume -- in that case the | ||
185 | * core stops polling anyway | ||
186 | */ | ||
187 | void rfkill_resume_polling(struct rfkill *rfkill); | ||
188 | |||
189 | |||
190 | /** | ||
191 | * rfkill_unregister - Unregister a rfkill structure. | ||
192 | * @rfkill: rfkill structure to be unregistered | ||
193 | * | ||
194 | * This function should be called by the network driver during device | ||
195 | * teardown to destroy rfkill structure. Until it returns, the driver | ||
196 | * needs to be able to service method calls. | ||
197 | */ | ||
105 | void rfkill_unregister(struct rfkill *rfkill); | 198 | void rfkill_unregister(struct rfkill *rfkill); |
106 | 199 | ||
107 | int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state); | 200 | /** |
108 | int rfkill_set_default(enum rfkill_type type, enum rfkill_state state); | 201 | * rfkill_destroy - free rfkill structure |
202 | * @rfkill: rfkill structure to be destroyed | ||
203 | * | ||
204 | * Destroys the rfkill structure. | ||
205 | */ | ||
206 | void rfkill_destroy(struct rfkill *rfkill); | ||
207 | |||
208 | /** | ||
209 | * rfkill_set_hw_state - Set the internal rfkill hardware block state | ||
210 | * @rfkill: pointer to the rfkill class to modify. | ||
211 | * @state: the current hardware block state to set | ||
212 | * | ||
213 | * rfkill drivers that get events when the hard-blocked state changes | ||
214 | * use this function to notify the rfkill core (and through that also | ||
215 | * userspace) of the current state. They should also use this after | ||
216 | * resume if the state could have changed. | ||
217 | * | ||
218 | * You need not (but may) call this function if poll_state is assigned. | ||
219 | * | ||
220 | * This function can be called in any context, even from within rfkill | ||
221 | * callbacks. | ||
222 | * | ||
223 | * The function returns the combined block state (true if transmitter | ||
224 | * should be blocked) so that drivers need not keep track of the soft | ||
225 | * block state -- which they might not be able to. | ||
226 | */ | ||
227 | bool __must_check rfkill_set_hw_state(struct rfkill *rfkill, bool blocked); | ||
228 | |||
229 | /** | ||
230 | * rfkill_set_sw_state - Set the internal rfkill software block state | ||
231 | * @rfkill: pointer to the rfkill class to modify. | ||
232 | * @state: the current software block state to set | ||
233 | * | ||
234 | * rfkill drivers that get events when the soft-blocked state changes | ||
235 | * (yes, some platforms directly act on input but allow changing again) | ||
236 | * use this function to notify the rfkill core (and through that also | ||
237 | * userspace) of the current state. It is not necessary to notify on | ||
238 | * resume; since hibernation can always change the soft-blocked state, | ||
239 | * the rfkill core will unconditionally restore the previous state. | ||
240 | * | ||
241 | * This function can be called in any context, even from within rfkill | ||
242 | * callbacks. | ||
243 | * | ||
244 | * The function returns the combined block state (true if transmitter | ||
245 | * should be blocked). | ||
246 | */ | ||
247 | bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked); | ||
248 | |||
249 | /** | ||
250 | * rfkill_set_states - Set the internal rfkill block states | ||
251 | * @rfkill: pointer to the rfkill class to modify. | ||
252 | * @sw: the current software block state to set | ||
253 | * @hw: the current hardware block state to set | ||
254 | * | ||
255 | * This function can be called in any context, even from within rfkill | ||
256 | * callbacks. | ||
257 | */ | ||
258 | void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw); | ||
109 | 259 | ||
110 | /** | 260 | /** |
111 | * rfkill_state_complement - return complementar state | 261 | * rfkill_blocked - query rfkill block |
112 | * @state: state to return the complement of | ||
113 | * | 262 | * |
114 | * Returns RFKILL_STATE_SOFT_BLOCKED if @state is RFKILL_STATE_UNBLOCKED, | 263 | * @rfkill: rfkill struct to query |
115 | * returns RFKILL_STATE_UNBLOCKED otherwise. | ||
116 | */ | 264 | */ |
117 | static inline enum rfkill_state rfkill_state_complement(enum rfkill_state state) | 265 | bool rfkill_blocked(struct rfkill *rfkill); |
266 | #else /* !RFKILL */ | ||
267 | static inline struct rfkill * __must_check | ||
268 | rfkill_alloc(const char *name, | ||
269 | struct device *parent, | ||
270 | const enum rfkill_type type, | ||
271 | const struct rfkill_ops *ops, | ||
272 | void *ops_data) | ||
273 | { | ||
274 | return ERR_PTR(-ENODEV); | ||
275 | } | ||
276 | |||
277 | static inline int __must_check rfkill_register(struct rfkill *rfkill) | ||
278 | { | ||
279 | if (rfkill == ERR_PTR(-ENODEV)) | ||
280 | return 0; | ||
281 | return -EINVAL; | ||
282 | } | ||
283 | |||
284 | static inline void rfkill_pause_polling(struct rfkill *rfkill) | ||
285 | { | ||
286 | } | ||
287 | |||
288 | static inline void rfkill_resume_polling(struct rfkill *rfkill) | ||
289 | { | ||
290 | } | ||
291 | |||
292 | static inline void rfkill_unregister(struct rfkill *rfkill) | ||
293 | { | ||
294 | } | ||
295 | |||
296 | static inline void rfkill_destroy(struct rfkill *rfkill) | ||
118 | { | 297 | { |
119 | return (state == RFKILL_STATE_UNBLOCKED) ? | ||
120 | RFKILL_STATE_SOFT_BLOCKED : RFKILL_STATE_UNBLOCKED; | ||
121 | } | 298 | } |
122 | 299 | ||
300 | static inline bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked) | ||
301 | { | ||
302 | return blocked; | ||
303 | } | ||
304 | |||
305 | static inline bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked) | ||
306 | { | ||
307 | return blocked; | ||
308 | } | ||
309 | |||
310 | static inline void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw) | ||
311 | { | ||
312 | } | ||
313 | |||
314 | static inline bool rfkill_blocked(struct rfkill *rfkill) | ||
315 | { | ||
316 | return false; | ||
317 | } | ||
318 | #endif /* RFKILL || RFKILL_MODULE */ | ||
319 | |||
320 | |||
321 | #ifdef CONFIG_RFKILL_LEDS | ||
123 | /** | 322 | /** |
124 | * rfkill_get_led_name - Get the LED trigger name for the button's LED. | 323 | * rfkill_get_led_trigger_name - Get the LED trigger name for the button's LED. |
125 | * This function might return a NULL pointer if registering of the | 324 | * This function might return a NULL pointer if registering of the |
126 | * LED trigger failed. | 325 | * LED trigger failed. Use this as "default_trigger" for the LED. |
127 | * Use this as "default_trigger" for the LED. | ||
128 | */ | 326 | */ |
129 | static inline char *rfkill_get_led_name(struct rfkill *rfkill) | 327 | const char *rfkill_get_led_trigger_name(struct rfkill *rfkill); |
130 | { | 328 | |
131 | #ifdef CONFIG_RFKILL_LEDS | 329 | /** |
132 | return (char *)(rfkill->led_trigger.name); | 330 | * rfkill_set_led_trigger_name -- set the LED trigger name |
331 | * @rfkill: rfkill struct | ||
332 | * @name: LED trigger name | ||
333 | * | ||
334 | * This function sets the LED trigger name of the radio LED | ||
335 | * trigger that rfkill creates. It is optional, but if called | ||
336 | * must be called before rfkill_register() to be effective. | ||
337 | */ | ||
338 | void rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name); | ||
133 | #else | 339 | #else |
340 | static inline const char *rfkill_get_led_trigger_name(struct rfkill *rfkill) | ||
341 | { | ||
134 | return NULL; | 342 | return NULL; |
135 | #endif | ||
136 | } | 343 | } |
137 | 344 | ||
345 | static inline void | ||
346 | rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name) | ||
347 | { | ||
348 | } | ||
349 | #endif | ||
350 | |||
351 | #endif /* __KERNEL__ */ | ||
352 | |||
138 | #endif /* RFKILL_H */ | 353 | #endif /* RFKILL_H */ |
diff --git a/include/linux/sctp.h b/include/linux/sctp.h index c2731bfe04d8..b464b9d3d242 100644 --- a/include/linux/sctp.h +++ b/include/linux/sctp.h | |||
@@ -487,17 +487,17 @@ typedef enum { | |||
487 | * | 487 | * |
488 | * Value Cause Code | 488 | * Value Cause Code |
489 | * --------- ---------------- | 489 | * --------- ---------------- |
490 | * 0x0100 Request to Delete Last Remaining IP Address. | 490 | * 0x00A0 Request to Delete Last Remaining IP Address. |
491 | * 0x0101 Operation Refused Due to Resource Shortage. | 491 | * 0x00A1 Operation Refused Due to Resource Shortage. |
492 | * 0x0102 Request to Delete Source IP Address. | 492 | * 0x00A2 Request to Delete Source IP Address. |
493 | * 0x0103 Association Aborted due to illegal ASCONF-ACK | 493 | * 0x00A3 Association Aborted due to illegal ASCONF-ACK |
494 | * 0x0104 Request refused - no authorization. | 494 | * 0x00A4 Request refused - no authorization. |
495 | */ | 495 | */ |
496 | SCTP_ERROR_DEL_LAST_IP = cpu_to_be16(0x0100), | 496 | SCTP_ERROR_DEL_LAST_IP = cpu_to_be16(0x00A0), |
497 | SCTP_ERROR_RSRC_LOW = cpu_to_be16(0x0101), | 497 | SCTP_ERROR_RSRC_LOW = cpu_to_be16(0x00A1), |
498 | SCTP_ERROR_DEL_SRC_IP = cpu_to_be16(0x0102), | 498 | SCTP_ERROR_DEL_SRC_IP = cpu_to_be16(0x00A2), |
499 | SCTP_ERROR_ASCONF_ACK = cpu_to_be16(0x0103), | 499 | SCTP_ERROR_ASCONF_ACK = cpu_to_be16(0x00A3), |
500 | SCTP_ERROR_REQ_REFUSED = cpu_to_be16(0x0104), | 500 | SCTP_ERROR_REQ_REFUSED = cpu_to_be16(0x00A4), |
501 | 501 | ||
502 | /* AUTH Section 4. New Error Cause | 502 | /* AUTH Section 4. New Error Cause |
503 | * | 503 | * |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index aff494ba6a31..fa51293f2708 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -189,19 +189,19 @@ struct skb_shared_info { | |||
189 | atomic_t dataref; | 189 | atomic_t dataref; |
190 | unsigned short nr_frags; | 190 | unsigned short nr_frags; |
191 | unsigned short gso_size; | 191 | unsigned short gso_size; |
192 | #ifdef CONFIG_HAS_DMA | ||
193 | dma_addr_t dma_head; | ||
194 | #endif | ||
192 | /* Warning: this field is not always filled in (UFO)! */ | 195 | /* Warning: this field is not always filled in (UFO)! */ |
193 | unsigned short gso_segs; | 196 | unsigned short gso_segs; |
194 | unsigned short gso_type; | 197 | unsigned short gso_type; |
195 | __be32 ip6_frag_id; | 198 | __be32 ip6_frag_id; |
196 | union skb_shared_tx tx_flags; | 199 | union skb_shared_tx tx_flags; |
197 | #ifdef CONFIG_HAS_DMA | ||
198 | unsigned int num_dma_maps; | ||
199 | #endif | ||
200 | struct sk_buff *frag_list; | 200 | struct sk_buff *frag_list; |
201 | struct skb_shared_hwtstamps hwtstamps; | 201 | struct skb_shared_hwtstamps hwtstamps; |
202 | skb_frag_t frags[MAX_SKB_FRAGS]; | 202 | skb_frag_t frags[MAX_SKB_FRAGS]; |
203 | #ifdef CONFIG_HAS_DMA | 203 | #ifdef CONFIG_HAS_DMA |
204 | dma_addr_t dma_maps[MAX_SKB_FRAGS + 1]; | 204 | dma_addr_t dma_maps[MAX_SKB_FRAGS]; |
205 | #endif | 205 | #endif |
206 | /* Intermediate layers must ensure that destructor_arg | 206 | /* Intermediate layers must ensure that destructor_arg |
207 | * remains valid until skb destructor */ | 207 | * remains valid until skb destructor */ |
@@ -304,9 +304,6 @@ typedef unsigned char *sk_buff_data_t; | |||
304 | * @tc_verd: traffic control verdict | 304 | * @tc_verd: traffic control verdict |
305 | * @ndisc_nodetype: router type (from link layer) | 305 | * @ndisc_nodetype: router type (from link layer) |
306 | * @do_not_encrypt: set to prevent encryption of this frame | 306 | * @do_not_encrypt: set to prevent encryption of this frame |
307 | * @requeue: set to indicate that the wireless core should attempt | ||
308 | * a software retry on this frame if we failed to | ||
309 | * receive an ACK for it | ||
310 | * @dma_cookie: a cookie to one of several possible DMA operations | 307 | * @dma_cookie: a cookie to one of several possible DMA operations |
311 | * done by skb DMA functions | 308 | * done by skb DMA functions |
312 | * @secmark: security marking | 309 | * @secmark: security marking |
@@ -322,10 +319,7 @@ struct sk_buff { | |||
322 | ktime_t tstamp; | 319 | ktime_t tstamp; |
323 | struct net_device *dev; | 320 | struct net_device *dev; |
324 | 321 | ||
325 | union { | 322 | unsigned long _skb_dst; |
326 | struct dst_entry *dst; | ||
327 | struct rtable *rtable; | ||
328 | }; | ||
329 | #ifdef CONFIG_XFRM | 323 | #ifdef CONFIG_XFRM |
330 | struct sec_path *sp; | 324 | struct sec_path *sp; |
331 | #endif | 325 | #endif |
@@ -383,7 +377,6 @@ struct sk_buff { | |||
383 | #endif | 377 | #endif |
384 | #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) | 378 | #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) |
385 | __u8 do_not_encrypt:1; | 379 | __u8 do_not_encrypt:1; |
386 | __u8 requeue:1; | ||
387 | #endif | 380 | #endif |
388 | /* 0/13/14 bit hole */ | 381 | /* 0/13/14 bit hole */ |
389 | 382 | ||
@@ -426,6 +419,21 @@ extern void skb_dma_unmap(struct device *dev, struct sk_buff *skb, | |||
426 | enum dma_data_direction dir); | 419 | enum dma_data_direction dir); |
427 | #endif | 420 | #endif |
428 | 421 | ||
422 | static inline struct dst_entry *skb_dst(const struct sk_buff *skb) | ||
423 | { | ||
424 | return (struct dst_entry *)skb->_skb_dst; | ||
425 | } | ||
426 | |||
427 | static inline void skb_dst_set(struct sk_buff *skb, struct dst_entry *dst) | ||
428 | { | ||
429 | skb->_skb_dst = (unsigned long)dst; | ||
430 | } | ||
431 | |||
432 | static inline struct rtable *skb_rtable(const struct sk_buff *skb) | ||
433 | { | ||
434 | return (struct rtable *)skb_dst(skb); | ||
435 | } | ||
436 | |||
429 | extern void kfree_skb(struct sk_buff *skb); | 437 | extern void kfree_skb(struct sk_buff *skb); |
430 | extern void consume_skb(struct sk_buff *skb); | 438 | extern void consume_skb(struct sk_buff *skb); |
431 | extern void __kfree_skb(struct sk_buff *skb); | 439 | extern void __kfree_skb(struct sk_buff *skb); |
@@ -1065,7 +1073,7 @@ extern void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, | |||
1065 | int off, int size); | 1073 | int off, int size); |
1066 | 1074 | ||
1067 | #define SKB_PAGE_ASSERT(skb) BUG_ON(skb_shinfo(skb)->nr_frags) | 1075 | #define SKB_PAGE_ASSERT(skb) BUG_ON(skb_shinfo(skb)->nr_frags) |
1068 | #define SKB_FRAG_ASSERT(skb) BUG_ON(skb_shinfo(skb)->frag_list) | 1076 | #define SKB_FRAG_ASSERT(skb) BUG_ON(skb_has_frags(skb)) |
1069 | #define SKB_LINEAR_ASSERT(skb) BUG_ON(skb_is_nonlinear(skb)) | 1077 | #define SKB_LINEAR_ASSERT(skb) BUG_ON(skb_is_nonlinear(skb)) |
1070 | 1078 | ||
1071 | #ifdef NET_SKBUFF_DATA_USES_OFFSET | 1079 | #ifdef NET_SKBUFF_DATA_USES_OFFSET |
@@ -1704,6 +1712,25 @@ static inline int pskb_trim_rcsum(struct sk_buff *skb, unsigned int len) | |||
1704 | skb = skb->prev) | 1712 | skb = skb->prev) |
1705 | 1713 | ||
1706 | 1714 | ||
1715 | static inline bool skb_has_frags(const struct sk_buff *skb) | ||
1716 | { | ||
1717 | return skb_shinfo(skb)->frag_list != NULL; | ||
1718 | } | ||
1719 | |||
1720 | static inline void skb_frag_list_init(struct sk_buff *skb) | ||
1721 | { | ||
1722 | skb_shinfo(skb)->frag_list = NULL; | ||
1723 | } | ||
1724 | |||
1725 | static inline void skb_frag_add_head(struct sk_buff *skb, struct sk_buff *frag) | ||
1726 | { | ||
1727 | frag->next = skb_shinfo(skb)->frag_list; | ||
1728 | skb_shinfo(skb)->frag_list = frag; | ||
1729 | } | ||
1730 | |||
1731 | #define skb_walk_frags(skb, iter) \ | ||
1732 | for (iter = skb_shinfo(skb)->frag_list; iter; iter = iter->next) | ||
1733 | |||
1707 | extern struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned flags, | 1734 | extern struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned flags, |
1708 | int *peeked, int *err); | 1735 | int *peeked, int *err); |
1709 | extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, | 1736 | extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, |
diff --git a/include/linux/socket.h b/include/linux/socket.h index d2310cb45d2f..3b461dffe244 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h | |||
@@ -194,7 +194,8 @@ struct ucred { | |||
194 | #define AF_RXRPC 33 /* RxRPC sockets */ | 194 | #define AF_RXRPC 33 /* RxRPC sockets */ |
195 | #define AF_ISDN 34 /* mISDN sockets */ | 195 | #define AF_ISDN 34 /* mISDN sockets */ |
196 | #define AF_PHONET 35 /* Phonet sockets */ | 196 | #define AF_PHONET 35 /* Phonet sockets */ |
197 | #define AF_MAX 36 /* For now.. */ | 197 | #define AF_IEEE802154 36 /* IEEE802154 sockets */ |
198 | #define AF_MAX 37 /* For now.. */ | ||
198 | 199 | ||
199 | /* Protocol families, same as address families. */ | 200 | /* Protocol families, same as address families. */ |
200 | #define PF_UNSPEC AF_UNSPEC | 201 | #define PF_UNSPEC AF_UNSPEC |
@@ -233,6 +234,7 @@ struct ucred { | |||
233 | #define PF_RXRPC AF_RXRPC | 234 | #define PF_RXRPC AF_RXRPC |
234 | #define PF_ISDN AF_ISDN | 235 | #define PF_ISDN AF_ISDN |
235 | #define PF_PHONET AF_PHONET | 236 | #define PF_PHONET AF_PHONET |
237 | #define PF_IEEE802154 AF_IEEE802154 | ||
236 | #define PF_MAX AF_MAX | 238 | #define PF_MAX AF_MAX |
237 | 239 | ||
238 | /* Maximum queue length specifiable by listen. */ | 240 | /* Maximum queue length specifiable by listen. */ |
diff --git a/include/linux/spi/libertas_spi.h b/include/linux/spi/libertas_spi.h index 79506f5f9e67..1b5d5384fcd3 100644 --- a/include/linux/spi/libertas_spi.h +++ b/include/linux/spi/libertas_spi.h | |||
@@ -22,9 +22,6 @@ struct libertas_spi_platform_data { | |||
22 | * speed, you may want to use 0 here. */ | 22 | * speed, you may want to use 0 here. */ |
23 | u16 use_dummy_writes; | 23 | u16 use_dummy_writes; |
24 | 24 | ||
25 | /* GPIO number to use as chip select */ | ||
26 | u16 gpio_cs; | ||
27 | |||
28 | /* Board specific setup/teardown */ | 25 | /* Board specific setup/teardown */ |
29 | int (*setup)(struct spi_device *spi); | 26 | int (*setup)(struct spi_device *spi); |
30 | int (*teardown)(struct spi_device *spi); | 27 | int (*teardown)(struct spi_device *spi); |
diff --git a/include/linux/wimax.h b/include/linux/wimax.h index c89de7f4e5b9..4fdcc5635518 100644 --- a/include/linux/wimax.h +++ b/include/linux/wimax.h | |||
@@ -59,7 +59,7 @@ enum { | |||
59 | * M - Major: change if removing or modifying an existing call. | 59 | * M - Major: change if removing or modifying an existing call. |
60 | * m - minor: change when adding a new call | 60 | * m - minor: change when adding a new call |
61 | */ | 61 | */ |
62 | WIMAX_GNL_VERSION = 00, | 62 | WIMAX_GNL_VERSION = 01, |
63 | /* Generic NetLink attributes */ | 63 | /* Generic NetLink attributes */ |
64 | WIMAX_GNL_ATTR_INVALID = 0x00, | 64 | WIMAX_GNL_ATTR_INVALID = 0x00, |
65 | WIMAX_GNL_ATTR_MAX = 10, | 65 | WIMAX_GNL_ATTR_MAX = 10, |
@@ -78,6 +78,7 @@ enum { | |||
78 | WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */ | 78 | WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */ |
79 | WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */ | 79 | WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */ |
80 | WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */ | 80 | WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */ |
81 | WIMAX_GNL_OP_STATE_GET, /* Request for current state */ | ||
81 | }; | 82 | }; |
82 | 83 | ||
83 | 84 | ||
@@ -113,6 +114,10 @@ enum { | |||
113 | WIMAX_GNL_RESET_IFIDX = 1, | 114 | WIMAX_GNL_RESET_IFIDX = 1, |
114 | }; | 115 | }; |
115 | 116 | ||
117 | /* Atributes for wimax_state_get() */ | ||
118 | enum { | ||
119 | WIMAX_GNL_STGET_IFIDX = 1, | ||
120 | }; | ||
116 | 121 | ||
117 | /* | 122 | /* |
118 | * Attributes for the Report State Change | 123 | * Attributes for the Report State Change |