diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/acpi/processor.h | 8 | ||||
| -rw-r--r-- | include/drm/drmP.h | 4 | ||||
| -rw-r--r-- | include/drm/drm_gem.h | 7 | ||||
| -rw-r--r-- | include/dt-bindings/thermal/thermal.h | 2 | ||||
| -rw-r--r-- | include/linux/acpi.h | 4 | ||||
| -rw-r--r-- | include/linux/audit.h | 4 | ||||
| -rw-r--r-- | include/linux/cpu_cooling.h | 6 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 3 | ||||
| -rw-r--r-- | include/linux/mfd/stmpe.h | 22 | ||||
| -rw-r--r-- | include/linux/mm.h | 2 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 20 | ||||
| -rw-r--r-- | include/linux/netlink.h | 4 | ||||
| -rw-r--r-- | include/linux/pagemap.h | 13 | ||||
| -rw-r--r-- | include/linux/pm_domain.h | 8 | ||||
| -rw-r--r-- | include/linux/thermal.h | 2 | ||||
| -rw-r--r-- | include/net/genetlink.h | 9 | ||||
| -rw-r--r-- | include/net/mac80211.h | 7 | ||||
| -rw-r--r-- | include/net/neighbour.h | 1 | ||||
| -rw-r--r-- | include/net/vxlan.h | 28 | ||||
| -rw-r--r-- | include/sound/pcm.h | 10 | ||||
| -rw-r--r-- | include/uapi/linux/in6.h | 3 | ||||
| -rw-r--r-- | include/uapi/linux/libc-compat.h | 3 | ||||
| -rw-r--r-- | include/uapi/linux/virtio_ring.h | 7 |
23 files changed, 99 insertions, 78 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 3ca9b751f122..b95dc32a6e6b 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
| @@ -196,8 +196,8 @@ struct acpi_processor_flags { | |||
| 196 | struct acpi_processor { | 196 | struct acpi_processor { |
| 197 | acpi_handle handle; | 197 | acpi_handle handle; |
| 198 | u32 acpi_id; | 198 | u32 acpi_id; |
| 199 | u32 apic_id; | 199 | u32 phys_id; /* CPU hardware ID such as APIC ID for x86 */ |
| 200 | u32 id; | 200 | u32 id; /* CPU logical ID allocated by OS */ |
| 201 | u32 pblk; | 201 | u32 pblk; |
| 202 | int performance_platform_limit; | 202 | int performance_platform_limit; |
| 203 | int throttling_platform_limit; | 203 | int throttling_platform_limit; |
| @@ -310,8 +310,8 @@ static inline int acpi_processor_get_bios_limit(int cpu, unsigned int *limit) | |||
| 310 | #endif /* CONFIG_CPU_FREQ */ | 310 | #endif /* CONFIG_CPU_FREQ */ |
| 311 | 311 | ||
| 312 | /* in processor_core.c */ | 312 | /* in processor_core.c */ |
| 313 | int acpi_get_apicid(acpi_handle, int type, u32 acpi_id); | 313 | int acpi_get_phys_id(acpi_handle, int type, u32 acpi_id); |
| 314 | int acpi_map_cpuid(int apic_id, u32 acpi_id); | 314 | int acpi_map_cpuid(int phys_id, u32 acpi_id); |
| 315 | int acpi_get_cpuid(acpi_handle, int type, u32 acpi_id); | 315 | int acpi_get_cpuid(acpi_handle, int type, u32 acpi_id); |
| 316 | 316 | ||
| 317 | /* in processor_pdc.c */ | 317 | /* in processor_pdc.c */ |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 8ba35c622e22..e1b2e8b98af7 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
| @@ -901,11 +901,15 @@ extern int drm_vblank_init(struct drm_device *dev, int num_crtcs); | |||
| 901 | extern int drm_wait_vblank(struct drm_device *dev, void *data, | 901 | extern int drm_wait_vblank(struct drm_device *dev, void *data, |
| 902 | struct drm_file *filp); | 902 | struct drm_file *filp); |
| 903 | extern u32 drm_vblank_count(struct drm_device *dev, int crtc); | 903 | extern u32 drm_vblank_count(struct drm_device *dev, int crtc); |
| 904 | extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc); | ||
| 904 | extern u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc, | 905 | extern u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc, |
| 905 | struct timeval *vblanktime); | 906 | struct timeval *vblanktime); |
| 906 | extern void drm_send_vblank_event(struct drm_device *dev, int crtc, | 907 | extern void drm_send_vblank_event(struct drm_device *dev, int crtc, |
| 907 | struct drm_pending_vblank_event *e); | 908 | struct drm_pending_vblank_event *e); |
| 909 | extern void drm_crtc_send_vblank_event(struct drm_crtc *crtc, | ||
| 910 | struct drm_pending_vblank_event *e); | ||
| 908 | extern bool drm_handle_vblank(struct drm_device *dev, int crtc); | 911 | extern bool drm_handle_vblank(struct drm_device *dev, int crtc); |
| 912 | extern bool drm_crtc_handle_vblank(struct drm_crtc *crtc); | ||
| 909 | extern int drm_vblank_get(struct drm_device *dev, int crtc); | 913 | extern int drm_vblank_get(struct drm_device *dev, int crtc); |
| 910 | extern void drm_vblank_put(struct drm_device *dev, int crtc); | 914 | extern void drm_vblank_put(struct drm_device *dev, int crtc); |
| 911 | extern int drm_crtc_vblank_get(struct drm_crtc *crtc); | 915 | extern int drm_crtc_vblank_get(struct drm_crtc *crtc); |
diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h index 780511a459c0..1e6ae1458f7a 100644 --- a/include/drm/drm_gem.h +++ b/include/drm/drm_gem.h | |||
| @@ -119,13 +119,6 @@ struct drm_gem_object { | |||
| 119 | * simply leave it as NULL. | 119 | * simply leave it as NULL. |
| 120 | */ | 120 | */ |
| 121 | struct dma_buf_attachment *import_attach; | 121 | struct dma_buf_attachment *import_attach; |
| 122 | |||
| 123 | /** | ||
| 124 | * dumb - created as dumb buffer | ||
| 125 | * Whether the gem object was created using the dumb buffer interface | ||
| 126 | * as such it may not be used for GPU rendering. | ||
| 127 | */ | ||
| 128 | bool dumb; | ||
| 129 | }; | 122 | }; |
| 130 | 123 | ||
| 131 | void drm_gem_object_release(struct drm_gem_object *obj); | 124 | void drm_gem_object_release(struct drm_gem_object *obj); |
diff --git a/include/dt-bindings/thermal/thermal.h b/include/dt-bindings/thermal/thermal.h index 59822a995858..b5e6b0069ac7 100644 --- a/include/dt-bindings/thermal/thermal.h +++ b/include/dt-bindings/thermal/thermal.h | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #define _DT_BINDINGS_THERMAL_THERMAL_H | 11 | #define _DT_BINDINGS_THERMAL_THERMAL_H |
| 12 | 12 | ||
| 13 | /* On cooling devices upper and lower limits */ | 13 | /* On cooling devices upper and lower limits */ |
| 14 | #define THERMAL_NO_LIMIT (-1UL) | 14 | #define THERMAL_NO_LIMIT (~0) |
| 15 | 15 | ||
| 16 | #endif | 16 | #endif |
| 17 | 17 | ||
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 856d381b1d5b..d459cd17b477 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -147,8 +147,8 @@ void acpi_numa_arch_fixup(void); | |||
| 147 | 147 | ||
| 148 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 148 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
| 149 | /* Arch dependent functions for cpu hotplug support */ | 149 | /* Arch dependent functions for cpu hotplug support */ |
| 150 | int acpi_map_lsapic(acpi_handle handle, int physid, int *pcpu); | 150 | int acpi_map_cpu(acpi_handle handle, int physid, int *pcpu); |
| 151 | int acpi_unmap_lsapic(int cpu); | 151 | int acpi_unmap_cpu(int cpu); |
| 152 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 152 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
| 153 | 153 | ||
| 154 | int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); | 154 | int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); |
diff --git a/include/linux/audit.h b/include/linux/audit.h index 0c04917c2f12..af84234e1f6e 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
| @@ -47,6 +47,7 @@ struct sk_buff; | |||
| 47 | 47 | ||
| 48 | struct audit_krule { | 48 | struct audit_krule { |
| 49 | int vers_ops; | 49 | int vers_ops; |
| 50 | u32 pflags; | ||
| 50 | u32 flags; | 51 | u32 flags; |
| 51 | u32 listnr; | 52 | u32 listnr; |
| 52 | u32 action; | 53 | u32 action; |
| @@ -64,6 +65,9 @@ struct audit_krule { | |||
| 64 | u64 prio; | 65 | u64 prio; |
| 65 | }; | 66 | }; |
| 66 | 67 | ||
| 68 | /* Flag to indicate legacy AUDIT_LOGINUID unset usage */ | ||
| 69 | #define AUDIT_LOGINUID_LEGACY 0x1 | ||
| 70 | |||
| 67 | struct audit_field { | 71 | struct audit_field { |
| 68 | u32 type; | 72 | u32 type; |
| 69 | union { | 73 | union { |
diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h index c303d383def1..bd955270d5aa 100644 --- a/include/linux/cpu_cooling.h +++ b/include/linux/cpu_cooling.h | |||
| @@ -50,7 +50,7 @@ static inline struct thermal_cooling_device * | |||
| 50 | of_cpufreq_cooling_register(struct device_node *np, | 50 | of_cpufreq_cooling_register(struct device_node *np, |
| 51 | const struct cpumask *clip_cpus) | 51 | const struct cpumask *clip_cpus) |
| 52 | { | 52 | { |
| 53 | return NULL; | 53 | return ERR_PTR(-ENOSYS); |
| 54 | } | 54 | } |
| 55 | #endif | 55 | #endif |
| 56 | 56 | ||
| @@ -65,13 +65,13 @@ unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq); | |||
| 65 | static inline struct thermal_cooling_device * | 65 | static inline struct thermal_cooling_device * |
| 66 | cpufreq_cooling_register(const struct cpumask *clip_cpus) | 66 | cpufreq_cooling_register(const struct cpumask *clip_cpus) |
| 67 | { | 67 | { |
| 68 | return NULL; | 68 | return ERR_PTR(-ENOSYS); |
| 69 | } | 69 | } |
| 70 | static inline struct thermal_cooling_device * | 70 | static inline struct thermal_cooling_device * |
| 71 | of_cpufreq_cooling_register(struct device_node *np, | 71 | of_cpufreq_cooling_register(struct device_node *np, |
| 72 | const struct cpumask *clip_cpus) | 72 | const struct cpumask *clip_cpus) |
| 73 | { | 73 | { |
| 74 | return NULL; | 74 | return ERR_PTR(-ENOSYS); |
| 75 | } | 75 | } |
| 76 | static inline | 76 | static inline |
| 77 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) | 77 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index a07e087f54b2..ab70f3bc44ad 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -53,7 +53,6 @@ struct cpuidle_state { | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | /* Idle State Flags */ | 55 | /* Idle State Flags */ |
| 56 | #define CPUIDLE_FLAG_TIME_INVALID (0x01) /* is residency time measurable? */ | ||
| 57 | #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */ | 56 | #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */ |
| 58 | #define CPUIDLE_FLAG_TIMER_STOP (0x04) /* timer is stopped on this state */ | 57 | #define CPUIDLE_FLAG_TIMER_STOP (0x04) /* timer is stopped on this state */ |
| 59 | 58 | ||
| @@ -89,8 +88,6 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev); | |||
| 89 | /** | 88 | /** |
| 90 | * cpuidle_get_last_residency - retrieves the last state's residency time | 89 | * cpuidle_get_last_residency - retrieves the last state's residency time |
| 91 | * @dev: the target CPU | 90 | * @dev: the target CPU |
| 92 | * | ||
| 93 | * NOTE: this value is invalid if CPUIDLE_FLAG_TIME_INVALID is set | ||
| 94 | */ | 91 | */ |
| 95 | static inline int cpuidle_get_last_residency(struct cpuidle_device *dev) | 92 | static inline int cpuidle_get_last_residency(struct cpuidle_device *dev) |
| 96 | { | 93 | { |
diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h index 575a86c7fcbd..f742b6717d52 100644 --- a/include/linux/mfd/stmpe.h +++ b/include/linux/mfd/stmpe.h | |||
| @@ -50,6 +50,8 @@ enum { | |||
| 50 | STMPE_IDX_GPEDR_MSB, | 50 | STMPE_IDX_GPEDR_MSB, |
| 51 | STMPE_IDX_GPRER_LSB, | 51 | STMPE_IDX_GPRER_LSB, |
| 52 | STMPE_IDX_GPFER_LSB, | 52 | STMPE_IDX_GPFER_LSB, |
| 53 | STMPE_IDX_GPPUR_LSB, | ||
| 54 | STMPE_IDX_GPPDR_LSB, | ||
| 53 | STMPE_IDX_GPAFR_U_MSB, | 55 | STMPE_IDX_GPAFR_U_MSB, |
| 54 | STMPE_IDX_IEGPIOR_LSB, | 56 | STMPE_IDX_IEGPIOR_LSB, |
| 55 | STMPE_IDX_ISGPIOR_LSB, | 57 | STMPE_IDX_ISGPIOR_LSB, |
| @@ -113,24 +115,6 @@ extern int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins, | |||
| 113 | extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks); | 115 | extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks); |
| 114 | extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); | 116 | extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); |
| 115 | 117 | ||
| 116 | struct matrix_keymap_data; | ||
| 117 | |||
| 118 | /** | ||
| 119 | * struct stmpe_keypad_platform_data - STMPE keypad platform data | ||
| 120 | * @keymap_data: key map table and size | ||
| 121 | * @debounce_ms: debounce interval, in ms. Maximum is | ||
| 122 | * %STMPE_KEYPAD_MAX_DEBOUNCE. | ||
| 123 | * @scan_count: number of key scanning cycles to confirm key data. | ||
| 124 | * Maximum is %STMPE_KEYPAD_MAX_SCAN_COUNT. | ||
| 125 | * @no_autorepeat: disable key autorepeat | ||
| 126 | */ | ||
| 127 | struct stmpe_keypad_platform_data { | ||
| 128 | const struct matrix_keymap_data *keymap_data; | ||
| 129 | unsigned int debounce_ms; | ||
| 130 | unsigned int scan_count; | ||
| 131 | bool no_autorepeat; | ||
| 132 | }; | ||
| 133 | |||
| 134 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) | 118 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) |
| 135 | 119 | ||
| 136 | /** | 120 | /** |
| @@ -199,7 +183,6 @@ struct stmpe_ts_platform_data { | |||
| 199 | * @irq_gpio: gpio number over which irq will be requested (significant only if | 183 | * @irq_gpio: gpio number over which irq will be requested (significant only if |
| 200 | * irq_over_gpio is true) | 184 | * irq_over_gpio is true) |
| 201 | * @gpio: GPIO-specific platform data | 185 | * @gpio: GPIO-specific platform data |
| 202 | * @keypad: keypad-specific platform data | ||
| 203 | * @ts: touchscreen-specific platform data | 186 | * @ts: touchscreen-specific platform data |
| 204 | */ | 187 | */ |
| 205 | struct stmpe_platform_data { | 188 | struct stmpe_platform_data { |
| @@ -212,7 +195,6 @@ struct stmpe_platform_data { | |||
| 212 | int autosleep_timeout; | 195 | int autosleep_timeout; |
| 213 | 196 | ||
| 214 | struct stmpe_gpio_platform_data *gpio; | 197 | struct stmpe_gpio_platform_data *gpio; |
| 215 | struct stmpe_keypad_platform_data *keypad; | ||
| 216 | struct stmpe_ts_platform_data *ts; | 198 | struct stmpe_ts_platform_data *ts; |
| 217 | }; | 199 | }; |
| 218 | 200 | ||
diff --git a/include/linux/mm.h b/include/linux/mm.h index f80d0194c9bc..80fc92a49649 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1952,7 +1952,7 @@ extern int expand_downwards(struct vm_area_struct *vma, | |||
| 1952 | #if VM_GROWSUP | 1952 | #if VM_GROWSUP |
| 1953 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); | 1953 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); |
| 1954 | #else | 1954 | #else |
| 1955 | #define expand_upwards(vma, address) do { } while (0) | 1955 | #define expand_upwards(vma, address) (0) |
| 1956 | #endif | 1956 | #endif |
| 1957 | 1957 | ||
| 1958 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ | 1958 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index c31f74d76ebd..679e6e90aa4c 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1012,12 +1012,15 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, | |||
| 1012 | * Callback to use for xmit over the accelerated station. This | 1012 | * Callback to use for xmit over the accelerated station. This |
| 1013 | * is used in place of ndo_start_xmit on accelerated net | 1013 | * is used in place of ndo_start_xmit on accelerated net |
| 1014 | * devices. | 1014 | * devices. |
| 1015 | * bool (*ndo_gso_check) (struct sk_buff *skb, | 1015 | * netdev_features_t (*ndo_features_check) (struct sk_buff *skb, |
| 1016 | * struct net_device *dev); | 1016 | * struct net_device *dev |
| 1017 | * netdev_features_t features); | ||
| 1017 | * Called by core transmit path to determine if device is capable of | 1018 | * Called by core transmit path to determine if device is capable of |
| 1018 | * performing GSO on a packet. The device returns true if it is | 1019 | * performing offload operations on a given packet. This is to give |
| 1019 | * able to GSO the packet, false otherwise. If the return value is | 1020 | * the device an opportunity to implement any restrictions that cannot |
| 1020 | * false the stack will do software GSO. | 1021 | * be otherwise expressed by feature flags. The check is called with |
| 1022 | * the set of features that the stack has calculated and it returns | ||
| 1023 | * those the driver believes to be appropriate. | ||
| 1021 | * | 1024 | * |
| 1022 | * int (*ndo_switch_parent_id_get)(struct net_device *dev, | 1025 | * int (*ndo_switch_parent_id_get)(struct net_device *dev, |
| 1023 | * struct netdev_phys_item_id *psid); | 1026 | * struct netdev_phys_item_id *psid); |
| @@ -1178,8 +1181,9 @@ struct net_device_ops { | |||
| 1178 | struct net_device *dev, | 1181 | struct net_device *dev, |
| 1179 | void *priv); | 1182 | void *priv); |
| 1180 | int (*ndo_get_lock_subclass)(struct net_device *dev); | 1183 | int (*ndo_get_lock_subclass)(struct net_device *dev); |
| 1181 | bool (*ndo_gso_check) (struct sk_buff *skb, | 1184 | netdev_features_t (*ndo_features_check) (struct sk_buff *skb, |
| 1182 | struct net_device *dev); | 1185 | struct net_device *dev, |
| 1186 | netdev_features_t features); | ||
| 1183 | #ifdef CONFIG_NET_SWITCHDEV | 1187 | #ifdef CONFIG_NET_SWITCHDEV |
| 1184 | int (*ndo_switch_parent_id_get)(struct net_device *dev, | 1188 | int (*ndo_switch_parent_id_get)(struct net_device *dev, |
| 1185 | struct netdev_phys_item_id *psid); | 1189 | struct netdev_phys_item_id *psid); |
| @@ -3611,8 +3615,6 @@ static inline bool netif_needs_gso(struct net_device *dev, struct sk_buff *skb, | |||
| 3611 | netdev_features_t features) | 3615 | netdev_features_t features) |
| 3612 | { | 3616 | { |
| 3613 | return skb_is_gso(skb) && (!skb_gso_ok(skb, features) || | 3617 | return skb_is_gso(skb) && (!skb_gso_ok(skb, features) || |
| 3614 | (dev->netdev_ops->ndo_gso_check && | ||
| 3615 | !dev->netdev_ops->ndo_gso_check(skb, dev)) || | ||
| 3616 | unlikely((skb->ip_summed != CHECKSUM_PARTIAL) && | 3618 | unlikely((skb->ip_summed != CHECKSUM_PARTIAL) && |
| 3617 | (skb->ip_summed != CHECKSUM_UNNECESSARY))); | 3619 | (skb->ip_summed != CHECKSUM_UNNECESSARY))); |
| 3618 | } | 3620 | } |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 9e572daa15d5..02fc86d2348e 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -46,8 +46,8 @@ struct netlink_kernel_cfg { | |||
| 46 | unsigned int flags; | 46 | unsigned int flags; |
| 47 | void (*input)(struct sk_buff *skb); | 47 | void (*input)(struct sk_buff *skb); |
| 48 | struct mutex *cb_mutex; | 48 | struct mutex *cb_mutex; |
| 49 | int (*bind)(int group); | 49 | int (*bind)(struct net *net, int group); |
| 50 | void (*unbind)(int group); | 50 | void (*unbind)(struct net *net, int group); |
| 51 | bool (*compare)(struct net *net, struct sock *sk); | 51 | bool (*compare)(struct net *net, struct sock *sk); |
| 52 | }; | 52 | }; |
| 53 | 53 | ||
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 7ea069cd3257..4b3736f7065c 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
| @@ -251,7 +251,7 @@ pgoff_t page_cache_prev_hole(struct address_space *mapping, | |||
| 251 | #define FGP_NOWAIT 0x00000020 | 251 | #define FGP_NOWAIT 0x00000020 |
| 252 | 252 | ||
| 253 | struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, | 253 | struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, |
| 254 | int fgp_flags, gfp_t cache_gfp_mask, gfp_t radix_gfp_mask); | 254 | int fgp_flags, gfp_t cache_gfp_mask); |
| 255 | 255 | ||
| 256 | /** | 256 | /** |
| 257 | * find_get_page - find and get a page reference | 257 | * find_get_page - find and get a page reference |
| @@ -266,13 +266,13 @@ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, | |||
| 266 | static inline struct page *find_get_page(struct address_space *mapping, | 266 | static inline struct page *find_get_page(struct address_space *mapping, |
| 267 | pgoff_t offset) | 267 | pgoff_t offset) |
| 268 | { | 268 | { |
| 269 | return pagecache_get_page(mapping, offset, 0, 0, 0); | 269 | return pagecache_get_page(mapping, offset, 0, 0); |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | static inline struct page *find_get_page_flags(struct address_space *mapping, | 272 | static inline struct page *find_get_page_flags(struct address_space *mapping, |
| 273 | pgoff_t offset, int fgp_flags) | 273 | pgoff_t offset, int fgp_flags) |
| 274 | { | 274 | { |
| 275 | return pagecache_get_page(mapping, offset, fgp_flags, 0, 0); | 275 | return pagecache_get_page(mapping, offset, fgp_flags, 0); |
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | /** | 278 | /** |
| @@ -292,7 +292,7 @@ static inline struct page *find_get_page_flags(struct address_space *mapping, | |||
| 292 | static inline struct page *find_lock_page(struct address_space *mapping, | 292 | static inline struct page *find_lock_page(struct address_space *mapping, |
| 293 | pgoff_t offset) | 293 | pgoff_t offset) |
| 294 | { | 294 | { |
| 295 | return pagecache_get_page(mapping, offset, FGP_LOCK, 0, 0); | 295 | return pagecache_get_page(mapping, offset, FGP_LOCK, 0); |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | /** | 298 | /** |
| @@ -319,7 +319,7 @@ static inline struct page *find_or_create_page(struct address_space *mapping, | |||
| 319 | { | 319 | { |
| 320 | return pagecache_get_page(mapping, offset, | 320 | return pagecache_get_page(mapping, offset, |
| 321 | FGP_LOCK|FGP_ACCESSED|FGP_CREAT, | 321 | FGP_LOCK|FGP_ACCESSED|FGP_CREAT, |
| 322 | gfp_mask, gfp_mask & GFP_RECLAIM_MASK); | 322 | gfp_mask); |
| 323 | } | 323 | } |
| 324 | 324 | ||
| 325 | /** | 325 | /** |
| @@ -340,8 +340,7 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping, | |||
| 340 | { | 340 | { |
| 341 | return pagecache_get_page(mapping, index, | 341 | return pagecache_get_page(mapping, index, |
| 342 | FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT, | 342 | FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT, |
| 343 | mapping_gfp_mask(mapping), | 343 | mapping_gfp_mask(mapping)); |
| 344 | GFP_NOFS); | ||
| 345 | } | 344 | } |
| 346 | 345 | ||
| 347 | struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); | 346 | struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); |
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 6cd20d5e651b..a9edab2c787a 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h | |||
| @@ -271,6 +271,8 @@ typedef struct generic_pm_domain *(*genpd_xlate_t)(struct of_phandle_args *args, | |||
| 271 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, | 271 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, |
| 272 | void *data); | 272 | void *data); |
| 273 | void of_genpd_del_provider(struct device_node *np); | 273 | void of_genpd_del_provider(struct device_node *np); |
| 274 | struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 275 | struct of_phandle_args *genpdspec); | ||
| 274 | 276 | ||
| 275 | struct generic_pm_domain *__of_genpd_xlate_simple( | 277 | struct generic_pm_domain *__of_genpd_xlate_simple( |
| 276 | struct of_phandle_args *genpdspec, | 278 | struct of_phandle_args *genpdspec, |
| @@ -288,6 +290,12 @@ static inline int __of_genpd_add_provider(struct device_node *np, | |||
| 288 | } | 290 | } |
| 289 | static inline void of_genpd_del_provider(struct device_node *np) {} | 291 | static inline void of_genpd_del_provider(struct device_node *np) {} |
| 290 | 292 | ||
| 293 | static inline struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 294 | struct of_phandle_args *genpdspec) | ||
| 295 | { | ||
| 296 | return NULL; | ||
| 297 | } | ||
| 298 | |||
| 291 | #define __of_genpd_xlate_simple NULL | 299 | #define __of_genpd_xlate_simple NULL |
| 292 | #define __of_genpd_xlate_onecell NULL | 300 | #define __of_genpd_xlate_onecell NULL |
| 293 | 301 | ||
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index c611a02fbc51..fc52e307efab 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | #define THERMAL_CSTATE_INVALID -1UL | 38 | #define THERMAL_CSTATE_INVALID -1UL |
| 39 | 39 | ||
| 40 | /* No upper/lower limit requirement */ | 40 | /* No upper/lower limit requirement */ |
| 41 | #define THERMAL_NO_LIMIT THERMAL_CSTATE_INVALID | 41 | #define THERMAL_NO_LIMIT ((u32)~0) |
| 42 | 42 | ||
| 43 | /* Unit conversion macros */ | 43 | /* Unit conversion macros */ |
| 44 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ | 44 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ |
diff --git a/include/net/genetlink.h b/include/net/genetlink.h index af10c2cf8a1d..84125088c309 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h | |||
| @@ -31,6 +31,9 @@ struct genl_info; | |||
| 31 | * do additional, common, filtering and return an error | 31 | * do additional, common, filtering and return an error |
| 32 | * @post_doit: called after an operation's doit callback, it may | 32 | * @post_doit: called after an operation's doit callback, it may |
| 33 | * undo operations done by pre_doit, for example release locks | 33 | * undo operations done by pre_doit, for example release locks |
| 34 | * @mcast_bind: a socket bound to the given multicast group (which | ||
| 35 | * is given as the offset into the groups array) | ||
| 36 | * @mcast_unbind: a socket was unbound from the given multicast group | ||
| 34 | * @attrbuf: buffer to store parsed attributes | 37 | * @attrbuf: buffer to store parsed attributes |
| 35 | * @family_list: family list | 38 | * @family_list: family list |
| 36 | * @mcgrps: multicast groups used by this family (private) | 39 | * @mcgrps: multicast groups used by this family (private) |
| @@ -53,6 +56,8 @@ struct genl_family { | |||
| 53 | void (*post_doit)(const struct genl_ops *ops, | 56 | void (*post_doit)(const struct genl_ops *ops, |
| 54 | struct sk_buff *skb, | 57 | struct sk_buff *skb, |
| 55 | struct genl_info *info); | 58 | struct genl_info *info); |
| 59 | int (*mcast_bind)(struct net *net, int group); | ||
| 60 | void (*mcast_unbind)(struct net *net, int group); | ||
| 56 | struct nlattr ** attrbuf; /* private */ | 61 | struct nlattr ** attrbuf; /* private */ |
| 57 | const struct genl_ops * ops; /* private */ | 62 | const struct genl_ops * ops; /* private */ |
| 58 | const struct genl_multicast_group *mcgrps; /* private */ | 63 | const struct genl_multicast_group *mcgrps; /* private */ |
| @@ -395,11 +400,11 @@ static inline int genl_set_err(struct genl_family *family, struct net *net, | |||
| 395 | } | 400 | } |
| 396 | 401 | ||
| 397 | static inline int genl_has_listeners(struct genl_family *family, | 402 | static inline int genl_has_listeners(struct genl_family *family, |
| 398 | struct sock *sk, unsigned int group) | 403 | struct net *net, unsigned int group) |
| 399 | { | 404 | { |
| 400 | if (WARN_ON_ONCE(group >= family->n_mcgrps)) | 405 | if (WARN_ON_ONCE(group >= family->n_mcgrps)) |
| 401 | return -EINVAL; | 406 | return -EINVAL; |
| 402 | group = family->mcgrp_offset + group; | 407 | group = family->mcgrp_offset + group; |
| 403 | return netlink_has_listeners(sk, group); | 408 | return netlink_has_listeners(net->genl_sock, group); |
| 404 | } | 409 | } |
| 405 | #endif /* __NET_GENERIC_NETLINK_H */ | 410 | #endif /* __NET_GENERIC_NETLINK_H */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 58d719ddaa60..29c7be8808d5 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -1270,8 +1270,7 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev); | |||
| 1270 | * | 1270 | * |
| 1271 | * @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the | 1271 | * @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the |
| 1272 | * driver to indicate that it requires IV generation for this | 1272 | * driver to indicate that it requires IV generation for this |
| 1273 | * particular key. Setting this flag does not necessarily mean that SKBs | 1273 | * particular key. |
| 1274 | * will have sufficient tailroom for ICV or MIC. | ||
| 1275 | * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by | 1274 | * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by |
| 1276 | * the driver for a TKIP key if it requires Michael MIC | 1275 | * the driver for a TKIP key if it requires Michael MIC |
| 1277 | * generation in software. | 1276 | * generation in software. |
| @@ -1283,9 +1282,7 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev); | |||
| 1283 | * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver | 1282 | * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver |
| 1284 | * if space should be prepared for the IV, but the IV | 1283 | * if space should be prepared for the IV, but the IV |
| 1285 | * itself should not be generated. Do not set together with | 1284 | * itself should not be generated. Do not set together with |
| 1286 | * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. Setting this flag does | 1285 | * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. |
| 1287 | * not necessarily mean that SKBs will have sufficient tailroom for ICV or | ||
| 1288 | * MIC. | ||
| 1289 | * @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received | 1286 | * @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received |
| 1290 | * management frames. The flag can help drivers that have a hardware | 1287 | * management frames. The flag can help drivers that have a hardware |
| 1291 | * crypto implementation that doesn't deal with management frames | 1288 | * crypto implementation that doesn't deal with management frames |
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index eb070b3674a1..76f708486aae 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
| @@ -190,7 +190,6 @@ struct neigh_hash_table { | |||
| 190 | 190 | ||
| 191 | 191 | ||
| 192 | struct neigh_table { | 192 | struct neigh_table { |
| 193 | struct neigh_table *next; | ||
| 194 | int family; | 193 | int family; |
| 195 | int entry_size; | 194 | int entry_size; |
| 196 | int key_len; | 195 | int key_len; |
diff --git a/include/net/vxlan.h b/include/net/vxlan.h index 57cccd0052e5..903461aa5644 100644 --- a/include/net/vxlan.h +++ b/include/net/vxlan.h | |||
| @@ -1,6 +1,9 @@ | |||
| 1 | #ifndef __NET_VXLAN_H | 1 | #ifndef __NET_VXLAN_H |
| 2 | #define __NET_VXLAN_H 1 | 2 | #define __NET_VXLAN_H 1 |
| 3 | 3 | ||
| 4 | #include <linux/ip.h> | ||
| 5 | #include <linux/ipv6.h> | ||
| 6 | #include <linux/if_vlan.h> | ||
| 4 | #include <linux/skbuff.h> | 7 | #include <linux/skbuff.h> |
| 5 | #include <linux/netdevice.h> | 8 | #include <linux/netdevice.h> |
| 6 | #include <linux/udp.h> | 9 | #include <linux/udp.h> |
| @@ -51,16 +54,33 @@ int vxlan_xmit_skb(struct vxlan_sock *vs, | |||
| 51 | __be32 src, __be32 dst, __u8 tos, __u8 ttl, __be16 df, | 54 | __be32 src, __be32 dst, __u8 tos, __u8 ttl, __be16 df, |
| 52 | __be16 src_port, __be16 dst_port, __be32 vni, bool xnet); | 55 | __be16 src_port, __be16 dst_port, __be32 vni, bool xnet); |
| 53 | 56 | ||
| 54 | static inline bool vxlan_gso_check(struct sk_buff *skb) | 57 | static inline netdev_features_t vxlan_features_check(struct sk_buff *skb, |
| 58 | netdev_features_t features) | ||
| 55 | { | 59 | { |
| 56 | if ((skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL) && | 60 | u8 l4_hdr = 0; |
| 61 | |||
| 62 | if (!skb->encapsulation) | ||
| 63 | return features; | ||
| 64 | |||
| 65 | switch (vlan_get_protocol(skb)) { | ||
| 66 | case htons(ETH_P_IP): | ||
| 67 | l4_hdr = ip_hdr(skb)->protocol; | ||
| 68 | break; | ||
| 69 | case htons(ETH_P_IPV6): | ||
| 70 | l4_hdr = ipv6_hdr(skb)->nexthdr; | ||
| 71 | break; | ||
| 72 | default: | ||
| 73 | return features;; | ||
| 74 | } | ||
| 75 | |||
| 76 | if ((l4_hdr == IPPROTO_UDP) && | ||
| 57 | (skb->inner_protocol_type != ENCAP_TYPE_ETHER || | 77 | (skb->inner_protocol_type != ENCAP_TYPE_ETHER || |
| 58 | skb->inner_protocol != htons(ETH_P_TEB) || | 78 | skb->inner_protocol != htons(ETH_P_TEB) || |
| 59 | (skb_inner_mac_header(skb) - skb_transport_header(skb) != | 79 | (skb_inner_mac_header(skb) - skb_transport_header(skb) != |
| 60 | sizeof(struct udphdr) + sizeof(struct vxlanhdr)))) | 80 | sizeof(struct udphdr) + sizeof(struct vxlanhdr)))) |
| 61 | return false; | 81 | return features & ~(NETIF_F_ALL_CSUM | NETIF_F_GSO_MASK); |
| 62 | 82 | ||
| 63 | return true; | 83 | return features; |
| 64 | } | 84 | } |
| 65 | 85 | ||
| 66 | /* IP header + UDP + VXLAN + Ethernet header */ | 86 | /* IP header + UDP + VXLAN + Ethernet header */ |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 1e7f74acc2ec..b429b73e875e 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
| @@ -857,7 +857,7 @@ static inline unsigned int params_channels(const struct snd_pcm_hw_params *p) | |||
| 857 | } | 857 | } |
| 858 | 858 | ||
| 859 | /** | 859 | /** |
| 860 | * params_channels - Get the sample rate from the hw params | 860 | * params_rate - Get the sample rate from the hw params |
| 861 | * @p: hw params | 861 | * @p: hw params |
| 862 | */ | 862 | */ |
| 863 | static inline unsigned int params_rate(const struct snd_pcm_hw_params *p) | 863 | static inline unsigned int params_rate(const struct snd_pcm_hw_params *p) |
| @@ -866,7 +866,7 @@ static inline unsigned int params_rate(const struct snd_pcm_hw_params *p) | |||
| 866 | } | 866 | } |
| 867 | 867 | ||
| 868 | /** | 868 | /** |
| 869 | * params_channels - Get the period size (in frames) from the hw params | 869 | * params_period_size - Get the period size (in frames) from the hw params |
| 870 | * @p: hw params | 870 | * @p: hw params |
| 871 | */ | 871 | */ |
| 872 | static inline unsigned int params_period_size(const struct snd_pcm_hw_params *p) | 872 | static inline unsigned int params_period_size(const struct snd_pcm_hw_params *p) |
| @@ -875,7 +875,7 @@ static inline unsigned int params_period_size(const struct snd_pcm_hw_params *p) | |||
| 875 | } | 875 | } |
| 876 | 876 | ||
| 877 | /** | 877 | /** |
| 878 | * params_channels - Get the number of periods from the hw params | 878 | * params_periods - Get the number of periods from the hw params |
| 879 | * @p: hw params | 879 | * @p: hw params |
| 880 | */ | 880 | */ |
| 881 | static inline unsigned int params_periods(const struct snd_pcm_hw_params *p) | 881 | static inline unsigned int params_periods(const struct snd_pcm_hw_params *p) |
| @@ -884,7 +884,7 @@ static inline unsigned int params_periods(const struct snd_pcm_hw_params *p) | |||
| 884 | } | 884 | } |
| 885 | 885 | ||
| 886 | /** | 886 | /** |
| 887 | * params_channels - Get the buffer size (in frames) from the hw params | 887 | * params_buffer_size - Get the buffer size (in frames) from the hw params |
| 888 | * @p: hw params | 888 | * @p: hw params |
| 889 | */ | 889 | */ |
| 890 | static inline unsigned int params_buffer_size(const struct snd_pcm_hw_params *p) | 890 | static inline unsigned int params_buffer_size(const struct snd_pcm_hw_params *p) |
| @@ -893,7 +893,7 @@ static inline unsigned int params_buffer_size(const struct snd_pcm_hw_params *p) | |||
| 893 | } | 893 | } |
| 894 | 894 | ||
| 895 | /** | 895 | /** |
| 896 | * params_channels - Get the buffer size (in bytes) from the hw params | 896 | * params_buffer_bytes - Get the buffer size (in bytes) from the hw params |
| 897 | * @p: hw params | 897 | * @p: hw params |
| 898 | */ | 898 | */ |
| 899 | static inline unsigned int params_buffer_bytes(const struct snd_pcm_hw_params *p) | 899 | static inline unsigned int params_buffer_bytes(const struct snd_pcm_hw_params *p) |
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 74a2a1773494..79b12b004ade 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h | |||
| @@ -149,7 +149,7 @@ struct in6_flowlabel_req { | |||
| 149 | /* | 149 | /* |
| 150 | * IPV6 socket options | 150 | * IPV6 socket options |
| 151 | */ | 151 | */ |
| 152 | 152 | #if __UAPI_DEF_IPV6_OPTIONS | |
| 153 | #define IPV6_ADDRFORM 1 | 153 | #define IPV6_ADDRFORM 1 |
| 154 | #define IPV6_2292PKTINFO 2 | 154 | #define IPV6_2292PKTINFO 2 |
| 155 | #define IPV6_2292HOPOPTS 3 | 155 | #define IPV6_2292HOPOPTS 3 |
| @@ -196,6 +196,7 @@ struct in6_flowlabel_req { | |||
| 196 | 196 | ||
| 197 | #define IPV6_IPSEC_POLICY 34 | 197 | #define IPV6_IPSEC_POLICY 34 |
| 198 | #define IPV6_XFRM_POLICY 35 | 198 | #define IPV6_XFRM_POLICY 35 |
| 199 | #endif | ||
| 199 | 200 | ||
| 200 | /* | 201 | /* |
| 201 | * Multicast: | 202 | * Multicast: |
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index c140620dad92..e28807ad17fa 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h | |||
| @@ -69,6 +69,7 @@ | |||
| 69 | #define __UAPI_DEF_SOCKADDR_IN6 0 | 69 | #define __UAPI_DEF_SOCKADDR_IN6 0 |
| 70 | #define __UAPI_DEF_IPV6_MREQ 0 | 70 | #define __UAPI_DEF_IPV6_MREQ 0 |
| 71 | #define __UAPI_DEF_IPPROTO_V6 0 | 71 | #define __UAPI_DEF_IPPROTO_V6 0 |
| 72 | #define __UAPI_DEF_IPV6_OPTIONS 0 | ||
| 72 | 73 | ||
| 73 | #else | 74 | #else |
| 74 | 75 | ||
| @@ -82,6 +83,7 @@ | |||
| 82 | #define __UAPI_DEF_SOCKADDR_IN6 1 | 83 | #define __UAPI_DEF_SOCKADDR_IN6 1 |
| 83 | #define __UAPI_DEF_IPV6_MREQ 1 | 84 | #define __UAPI_DEF_IPV6_MREQ 1 |
| 84 | #define __UAPI_DEF_IPPROTO_V6 1 | 85 | #define __UAPI_DEF_IPPROTO_V6 1 |
| 86 | #define __UAPI_DEF_IPV6_OPTIONS 1 | ||
| 85 | 87 | ||
| 86 | #endif /* _NETINET_IN_H */ | 88 | #endif /* _NETINET_IN_H */ |
| 87 | 89 | ||
| @@ -103,6 +105,7 @@ | |||
| 103 | #define __UAPI_DEF_SOCKADDR_IN6 1 | 105 | #define __UAPI_DEF_SOCKADDR_IN6 1 |
| 104 | #define __UAPI_DEF_IPV6_MREQ 1 | 106 | #define __UAPI_DEF_IPV6_MREQ 1 |
| 105 | #define __UAPI_DEF_IPPROTO_V6 1 | 107 | #define __UAPI_DEF_IPPROTO_V6 1 |
| 108 | #define __UAPI_DEF_IPV6_OPTIONS 1 | ||
| 106 | 109 | ||
| 107 | /* Definitions for xattr.h */ | 110 | /* Definitions for xattr.h */ |
| 108 | #define __UAPI_DEF_XATTR 1 | 111 | #define __UAPI_DEF_XATTR 1 |
diff --git a/include/uapi/linux/virtio_ring.h b/include/uapi/linux/virtio_ring.h index 61c818a7fe70..a3318f31e8e7 100644 --- a/include/uapi/linux/virtio_ring.h +++ b/include/uapi/linux/virtio_ring.h | |||
| @@ -101,6 +101,13 @@ struct vring { | |||
| 101 | struct vring_used *used; | 101 | struct vring_used *used; |
| 102 | }; | 102 | }; |
| 103 | 103 | ||
| 104 | /* Alignment requirements for vring elements. | ||
| 105 | * When using pre-virtio 1.0 layout, these fall out naturally. | ||
| 106 | */ | ||
| 107 | #define VRING_AVAIL_ALIGN_SIZE 2 | ||
| 108 | #define VRING_USED_ALIGN_SIZE 4 | ||
| 109 | #define VRING_DESC_ALIGN_SIZE 16 | ||
| 110 | |||
| 104 | /* The standard layout for the ring is a continuous chunk of memory which looks | 111 | /* The standard layout for the ring is a continuous chunk of memory which looks |
| 105 | * like this. We assume num is a power of 2. | 112 | * like this. We assume num is a power of 2. |
| 106 | * | 113 | * |
