diff options
author | Arnd Bergmann <arnd@arndb.de> | 2014-04-24 17:46:58 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2014-04-24 17:46:58 -0400 |
commit | 1fc52762e33cc905331681364d79424d921f60f2 (patch) | |
tree | d7347407cbbdb7a0565e3b4d09aaf40f0705491a /include | |
parent | 9ef1af9ea28c23d0eaed97f7f5142788b6cf570a (diff) | |
parent | cf2e0a73ca9ad376825c013ebaa145608abc27d7 (diff) |
Merge tag 'vexpress/fixes-for-3.15' of git://git.linaro.org/people/pawel.moll/linux into fixes
ARM Versatile Express fixes for 3.15
This series contains straight-forward fixes for different
Versatile Express infrastructure drivers:
- NULL pointer dereference on the error path in the clk driver
- out of boundary array access in the dcscb driver
- broken restart/power off implementation
- mis-interpreted voltage unit in the spc driver
* tag 'vexpress/fixes-for-3.15' of git://git.linaro.org/people/pawel.moll/linux:
ARM: vexpress/TC2: Convert OPP voltage to uV before storing
power/reset: vexpress: Fix restart/power off operation
arm/mach-vexpress: array accessed out of bounds
clk: vexpress: NULL dereference on error path
Includes an update to 3.15-rc2
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include')
32 files changed, 151 insertions, 69 deletions
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 1ec08c198b66..a8015a7a55bb 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -693,24 +693,35 @@ static inline int pmd_numa(pmd_t pmd) | |||
693 | #ifndef pte_mknonnuma | 693 | #ifndef pte_mknonnuma |
694 | static inline pte_t pte_mknonnuma(pte_t pte) | 694 | static inline pte_t pte_mknonnuma(pte_t pte) |
695 | { | 695 | { |
696 | pte = pte_clear_flags(pte, _PAGE_NUMA); | 696 | pteval_t val = pte_val(pte); |
697 | return pte_set_flags(pte, _PAGE_PRESENT|_PAGE_ACCESSED); | 697 | |
698 | val &= ~_PAGE_NUMA; | ||
699 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
700 | return __pte(val); | ||
698 | } | 701 | } |
699 | #endif | 702 | #endif |
700 | 703 | ||
701 | #ifndef pmd_mknonnuma | 704 | #ifndef pmd_mknonnuma |
702 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) | 705 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) |
703 | { | 706 | { |
704 | pmd = pmd_clear_flags(pmd, _PAGE_NUMA); | 707 | pmdval_t val = pmd_val(pmd); |
705 | return pmd_set_flags(pmd, _PAGE_PRESENT|_PAGE_ACCESSED); | 708 | |
709 | val &= ~_PAGE_NUMA; | ||
710 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
711 | |||
712 | return __pmd(val); | ||
706 | } | 713 | } |
707 | #endif | 714 | #endif |
708 | 715 | ||
709 | #ifndef pte_mknuma | 716 | #ifndef pte_mknuma |
710 | static inline pte_t pte_mknuma(pte_t pte) | 717 | static inline pte_t pte_mknuma(pte_t pte) |
711 | { | 718 | { |
712 | pte = pte_set_flags(pte, _PAGE_NUMA); | 719 | pteval_t val = pte_val(pte); |
713 | return pte_clear_flags(pte, _PAGE_PRESENT); | 720 | |
721 | val &= ~_PAGE_PRESENT; | ||
722 | val |= _PAGE_NUMA; | ||
723 | |||
724 | return __pte(val); | ||
714 | } | 725 | } |
715 | #endif | 726 | #endif |
716 | 727 | ||
@@ -729,8 +740,12 @@ static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr, | |||
729 | #ifndef pmd_mknuma | 740 | #ifndef pmd_mknuma |
730 | static inline pmd_t pmd_mknuma(pmd_t pmd) | 741 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
731 | { | 742 | { |
732 | pmd = pmd_set_flags(pmd, _PAGE_NUMA); | 743 | pmdval_t val = pmd_val(pmd); |
733 | return pmd_clear_flags(pmd, _PAGE_PRESENT); | 744 | |
745 | val &= ~_PAGE_PRESENT; | ||
746 | val |= _PAGE_NUMA; | ||
747 | |||
748 | return __pmd(val); | ||
734 | } | 749 | } |
735 | #endif | 750 | #endif |
736 | 751 | ||
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index 0bb34ca2ad2b..36a5febac2a6 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
@@ -125,7 +125,6 @@ struct drm_connector_helper_funcs { | |||
125 | struct drm_encoder *(*best_encoder)(struct drm_connector *connector); | 125 | struct drm_encoder *(*best_encoder)(struct drm_connector *connector); |
126 | }; | 126 | }; |
127 | 127 | ||
128 | extern int drm_helper_probe_single_connector_modes(struct drm_connector *connector, uint32_t maxX, uint32_t maxY); | ||
129 | extern void drm_helper_disable_unused_functions(struct drm_device *dev); | 128 | extern void drm_helper_disable_unused_functions(struct drm_device *dev); |
130 | extern int drm_crtc_helper_set_config(struct drm_mode_set *set); | 129 | extern int drm_crtc_helper_set_config(struct drm_mode_set *set); |
131 | extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | 130 | extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, |
@@ -161,6 +160,11 @@ static inline void drm_connector_helper_add(struct drm_connector *connector, | |||
161 | } | 160 | } |
162 | 161 | ||
163 | extern void drm_helper_resume_force_mode(struct drm_device *dev); | 162 | extern void drm_helper_resume_force_mode(struct drm_device *dev); |
163 | |||
164 | /* drm_probe_helper.c */ | ||
165 | extern int drm_helper_probe_single_connector_modes(struct drm_connector | ||
166 | *connector, uint32_t maxX, | ||
167 | uint32_t maxY); | ||
164 | extern void drm_kms_helper_poll_init(struct drm_device *dev); | 168 | extern void drm_kms_helper_poll_init(struct drm_device *dev); |
165 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); | 169 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); |
166 | extern bool drm_helper_hpd_irq_event(struct drm_device *dev); | 170 | extern bool drm_helper_hpd_irq_event(struct drm_device *dev); |
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index b4f58914bf7d..cfcacec5b89d 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h | |||
@@ -456,6 +456,10 @@ struct drm_dp_aux_msg { | |||
456 | * transactions. The drm_dp_aux_register_i2c_bus() function registers an | 456 | * transactions. The drm_dp_aux_register_i2c_bus() function registers an |
457 | * I2C adapter that can be passed to drm_probe_ddc(). Upon removal, drivers | 457 | * I2C adapter that can be passed to drm_probe_ddc(). Upon removal, drivers |
458 | * should call drm_dp_aux_unregister_i2c_bus() to remove the I2C adapter. | 458 | * should call drm_dp_aux_unregister_i2c_bus() to remove the I2C adapter. |
459 | * | ||
460 | * Note that the aux helper code assumes that the .transfer() function | ||
461 | * only modifies the reply field of the drm_dp_aux_msg structure. The | ||
462 | * retry logic and i2c helpers assume this is the case. | ||
459 | */ | 463 | */ |
460 | struct drm_dp_aux { | 464 | struct drm_dp_aux { |
461 | const char *name; | 465 | const char *name; |
diff --git a/include/linux/device.h b/include/linux/device.h index 233bbbeb768d..d1d1c055b48e 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -566,12 +566,6 @@ extern int __must_check device_create_bin_file(struct device *dev, | |||
566 | const struct bin_attribute *attr); | 566 | const struct bin_attribute *attr); |
567 | extern void device_remove_bin_file(struct device *dev, | 567 | extern void device_remove_bin_file(struct device *dev, |
568 | const struct bin_attribute *attr); | 568 | const struct bin_attribute *attr); |
569 | extern int device_schedule_callback_owner(struct device *dev, | ||
570 | void (*func)(struct device *dev), struct module *owner); | ||
571 | |||
572 | /* This is a macro to avoid include problems with THIS_MODULE */ | ||
573 | #define device_schedule_callback(dev, func) \ | ||
574 | device_schedule_callback_owner(dev, func, THIS_MODULE) | ||
575 | 569 | ||
576 | /* device resource management */ | 570 | /* device resource management */ |
577 | typedef void (*dr_release_t)(struct device *dev, void *res); | 571 | typedef void (*dr_release_t)(struct device *dev, void *res); |
@@ -932,10 +926,7 @@ extern int device_online(struct device *dev); | |||
932 | extern struct device *__root_device_register(const char *name, | 926 | extern struct device *__root_device_register(const char *name, |
933 | struct module *owner); | 927 | struct module *owner); |
934 | 928 | ||
935 | /* | 929 | /* This is a macro to avoid include problems with THIS_MODULE */ |
936 | * This is a macro to avoid include problems with THIS_MODULE, | ||
937 | * just as per what is done for device_schedule_callback() above. | ||
938 | */ | ||
939 | #define root_device_register(name) \ | 930 | #define root_device_register(name) \ |
940 | __root_device_register(name, THIS_MODULE) | 931 | __root_device_register(name, THIS_MODULE) |
941 | 932 | ||
diff --git a/include/linux/filter.h b/include/linux/filter.h index 262dcbb75ffe..024fd03e5d18 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
@@ -220,7 +220,6 @@ enum { | |||
220 | BPF_S_ANC_RXHASH, | 220 | BPF_S_ANC_RXHASH, |
221 | BPF_S_ANC_CPU, | 221 | BPF_S_ANC_CPU, |
222 | BPF_S_ANC_ALU_XOR_X, | 222 | BPF_S_ANC_ALU_XOR_X, |
223 | BPF_S_ANC_SECCOMP_LD_W, | ||
224 | BPF_S_ANC_VLAN_TAG, | 223 | BPF_S_ANC_VLAN_TAG, |
225 | BPF_S_ANC_VLAN_TAG_PRESENT, | 224 | BPF_S_ANC_VLAN_TAG_PRESENT, |
226 | BPF_S_ANC_PAY_OFFSET, | 225 | BPF_S_ANC_PAY_OFFSET, |
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ab7359fde987..2d7b4f139c32 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h | |||
@@ -147,15 +147,17 @@ hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info *rbi, | |||
147 | * 0 . 13 (Windows Server 2008) | 147 | * 0 . 13 (Windows Server 2008) |
148 | * 1 . 1 (Windows 7) | 148 | * 1 . 1 (Windows 7) |
149 | * 2 . 4 (Windows 8) | 149 | * 2 . 4 (Windows 8) |
150 | * 3 . 0 (Windows 8 R2) | ||
150 | */ | 151 | */ |
151 | 152 | ||
152 | #define VERSION_WS2008 ((0 << 16) | (13)) | 153 | #define VERSION_WS2008 ((0 << 16) | (13)) |
153 | #define VERSION_WIN7 ((1 << 16) | (1)) | 154 | #define VERSION_WIN7 ((1 << 16) | (1)) |
154 | #define VERSION_WIN8 ((2 << 16) | (4)) | 155 | #define VERSION_WIN8 ((2 << 16) | (4)) |
156 | #define VERSION_WIN8_1 ((3 << 16) | (0)) | ||
155 | 157 | ||
156 | #define VERSION_INVAL -1 | 158 | #define VERSION_INVAL -1 |
157 | 159 | ||
158 | #define VERSION_CURRENT VERSION_WIN8 | 160 | #define VERSION_CURRENT VERSION_WIN8_1 |
159 | 161 | ||
160 | /* Make maximum size of pipe payload of 16K */ | 162 | /* Make maximum size of pipe payload of 16K */ |
161 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) | 163 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) |
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 1f9f56e28851..76d2acbfa7c6 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h | |||
@@ -237,7 +237,7 @@ int ipmi_set_maintenance_mode(ipmi_user_t user, int mode); | |||
237 | * The first user that sets this to TRUE will receive all events that | 237 | * The first user that sets this to TRUE will receive all events that |
238 | * have been queued while no one was waiting for events. | 238 | * have been queued while no one was waiting for events. |
239 | */ | 239 | */ |
240 | int ipmi_set_gets_events(ipmi_user_t user, int val); | 240 | int ipmi_set_gets_events(ipmi_user_t user, bool val); |
241 | 241 | ||
242 | /* | 242 | /* |
243 | * Called when a new SMI is registered. This will also be called on | 243 | * Called when a new SMI is registered. This will also be called on |
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 8ea3fe0b9759..bd349240d50e 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h | |||
@@ -109,12 +109,19 @@ struct ipmi_smi_handlers { | |||
109 | events from the BMC we are attached to. */ | 109 | events from the BMC we are attached to. */ |
110 | void (*request_events)(void *send_info); | 110 | void (*request_events)(void *send_info); |
111 | 111 | ||
112 | /* Called by the upper layer when some user requires that the | ||
113 | interface watch for events, received messages, watchdog | ||
114 | pretimeouts, or not. Used by the SMI to know if it should | ||
115 | watch for these. This may be NULL if the SMI does not | ||
116 | implement it. */ | ||
117 | void (*set_need_watch)(void *send_info, bool enable); | ||
118 | |||
112 | /* Called when the interface should go into "run to | 119 | /* Called when the interface should go into "run to |
113 | completion" mode. If this call sets the value to true, the | 120 | completion" mode. If this call sets the value to true, the |
114 | interface should make sure that all messages are flushed | 121 | interface should make sure that all messages are flushed |
115 | out and that none are pending, and any new requests are run | 122 | out and that none are pending, and any new requests are run |
116 | to completion immediately. */ | 123 | to completion immediately. */ |
117 | void (*set_run_to_completion)(void *send_info, int run_to_completion); | 124 | void (*set_run_to_completion)(void *send_info, bool run_to_completion); |
118 | 125 | ||
119 | /* Called to poll for work to do. This is so upper layers can | 126 | /* Called to poll for work to do. This is so upper layers can |
120 | poll for operations during things like crash dumps. */ | 127 | poll for operations during things like crash dumps. */ |
@@ -125,7 +132,7 @@ struct ipmi_smi_handlers { | |||
125 | setting. The message handler does the mode handling. Note | 132 | setting. The message handler does the mode handling. Note |
126 | that this is called from interrupt context, so it cannot | 133 | that this is called from interrupt context, so it cannot |
127 | block. */ | 134 | block. */ |
128 | void (*set_maintenance_mode)(void *send_info, int enable); | 135 | void (*set_maintenance_mode)(void *send_info, bool enable); |
129 | 136 | ||
130 | /* Tell the handler that we are using it/not using it. The | 137 | /* Tell the handler that we are using it/not using it. The |
131 | message handler get the modules that this handler belongs | 138 | message handler get the modules that this handler belongs |
diff --git a/include/linux/mdio-gpio.h b/include/linux/mdio-gpio.h index 7c9fe3c2be73..66c30a763b10 100644 --- a/include/linux/mdio-gpio.h +++ b/include/linux/mdio-gpio.h | |||
@@ -17,6 +17,11 @@ struct mdio_gpio_platform_data { | |||
17 | /* GPIO numbers for bus pins */ | 17 | /* GPIO numbers for bus pins */ |
18 | unsigned int mdc; | 18 | unsigned int mdc; |
19 | unsigned int mdio; | 19 | unsigned int mdio; |
20 | unsigned int mdo; | ||
21 | |||
22 | bool mdc_active_low; | ||
23 | bool mdio_active_low; | ||
24 | bool mdo_active_low; | ||
20 | 25 | ||
21 | unsigned int phy_mask; | 26 | unsigned int phy_mask; |
22 | int irqs[PHY_MAX_ADDR]; | 27 | int irqs[PHY_MAX_ADDR]; |
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 407bdb67fd4f..3406cfb1267a 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
@@ -179,6 +179,7 @@ enum { | |||
179 | MLX5_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9, | 179 | MLX5_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9, |
180 | MLX5_DEV_CAP_FLAG_APM = 1LL << 17, | 180 | MLX5_DEV_CAP_FLAG_APM = 1LL << 17, |
181 | MLX5_DEV_CAP_FLAG_ATOMIC = 1LL << 18, | 181 | MLX5_DEV_CAP_FLAG_ATOMIC = 1LL << 18, |
182 | MLX5_DEV_CAP_FLAG_BLOCK_MCAST = 1LL << 23, | ||
182 | MLX5_DEV_CAP_FLAG_ON_DMND_PG = 1LL << 24, | 183 | MLX5_DEV_CAP_FLAG_ON_DMND_PG = 1LL << 24, |
183 | MLX5_DEV_CAP_FLAG_CQ_MODER = 1LL << 29, | 184 | MLX5_DEV_CAP_FLAG_CQ_MODER = 1LL << 29, |
184 | MLX5_DEV_CAP_FLAG_RESIZE_CQ = 1LL << 30, | 185 | MLX5_DEV_CAP_FLAG_RESIZE_CQ = 1LL << 30, |
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index f829ad80ff28..9709b30e2d69 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h | |||
@@ -146,6 +146,7 @@ enum { | |||
146 | 146 | ||
147 | enum { | 147 | enum { |
148 | MLX5_QP_LAT_SENSITIVE = 1 << 28, | 148 | MLX5_QP_LAT_SENSITIVE = 1 << 28, |
149 | MLX5_QP_BLOCK_MCAST = 1 << 30, | ||
149 | MLX5_QP_ENABLE_SIG = 1 << 31, | 150 | MLX5_QP_ENABLE_SIG = 1 << 31, |
150 | }; | 151 | }; |
151 | 152 | ||
diff --git a/include/linux/mtd/spear_smi.h b/include/linux/mtd/spear_smi.h index 8ae1726044c3..581603ac1277 100644 --- a/include/linux/mtd/spear_smi.h +++ b/include/linux/mtd/spear_smi.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright © 2010 ST Microelectronics | 2 | * Copyright © 2010 ST Microelectronics |
3 | * Shiraz Hashim <shiraz.hashim@st.com> | 3 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
4 | * | 4 | * |
5 | * This file is licensed under the terms of the GNU General Public | 5 | * This file is licensed under the terms of the GNU General Public |
6 | * License version 2. This program is licensed "as is" without any | 6 | * License version 2. This program is licensed "as is" without any |
diff --git a/include/linux/netfilter/nf_conntrack_proto_gre.h b/include/linux/netfilter/nf_conntrack_proto_gre.h index ec2ffaf418c8..df78dc2b5524 100644 --- a/include/linux/netfilter/nf_conntrack_proto_gre.h +++ b/include/linux/netfilter/nf_conntrack_proto_gre.h | |||
@@ -87,7 +87,6 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir, | |||
87 | /* delete keymap entries */ | 87 | /* delete keymap entries */ |
88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); | 88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); |
89 | 89 | ||
90 | void nf_ct_gre_keymap_flush(struct net *net); | ||
91 | void nf_nat_need_gre(void); | 90 | void nf_nat_need_gre(void); |
92 | 91 | ||
93 | #endif /* __KERNEL__ */ | 92 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/of.h b/include/linux/of.h index 919bf211877d..3bad8d106e0e 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
@@ -374,6 +374,11 @@ static inline struct device_node *of_find_matching_node_and_match( | |||
374 | return NULL; | 374 | return NULL; |
375 | } | 375 | } |
376 | 376 | ||
377 | static inline struct device_node *of_find_node_by_path(const char *path) | ||
378 | { | ||
379 | return NULL; | ||
380 | } | ||
381 | |||
377 | static inline struct device_node *of_get_parent(const struct device_node *node) | 382 | static inline struct device_node *of_get_parent(const struct device_node *node) |
378 | { | 383 | { |
379 | return NULL; | 384 | return NULL; |
diff --git a/include/linux/phy.h b/include/linux/phy.h index 24126c4b27b5..4d0221fd0688 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -75,6 +75,7 @@ typedef enum { | |||
75 | PHY_INTERFACE_MODE_SMII, | 75 | PHY_INTERFACE_MODE_SMII, |
76 | PHY_INTERFACE_MODE_XGMII, | 76 | PHY_INTERFACE_MODE_XGMII, |
77 | PHY_INTERFACE_MODE_MOCA, | 77 | PHY_INTERFACE_MODE_MOCA, |
78 | PHY_INTERFACE_MODE_QSGMII, | ||
78 | PHY_INTERFACE_MODE_MAX, | 79 | PHY_INTERFACE_MODE_MAX, |
79 | } phy_interface_t; | 80 | } phy_interface_t; |
80 | 81 | ||
@@ -116,6 +117,8 @@ static inline const char *phy_modes(phy_interface_t interface) | |||
116 | return "xgmii"; | 117 | return "xgmii"; |
117 | case PHY_INTERFACE_MODE_MOCA: | 118 | case PHY_INTERFACE_MODE_MOCA: |
118 | return "moca"; | 119 | return "moca"; |
120 | case PHY_INTERFACE_MODE_QSGMII: | ||
121 | return "qsgmii"; | ||
119 | default: | 122 | default: |
120 | return "unknown"; | 123 | return "unknown"; |
121 | } | 124 | } |
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index 9e7db9e73cc1..48bf152761c7 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h | |||
@@ -20,13 +20,13 @@ enum reboot_mode { | |||
20 | extern enum reboot_mode reboot_mode; | 20 | extern enum reboot_mode reboot_mode; |
21 | 21 | ||
22 | enum reboot_type { | 22 | enum reboot_type { |
23 | BOOT_TRIPLE = 't', | 23 | BOOT_TRIPLE = 't', |
24 | BOOT_KBD = 'k', | 24 | BOOT_KBD = 'k', |
25 | BOOT_BIOS = 'b', | 25 | BOOT_BIOS = 'b', |
26 | BOOT_ACPI = 'a', | 26 | BOOT_ACPI = 'a', |
27 | BOOT_EFI = 'e', | 27 | BOOT_EFI = 'e', |
28 | BOOT_CF9 = 'p', | 28 | BOOT_CF9_FORCE = 'p', |
29 | BOOT_CF9_COND = 'q', | 29 | BOOT_CF9_SAFE = 'q', |
30 | }; | 30 | }; |
31 | extern enum reboot_type reboot_type; | 31 | extern enum reboot_type reboot_type; |
32 | 32 | ||
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 084354b0e814..5ffaa3443712 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
@@ -179,9 +179,6 @@ struct sysfs_ops { | |||
179 | 179 | ||
180 | #ifdef CONFIG_SYSFS | 180 | #ifdef CONFIG_SYSFS |
181 | 181 | ||
182 | int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *), | ||
183 | void *data, struct module *owner); | ||
184 | |||
185 | int __must_check sysfs_create_dir_ns(struct kobject *kobj, const void *ns); | 182 | int __must_check sysfs_create_dir_ns(struct kobject *kobj, const void *ns); |
186 | void sysfs_remove_dir(struct kobject *kobj); | 183 | void sysfs_remove_dir(struct kobject *kobj); |
187 | int __must_check sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name, | 184 | int __must_check sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name, |
@@ -255,12 +252,6 @@ static inline void sysfs_enable_ns(struct kernfs_node *kn) | |||
255 | 252 | ||
256 | #else /* CONFIG_SYSFS */ | 253 | #else /* CONFIG_SYSFS */ |
257 | 254 | ||
258 | static inline int sysfs_schedule_callback(struct kobject *kobj, | ||
259 | void (*func)(void *), void *data, struct module *owner) | ||
260 | { | ||
261 | return -ENOSYS; | ||
262 | } | ||
263 | |||
264 | static inline int sysfs_create_dir_ns(struct kobject *kobj, const void *ns) | 255 | static inline int sysfs_create_dir_ns(struct kobject *kobj, const void *ns) |
265 | { | 256 | { |
266 | return 0; | 257 | return 0; |
diff --git a/include/linux/wait.h b/include/linux/wait.h index e7d9d9ed14f5..bd68819f0815 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
@@ -191,11 +191,23 @@ wait_queue_head_t *bit_waitqueue(void *, int); | |||
191 | (!__builtin_constant_p(state) || \ | 191 | (!__builtin_constant_p(state) || \ |
192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ | 192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ |
193 | 193 | ||
194 | /* | ||
195 | * The below macro ___wait_event() has an explicit shadow of the __ret | ||
196 | * variable when used from the wait_event_*() macros. | ||
197 | * | ||
198 | * This is so that both can use the ___wait_cond_timeout() construct | ||
199 | * to wrap the condition. | ||
200 | * | ||
201 | * The type inconsistency of the wait_event_*() __ret variable is also | ||
202 | * on purpose; we use long where we can return timeout values and int | ||
203 | * otherwise. | ||
204 | */ | ||
205 | |||
194 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ | 206 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ |
195 | ({ \ | 207 | ({ \ |
196 | __label__ __out; \ | 208 | __label__ __out; \ |
197 | wait_queue_t __wait; \ | 209 | wait_queue_t __wait; \ |
198 | long __ret = ret; \ | 210 | long __ret = ret; /* explicit shadow */ \ |
199 | \ | 211 | \ |
200 | INIT_LIST_HEAD(&__wait.task_list); \ | 212 | INIT_LIST_HEAD(&__wait.task_list); \ |
201 | if (exclusive) \ | 213 | if (exclusive) \ |
diff --git a/include/net/dst.h b/include/net/dst.h index 46ed958e0c6e..71c60f42be48 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -45,7 +45,7 @@ struct dst_entry { | |||
45 | void *__pad1; | 45 | void *__pad1; |
46 | #endif | 46 | #endif |
47 | int (*input)(struct sk_buff *); | 47 | int (*input)(struct sk_buff *); |
48 | int (*output)(struct sk_buff *); | 48 | int (*output)(struct sock *sk, struct sk_buff *skb); |
49 | 49 | ||
50 | unsigned short flags; | 50 | unsigned short flags; |
51 | #define DST_HOST 0x0001 | 51 | #define DST_HOST 0x0001 |
@@ -367,7 +367,11 @@ static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb) | |||
367 | return child; | 367 | return child; |
368 | } | 368 | } |
369 | 369 | ||
370 | int dst_discard(struct sk_buff *skb); | 370 | int dst_discard_sk(struct sock *sk, struct sk_buff *skb); |
371 | static inline int dst_discard(struct sk_buff *skb) | ||
372 | { | ||
373 | return dst_discard_sk(skb->sk, skb); | ||
374 | } | ||
371 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, | 375 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, |
372 | int initial_obsolete, unsigned short flags); | 376 | int initial_obsolete, unsigned short flags); |
373 | void __dst_free(struct dst_entry *dst); | 377 | void __dst_free(struct dst_entry *dst); |
@@ -449,9 +453,13 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout) | |||
449 | } | 453 | } |
450 | 454 | ||
451 | /* Output packet to network from transport. */ | 455 | /* Output packet to network from transport. */ |
456 | static inline int dst_output_sk(struct sock *sk, struct sk_buff *skb) | ||
457 | { | ||
458 | return skb_dst(skb)->output(sk, skb); | ||
459 | } | ||
452 | static inline int dst_output(struct sk_buff *skb) | 460 | static inline int dst_output(struct sk_buff *skb) |
453 | { | 461 | { |
454 | return skb_dst(skb)->output(skb); | 462 | return dst_output_sk(skb->sk, skb); |
455 | } | 463 | } |
456 | 464 | ||
457 | /* Input packet from network to transport. */ | 465 | /* Input packet from network to transport. */ |
diff --git a/include/net/flow.h b/include/net/flow.h index 64fd24836650..8109a159d1b3 100644 --- a/include/net/flow.h +++ b/include/net/flow.h | |||
@@ -11,6 +11,14 @@ | |||
11 | #include <linux/in6.h> | 11 | #include <linux/in6.h> |
12 | #include <linux/atomic.h> | 12 | #include <linux/atomic.h> |
13 | 13 | ||
14 | /* | ||
15 | * ifindex generation is per-net namespace, and loopback is | ||
16 | * always the 1st device in ns (see net_dev_init), thus any | ||
17 | * loopback device should get ifindex 1 | ||
18 | */ | ||
19 | |||
20 | #define LOOPBACK_IFINDEX 1 | ||
21 | |||
14 | struct flowi_common { | 22 | struct flowi_common { |
15 | int flowic_oif; | 23 | int flowic_oif; |
16 | int flowic_iif; | 24 | int flowic_iif; |
@@ -80,7 +88,7 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif, | |||
80 | __be16 dport, __be16 sport) | 88 | __be16 dport, __be16 sport) |
81 | { | 89 | { |
82 | fl4->flowi4_oif = oif; | 90 | fl4->flowi4_oif = oif; |
83 | fl4->flowi4_iif = 0; | 91 | fl4->flowi4_iif = LOOPBACK_IFINDEX; |
84 | fl4->flowi4_mark = mark; | 92 | fl4->flowi4_mark = mark; |
85 | fl4->flowi4_tos = tos; | 93 | fl4->flowi4_tos = tos; |
86 | fl4->flowi4_scope = scope; | 94 | fl4->flowi4_scope = scope; |
diff --git a/include/net/inet6_connection_sock.h b/include/net/inet6_connection_sock.h index f981ba7adeed..74af137304be 100644 --- a/include/net/inet6_connection_sock.h +++ b/include/net/inet6_connection_sock.h | |||
@@ -40,7 +40,7 @@ void inet6_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | |||
40 | 40 | ||
41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); | 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); |
42 | 42 | ||
43 | int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl); | 43 | int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
44 | 44 | ||
45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); | 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); |
46 | #endif /* _INET6_CONNECTION_SOCK_H */ | 46 | #endif /* _INET6_CONNECTION_SOCK_H */ |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index c55aeed41ace..7a4313887568 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
@@ -36,7 +36,7 @@ struct tcp_congestion_ops; | |||
36 | * (i.e. things that depend on the address family) | 36 | * (i.e. things that depend on the address family) |
37 | */ | 37 | */ |
38 | struct inet_connection_sock_af_ops { | 38 | struct inet_connection_sock_af_ops { |
39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 39 | int (*queue_xmit)(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); |
41 | int (*rebuild_header)(struct sock *sk); | 41 | int (*rebuild_header)(struct sock *sk); |
42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); | 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); |
diff --git a/include/net/ip.h b/include/net/ip.h index 25064c28e059..3ec2b0fb9d83 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -104,14 +104,19 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, | |||
104 | struct net_device *orig_dev); | 104 | struct net_device *orig_dev); |
105 | int ip_local_deliver(struct sk_buff *skb); | 105 | int ip_local_deliver(struct sk_buff *skb); |
106 | int ip_mr_input(struct sk_buff *skb); | 106 | int ip_mr_input(struct sk_buff *skb); |
107 | int ip_output(struct sk_buff *skb); | 107 | int ip_output(struct sock *sk, struct sk_buff *skb); |
108 | int ip_mc_output(struct sk_buff *skb); | 108 | int ip_mc_output(struct sock *sk, struct sk_buff *skb); |
109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); | 109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); |
110 | int ip_do_nat(struct sk_buff *skb); | 110 | int ip_do_nat(struct sk_buff *skb); |
111 | void ip_send_check(struct iphdr *ip); | 111 | void ip_send_check(struct iphdr *ip); |
112 | int __ip_local_out(struct sk_buff *skb); | 112 | int __ip_local_out(struct sk_buff *skb); |
113 | int ip_local_out(struct sk_buff *skb); | 113 | int ip_local_out_sk(struct sock *sk, struct sk_buff *skb); |
114 | int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); | 114 | static inline int ip_local_out(struct sk_buff *skb) |
115 | { | ||
116 | return ip_local_out_sk(skb->sk, skb); | ||
117 | } | ||
118 | |||
119 | int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); | ||
115 | void ip_init(void); | 120 | void ip_init(void); |
116 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, | 121 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, |
117 | int getfrag(void *from, char *to, int offset, int len, | 122 | int getfrag(void *from, char *to, int offset, int len, |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 3c3bb184eb8f..6c4f5eac98e7 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
@@ -32,6 +32,11 @@ struct route_info { | |||
32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 | 32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 |
33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 | 33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 |
34 | 34 | ||
35 | /* We do not (yet ?) support IPv6 jumbograms (RFC 2675) | ||
36 | * Unlike IPv4, hdr->seg_len doesn't include the IPv6 header | ||
37 | */ | ||
38 | #define IP6_MAX_MTU (0xFFFF + sizeof(struct ipv6hdr)) | ||
39 | |||
35 | /* | 40 | /* |
36 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate | 41 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate |
37 | * between IPV6_ADDR_PREFERENCES socket option values | 42 | * between IPV6_ADDR_PREFERENCES socket option values |
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index e77c10405d51..a4daf9eb8562 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h | |||
@@ -153,7 +153,7 @@ static inline u8 ip_tunnel_ecn_encap(u8 tos, const struct iphdr *iph, | |||
153 | } | 153 | } |
154 | 154 | ||
155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); | 155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); |
156 | int iptunnel_xmit(struct rtable *rt, struct sk_buff *skb, | 156 | int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb, |
157 | __be32 src, __be32 dst, __u8 proto, | 157 | __be32 src, __be32 dst, __u8 proto, |
158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); | 158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); |
159 | 159 | ||
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 4f541f11ce63..d640925bc454 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -731,7 +731,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, | |||
731 | * skb processing functions | 731 | * skb processing functions |
732 | */ | 732 | */ |
733 | 733 | ||
734 | int ip6_output(struct sk_buff *skb); | 734 | int ip6_output(struct sock *sk, struct sk_buff *skb); |
735 | int ip6_forward(struct sk_buff *skb); | 735 | int ip6_forward(struct sk_buff *skb); |
736 | int ip6_input(struct sk_buff *skb); | 736 | int ip6_input(struct sk_buff *skb); |
737 | int ip6_mc_input(struct sk_buff *skb); | 737 | int ip6_mc_input(struct sk_buff *skb); |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 79387f73f875..5f9eb260990f 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/list.h> | 9 | #include <linux/list.h> |
10 | #include <linux/sysctl.h> | 10 | #include <linux/sysctl.h> |
11 | 11 | ||
12 | #include <net/flow.h> | ||
12 | #include <net/netns/core.h> | 13 | #include <net/netns/core.h> |
13 | #include <net/netns/mib.h> | 14 | #include <net/netns/mib.h> |
14 | #include <net/netns/unix.h> | 15 | #include <net/netns/unix.h> |
@@ -131,14 +132,6 @@ struct net { | |||
131 | atomic_t fnhe_genid; | 132 | atomic_t fnhe_genid; |
132 | }; | 133 | }; |
133 | 134 | ||
134 | /* | ||
135 | * ifindex generation is per-net namespace, and loopback is | ||
136 | * always the 1st device in ns (see net_dev_init), thus any | ||
137 | * loopback device should get ifindex 1 | ||
138 | */ | ||
139 | |||
140 | #define LOOPBACK_IFINDEX 1 | ||
141 | |||
142 | #include <linux/seq_file_net.h> | 135 | #include <linux/seq_file_net.h> |
143 | 136 | ||
144 | /* Init's network namespace */ | 137 | /* Init's network namespace */ |
diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h index cf2b7ae2b9d8..a75fc8e27cd6 100644 --- a/include/net/netfilter/nf_tables_core.h +++ b/include/net/netfilter/nf_tables_core.h | |||
@@ -13,6 +13,16 @@ struct nft_cmp_fast_expr { | |||
13 | u8 len; | 13 | u8 len; |
14 | }; | 14 | }; |
15 | 15 | ||
16 | /* Calculate the mask for the nft_cmp_fast expression. On big endian the | ||
17 | * mask needs to include the *upper* bytes when interpreting that data as | ||
18 | * something smaller than the full u32, therefore a cpu_to_le32 is done. | ||
19 | */ | ||
20 | static inline u32 nft_cmp_fast_mask(unsigned int len) | ||
21 | { | ||
22 | return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, | ||
23 | data) * BITS_PER_BYTE - len)); | ||
24 | } | ||
25 | |||
16 | extern const struct nft_expr_ops nft_cmp_fast_ops; | 26 | extern const struct nft_expr_ops nft_cmp_fast_ops; |
17 | 27 | ||
18 | int nft_cmp_module_init(void); | 28 | int nft_cmp_module_init(void); |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 6ee76c804893..0dfcc92600e8 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -1241,6 +1241,7 @@ struct sctp_endpoint { | |||
1241 | /* SCTP-AUTH: endpoint shared keys */ | 1241 | /* SCTP-AUTH: endpoint shared keys */ |
1242 | struct list_head endpoint_shared_keys; | 1242 | struct list_head endpoint_shared_keys; |
1243 | __u16 active_key_id; | 1243 | __u16 active_key_id; |
1244 | __u8 auth_enable; | ||
1244 | }; | 1245 | }; |
1245 | 1246 | ||
1246 | /* Recover the outter endpoint structure. */ | 1247 | /* Recover the outter endpoint structure. */ |
@@ -1269,7 +1270,8 @@ struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *, | |||
1269 | int sctp_has_association(struct net *net, const union sctp_addr *laddr, | 1270 | int sctp_has_association(struct net *net, const union sctp_addr *laddr, |
1270 | const union sctp_addr *paddr); | 1271 | const union sctp_addr *paddr); |
1271 | 1272 | ||
1272 | int sctp_verify_init(struct net *net, const struct sctp_association *asoc, | 1273 | int sctp_verify_init(struct net *net, const struct sctp_endpoint *ep, |
1274 | const struct sctp_association *asoc, | ||
1273 | sctp_cid_t, sctp_init_chunk_t *peer_init, | 1275 | sctp_cid_t, sctp_init_chunk_t *peer_init, |
1274 | struct sctp_chunk *chunk, struct sctp_chunk **err_chunk); | 1276 | struct sctp_chunk *chunk, struct sctp_chunk **err_chunk); |
1275 | int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk, | 1277 | int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk, |
@@ -1653,6 +1655,17 @@ struct sctp_association { | |||
1653 | /* This is the last advertised value of rwnd over a SACK chunk. */ | 1655 | /* This is the last advertised value of rwnd over a SACK chunk. */ |
1654 | __u32 a_rwnd; | 1656 | __u32 a_rwnd; |
1655 | 1657 | ||
1658 | /* Number of bytes by which the rwnd has slopped. The rwnd is allowed | ||
1659 | * to slop over a maximum of the association's frag_point. | ||
1660 | */ | ||
1661 | __u32 rwnd_over; | ||
1662 | |||
1663 | /* Keeps treack of rwnd pressure. This happens when we have | ||
1664 | * a window, but not recevie buffer (i.e small packets). This one | ||
1665 | * is releases slowly (1 PMTU at a time ). | ||
1666 | */ | ||
1667 | __u32 rwnd_press; | ||
1668 | |||
1656 | /* This is the sndbuf size in use for the association. | 1669 | /* This is the sndbuf size in use for the association. |
1657 | * This corresponds to the sndbuf size for the association, | 1670 | * This corresponds to the sndbuf size for the association, |
1658 | * as specified in the sk->sndbuf. | 1671 | * as specified in the sk->sndbuf. |
@@ -1881,7 +1894,8 @@ void sctp_assoc_update(struct sctp_association *old, | |||
1881 | __u32 sctp_association_get_next_tsn(struct sctp_association *); | 1894 | __u32 sctp_association_get_next_tsn(struct sctp_association *); |
1882 | 1895 | ||
1883 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); | 1896 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); |
1884 | void sctp_assoc_rwnd_update(struct sctp_association *, bool); | 1897 | void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned int); |
1898 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned int); | ||
1885 | void sctp_assoc_set_primary(struct sctp_association *, | 1899 | void sctp_assoc_set_primary(struct sctp_association *, |
1886 | struct sctp_transport *); | 1900 | struct sctp_transport *); |
1887 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, | 1901 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 32682ae47b3f..116e9c7e19cb 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -333,7 +333,7 @@ struct xfrm_state_afinfo { | |||
333 | const xfrm_address_t *saddr); | 333 | const xfrm_address_t *saddr); |
334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); | 334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); |
335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); | 335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); |
336 | int (*output)(struct sk_buff *skb); | 336 | int (*output)(struct sock *sk, struct sk_buff *skb); |
337 | int (*output_finish)(struct sk_buff *skb); | 337 | int (*output_finish)(struct sk_buff *skb); |
338 | int (*extract_input)(struct xfrm_state *x, | 338 | int (*extract_input)(struct xfrm_state *x, |
339 | struct sk_buff *skb); | 339 | struct sk_buff *skb); |
@@ -1540,7 +1540,7 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi) | |||
1540 | 1540 | ||
1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
1543 | int xfrm4_output(struct sk_buff *skb); | 1543 | int xfrm4_output(struct sock *sk, struct sk_buff *skb); |
1544 | int xfrm4_output_finish(struct sk_buff *skb); | 1544 | int xfrm4_output_finish(struct sk_buff *skb); |
1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); | 1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); |
1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); | 1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); |
@@ -1565,7 +1565,7 @@ __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr); | |||
1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); | 1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); |
1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
1568 | int xfrm6_output(struct sk_buff *skb); | 1568 | int xfrm6_output(struct sock *sk, struct sk_buff *skb); |
1569 | int xfrm6_output_finish(struct sk_buff *skb); | 1569 | int xfrm6_output_finish(struct sk_buff *skb); |
1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, | 1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, |
1571 | u8 **prevhdr); | 1571 | u8 **prevhdr); |
diff --git a/include/uapi/drm/tegra_drm.h b/include/uapi/drm/tegra_drm.h index b042b48495d9..b75482112428 100644 --- a/include/uapi/drm/tegra_drm.h +++ b/include/uapi/drm/tegra_drm.h | |||
@@ -120,7 +120,6 @@ struct drm_tegra_submit { | |||
120 | __u32 num_waitchks; | 120 | __u32 num_waitchks; |
121 | __u32 waitchk_mask; | 121 | __u32 waitchk_mask; |
122 | __u32 timeout; | 122 | __u32 timeout; |
123 | __u32 pad; | ||
124 | __u64 syncpts; | 123 | __u64 syncpts; |
125 | __u64 cmdbufs; | 124 | __u64 cmdbufs; |
126 | __u64 relocs; | 125 | __u64 relocs; |
diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.h index 9beb7c991638..78e4a86030dd 100644 --- a/include/uapi/linux/hyperv.h +++ b/include/uapi/linux/hyperv.h | |||
@@ -305,6 +305,7 @@ enum hv_kvp_exchg_pool { | |||
305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F | 305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F |
306 | #define HV_INVALIDARG 0x80070057 | 306 | #define HV_INVALIDARG 0x80070057 |
307 | #define HV_GUID_NOTFOUND 0x80041002 | 307 | #define HV_GUID_NOTFOUND 0x80041002 |
308 | #define HV_ERROR_ALREADY_EXISTS 0x80070050 | ||
308 | 309 | ||
309 | #define ADDR_FAMILY_NONE 0x00 | 310 | #define ADDR_FAMILY_NONE 0x00 |
310 | #define ADDR_FAMILY_IPV4 0x01 | 311 | #define ADDR_FAMILY_IPV4 0x01 |