History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

The only slightly tricky merge conflict was the netdevsim because the mutex locking fix overlapped a lot of driver reload reorganization. The rest were (relatively) trivial in nature.

David S. Miller committed 7 years ago

Commit d31e9552 parents c23fcbb 1204c70623 files · +5913 −3528Browse files

Showing the changes to include/linux (20 of 623 files). Show all

Unified · Split

20 files
  1. include/linux/cpufreq.h +5 −2
  2. include/linux/dynamic_debug.h +6 −0
  3. include/linux/efi.h +16 −2
  4. include/linux/export.h +5 −9
  5. include/linux/filter.h +0 −1
  6. include/linux/gfp.h +23 −0
  7. include/linux/if_macvlan.h +0 −1
  8. include/linux/if_team.h +1 −0
  9. include/linux/if_vlan.h +0 −11
  10. include/linux/mlx5/mlx5_ifc.h +1 −2
  11. include/linux/netdevice.h +26 −34
  12. include/linux/perf_event.h +1 −1
  13. include/linux/platform_data/dma-imx-sdma.h +3 −0
  14. include/linux/pm_qos.h +44 −12
  15. include/linux/security.h +1 −0
  16. include/linux/skbuff.h +26 −10
  17. include/linux/socket.h +1 −1
  18. include/linux/sunrpc/bc_xprt.h +5 −0
  19. include/linux/sysfs.h +2 −2
  20. include/linux/virtio_vsock.h +0 −1
include/linux/cpufreq.h+5−2
@@ -13,6 +13,7 @@ · 12 unmodified lines
13#include <linux/completion.h>13#include <linux/completion.h>
14#include <linux/kobject.h>14#include <linux/kobject.h>
15#include <linux/notifier.h>15#include <linux/notifier.h>
16#include <linux/pm_qos.h>
16#include <linux/spinlock.h>17#include <linux/spinlock.h>
17#include <linux/sysfs.h>18#include <linux/sysfs.h>
18 19
@@ -76,8 +77,10 @@ struct cpufreq_policy { · 57 unmodified lines
76 struct work_struct update; /* if update_policy() needs to be77 struct work_struct update; /* if update_policy() needs to be
77 * called, but you're in IRQ context */78 * called, but you're in IRQ context */
78 79
79 struct dev_pm_qos_request *min_freq_req;80 struct freq_constraints constraints;
80 struct dev_pm_qos_request *max_freq_req;81 struct freq_qos_request *min_freq_req;
82 struct freq_qos_request *max_freq_req;
83
81 struct cpufreq_frequency_table *freq_table;84 struct cpufreq_frequency_table *freq_table;
82 enum cpufreq_table_sorting freq_table_sorted;85 enum cpufreq_table_sorting freq_table_sorted;
83 86
include/linux/dynamic_debug.h+6−0
@@ -204,6 +204,12 @@ static inline int ddebug_dyndbg_module_param_cb(char *param, char *val, · 203 unmodified lines
204 do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)204 do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)
205#define dynamic_dev_dbg(dev, fmt, ...) \205#define dynamic_dev_dbg(dev, fmt, ...) \
206 do { if (0) dev_printk(KERN_DEBUG, dev, fmt, ##__VA_ARGS__); } while (0)206 do { if (0) dev_printk(KERN_DEBUG, dev, fmt, ##__VA_ARGS__); } while (0)
207#define dynamic_hex_dump(prefix_str, prefix_type, rowsize, \
208 groupsize, buf, len, ascii) \
209 do { if (0) \
210 print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, \
211 rowsize, groupsize, buf, len, ascii); \
212 } while (0)
207#endif213#endif
208 214
209#endif215#endif
include/linux/efi.h+16−2
@@ -1579,9 +1579,22 @@ char *efi_convert_cmdline(efi_system_table_t *sys_table_arg, · 1578 unmodified lines
1579efi_status_t efi_get_memory_map(efi_system_table_t *sys_table_arg,1579efi_status_t efi_get_memory_map(efi_system_table_t *sys_table_arg,
1580 struct efi_boot_memmap *map);1580 struct efi_boot_memmap *map);
1581 1581
1582efi_status_t efi_low_alloc_above(efi_system_table_t *sys_table_arg,
1583 unsigned long size, unsigned long align,
1584 unsigned long *addr, unsigned long min);
1585
1586static inline
1582efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg,1587efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg,
1583 unsigned long size, unsigned long align,1588 unsigned long size, unsigned long align,
1584 unsigned long *addr);1589 unsigned long *addr)
1590{
1591 /*
1592 * Don't allocate at 0x0. It will confuse code that
1593 * checks pointers against NULL. Skip the first 8
1594 * bytes so we start at a nice even number.
1595 */
1596 return efi_low_alloc_above(sys_table_arg, size, align, addr, 0x8);
1597}
1585 1598
1586efi_status_t efi_high_alloc(efi_system_table_t *sys_table_arg,1599efi_status_t efi_high_alloc(efi_system_table_t *sys_table_arg,
1587 unsigned long size, unsigned long align,1600 unsigned long size, unsigned long align,
@@ -1592,7 +1605,8 @@ efi_status_t efi_relocate_kernel(efi_system_table_t *sys_table_arg, · 4 unmodified lines
1592 unsigned long image_size,1605 unsigned long image_size,
1593 unsigned long alloc_size,1606 unsigned long alloc_size,
1594 unsigned long preferred_addr,1607 unsigned long preferred_addr,
1595 unsigned long alignment);1608 unsigned long alignment,
1609 unsigned long min_addr);
1596 1610
1597efi_status_t handle_cmdline_files(efi_system_table_t *sys_table_arg,1611efi_status_t handle_cmdline_files(efi_system_table_t *sys_table_arg,
1598 efi_loaded_image_t *image,1612 efi_loaded_image_t *image,
include/linux/export.h+5−9
@@ -18,8 +18,6 @@ extern struct module __this_module; · 17 unmodified lines
18#define THIS_MODULE ((struct module *)0)18#define THIS_MODULE ((struct module *)0)
19#endif19#endif
20 20
21#define NS_SEPARATOR "."
22
23#ifdef CONFIG_MODVERSIONS21#ifdef CONFIG_MODVERSIONS
24/* Mark the CRC weak since genksyms apparently decides not to22/* Mark the CRC weak since genksyms apparently decides not to
25 * generate a checksums for some symbols */23 * generate a checksums for some symbols */
@@ -48,11 +46,11 @@ extern struct module __this_module; · 22 unmodified lines
48 * absolute relocations that require runtime processing on relocatable46 * absolute relocations that require runtime processing on relocatable
49 * kernels.47 * kernels.
50 */48 */
51#define __KSYMTAB_ENTRY_NS(sym, sec, ns) \49#define __KSYMTAB_ENTRY_NS(sym, sec) \
52 __ADDRESSABLE(sym) \50 __ADDRESSABLE(sym) \
53 asm(" .section \"___ksymtab" sec "+" #sym "\", \"a\" \n" \51 asm(" .section \"___ksymtab" sec "+" #sym "\", \"a\" \n" \
54 " .balign 4 \n" \52 " .balign 4 \n" \
55 "__ksymtab_" #ns NS_SEPARATOR #sym ": \n" \53 "__ksymtab_" #sym ": \n" \
56 " .long " #sym "- . \n" \54 " .long " #sym "- . \n" \
57 " .long __kstrtab_" #sym "- . \n" \55 " .long __kstrtab_" #sym "- . \n" \
58 " .long __kstrtabns_" #sym "- . \n" \56 " .long __kstrtabns_" #sym "- . \n" \
@@ -74,16 +72,14 @@ struct kernel_symbol { · 15 unmodified lines
74 int namespace_offset;72 int namespace_offset;
75};73};
76#else74#else
77#define __KSYMTAB_ENTRY_NS(sym, sec, ns) \75#define __KSYMTAB_ENTRY_NS(sym, sec) \
78 static const struct kernel_symbol __ksymtab_##sym##__##ns \76 static const struct kernel_symbol __ksymtab_##sym \
79 asm("__ksymtab_" #ns NS_SEPARATOR #sym) \
80 __attribute__((section("___ksymtab" sec "+" #sym), used)) \77 __attribute__((section("___ksymtab" sec "+" #sym), used)) \
81 __aligned(sizeof(void *)) \78 __aligned(sizeof(void *)) \
82 = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }79 = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
83 80
84#define __KSYMTAB_ENTRY(sym, sec) \81#define __KSYMTAB_ENTRY(sym, sec) \
85 static const struct kernel_symbol __ksymtab_##sym \82 static const struct kernel_symbol __ksymtab_##sym \
86 asm("__ksymtab_" #sym) \
87 __attribute__((section("___ksymtab" sec "+" #sym), used)) \83 __attribute__((section("___ksymtab" sec "+" #sym), used)) \
88 __aligned(sizeof(void *)) \84 __aligned(sizeof(void *)) \
89 = { (unsigned long)&sym, __kstrtab_##sym, NULL }85 = { (unsigned long)&sym, __kstrtab_##sym, NULL }
@@ -115,7 +111,7 @@ struct kernel_symbol { · 25 unmodified lines
115 static const char __kstrtabns_##sym[] \111 static const char __kstrtabns_##sym[] \
116 __attribute__((section("__ksymtab_strings"), used, aligned(1))) \112 __attribute__((section("__ksymtab_strings"), used, aligned(1))) \
117 = #ns; \113 = #ns; \
118 __KSYMTAB_ENTRY_NS(sym, sec, ns)114 __KSYMTAB_ENTRY_NS(sym, sec)
119 115
120#define ___EXPORT_SYMBOL(sym, sec) \116#define ___EXPORT_SYMBOL(sym, sec) \
121 ___export_symbol_common(sym, sec); \117 ___export_symbol_common(sym, sec); \
include/linux/filter.h+0−1
@@ -1103,7 +1103,6 @@ static inline void bpf_get_prog_name(const struct bpf_prog *prog, char *sym) · 1102 unmodified lines
1103 1103
1104#endif /* CONFIG_BPF_JIT */1104#endif /* CONFIG_BPF_JIT */
1105 1105
1106void bpf_prog_kallsyms_del_subprogs(struct bpf_prog *fp);
1107void bpf_prog_kallsyms_del_all(struct bpf_prog *fp);1106void bpf_prog_kallsyms_del_all(struct bpf_prog *fp);
1108 1107
1109#define BPF_ANC BIT(15)1108#define BPF_ANC BIT(15)
include/linux/gfp.h+23−0
@@ -325,6 +325,29 @@ static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags) · 324 unmodified lines
325 return !!(gfp_flags & __GFP_DIRECT_RECLAIM);325 return !!(gfp_flags & __GFP_DIRECT_RECLAIM);
326}326}
327 327
328/**
329 * gfpflags_normal_context - is gfp_flags a normal sleepable context?
330 * @gfp_flags: gfp_flags to test
331 *
332 * Test whether @gfp_flags indicates that the allocation is from the
333 * %current context and allowed to sleep.
334 *
335 * An allocation being allowed to block doesn't mean it owns the %current
336 * context. When direct reclaim path tries to allocate memory, the
337 * allocation context is nested inside whatever %current was doing at the
338 * time of the original allocation. The nested allocation may be allowed
339 * to block but modifying anything %current owns can corrupt the outer
340 * context's expectations.
341 *
342 * %true result from this function indicates that the allocation context
343 * can sleep and use anything that's associated with %current.
344 */
345static inline bool gfpflags_normal_context(const gfp_t gfp_flags)
346{
347 return (gfp_flags & (__GFP_DIRECT_RECLAIM | __GFP_MEMALLOC)) ==
348 __GFP_DIRECT_RECLAIM;
349}
350
328#ifdef CONFIG_HIGHMEM351#ifdef CONFIG_HIGHMEM
329#define OPT_ZONE_HIGHMEM ZONE_HIGHMEM352#define OPT_ZONE_HIGHMEM ZONE_HIGHMEM
330#else353#else
include/linux/if_macvlan.h+0−1
@@ -29,7 +29,6 @@ struct macvlan_dev { · 28 unmodified lines
29 netdev_features_t set_features;29 netdev_features_t set_features;
30 enum macvlan_mode mode;30 enum macvlan_mode mode;
31 u16 flags;31 u16 flags;
32 int nest_level;
33 unsigned int macaddr_count;32 unsigned int macaddr_count;
34#ifdef CONFIG_NET_POLL_CONTROLLER33#ifdef CONFIG_NET_POLL_CONTROLLER
35 struct netpoll *netpoll;34 struct netpoll *netpoll;
include/linux/if_team.h+1−0
@@ -223,6 +223,7 @@ struct team { · 222 unmodified lines
223 atomic_t count_pending;223 atomic_t count_pending;
224 struct delayed_work dw;224 struct delayed_work dw;
225 } mcast_rejoin;225 } mcast_rejoin;
226 struct lock_class_key team_lock_key;
226 long mode_priv[TEAM_MODE_PRIV_LONGS];227 long mode_priv[TEAM_MODE_PRIV_LONGS];
227};228};
228 229
include/linux/if_vlan.h+0−11
@@ -182,7 +182,6 @@ struct vlan_dev_priv { · 181 unmodified lines
182#ifdef CONFIG_NET_POLL_CONTROLLER182#ifdef CONFIG_NET_POLL_CONTROLLER
183 struct netpoll *netpoll;183 struct netpoll *netpoll;
184#endif184#endif
185 unsigned int nest_level;
186};185};
187 186
188static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev)187static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev)
@@ -221,11 +220,6 @@ extern void vlan_vids_del_by_dev(struct net_device *dev, · 32 unmodified lines
221 220
222extern bool vlan_uses_dev(const struct net_device *dev);221extern bool vlan_uses_dev(const struct net_device *dev);
223 222
224static inline int vlan_get_encap_level(struct net_device *dev)
225{
226 BUG_ON(!is_vlan_dev(dev));
227 return vlan_dev_priv(dev)->nest_level;
228}
229#else223#else
230static inline struct net_device *224static inline struct net_device *
231__vlan_find_dev_deep_rcu(struct net_device *real_dev,225__vlan_find_dev_deep_rcu(struct net_device *real_dev,
@@ -295,11 +289,6 @@ static inline bool vlan_uses_dev(const struct net_device *dev) · 63 unmodified lines
295{289{
296 return false;290 return false;
297}291}
298static inline int vlan_get_encap_level(struct net_device *dev)
299{
300 BUG();
301 return 0;
302}
303#endif292#endif
304 293
305/**294/**
include/linux/mlx5/mlx5_ifc.h+1−2
@@ -1545,9 +1545,8 @@ struct mlx5_ifc_extended_dest_format_bits { · 1544 unmodified lines
1545};1545};
1546 1546
1547union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {1547union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1548 struct mlx5_ifc_dest_format_struct_bits dest_format_struct;1548 struct mlx5_ifc_extended_dest_format_bits extended_dest_format;
1549 struct mlx5_ifc_flow_counter_list_bits flow_counter_list;1549 struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1550 u8 reserved_at_0[0x40];
1551};1550};
1552 1551
1553struct mlx5_ifc_fte_match_param_bits {1552struct mlx5_ifc_fte_match_param_bits {
include/linux/netdevice.h+26−34
@@ -1431,7 +1431,6 @@ struct net_device_ops { · 1430 unmodified lines
1431 void (*ndo_dfwd_del_station)(struct net_device *pdev,1431 void (*ndo_dfwd_del_station)(struct net_device *pdev,
1432 void *priv);1432 void *priv);
1433 1433
1434 int (*ndo_get_lock_subclass)(struct net_device *dev);
1435 int (*ndo_set_tx_maxrate)(struct net_device *dev,1434 int (*ndo_set_tx_maxrate)(struct net_device *dev,
1436 int queue_index,1435 int queue_index,
1437 u32 maxrate);1436 u32 maxrate);
@@ -1659,6 +1658,8 @@ enum netdev_priv_flags { · 221 unmodified lines
1659 * @perm_addr: Permanent hw address1658 * @perm_addr: Permanent hw address
1660 * @addr_assign_type: Hw address assignment type1659 * @addr_assign_type: Hw address assignment type
1661 * @addr_len: Hardware address length1660 * @addr_len: Hardware address length
1661 * @upper_level: Maximum depth level of upper devices.
1662 * @lower_level: Maximum depth level of lower devices.
1662 * @neigh_priv_len: Used in neigh_alloc()1663 * @neigh_priv_len: Used in neigh_alloc()
1663 * @dev_id: Used to differentiate devices that share1664 * @dev_id: Used to differentiate devices that share
1664 * the same link layer address1665 * the same link layer address
@@ -1768,9 +1769,13 @@ enum netdev_priv_flags { · 103 unmodified lines
1768 * @phydev: Physical device may attach itself1769 * @phydev: Physical device may attach itself
1769 * for hardware timestamping1770 * for hardware timestamping
1770 * @sfp_bus: attached &struct sfp_bus structure.1771 * @sfp_bus: attached &struct sfp_bus structure.
1771 *1772 * @qdisc_tx_busylock_key: lockdep class annotating Qdisc->busylock
1772 * @qdisc_tx_busylock: lockdep class annotating Qdisc->busylock spinlock1773 spinlock
1773 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount1774 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
1775 * @qdisc_xmit_lock_key: lockdep class annotating
1776 * netdev_queue->_xmit_lock spinlock
1777 * @addr_list_lock_key: lockdep class annotating
1778 * net_device->addr_list_lock spinlock
1774 *1779 *
1775 * @proto_down: protocol port state information can be sent to the1780 * @proto_down: protocol port state information can be sent to the
1776 * switch driver and used to set the phys state of the1781 * switch driver and used to set the phys state of the
@@ -1885,6 +1890,8 @@ struct net_device { · 108 unmodified lines
1885 unsigned char perm_addr[MAX_ADDR_LEN];1890 unsigned char perm_addr[MAX_ADDR_LEN];
1886 unsigned char addr_assign_type;1891 unsigned char addr_assign_type;
1887 unsigned char addr_len;1892 unsigned char addr_len;
1893 unsigned char upper_level;
1894 unsigned char lower_level;
1888 unsigned short neigh_priv_len;1895 unsigned short neigh_priv_len;
1889 unsigned short dev_id;1896 unsigned short dev_id;
1890 unsigned short dev_port;1897 unsigned short dev_port;
@@ -2055,8 +2062,10 @@ struct net_device { · 164 unmodified lines
2055#endif2062#endif
2056 struct phy_device *phydev;2063 struct phy_device *phydev;
2057 struct sfp_bus *sfp_bus;2064 struct sfp_bus *sfp_bus;
2058 struct lock_class_key *qdisc_tx_busylock;2065 struct lock_class_key qdisc_tx_busylock_key;
2059 struct lock_class_key *qdisc_running_key;2066 struct lock_class_key qdisc_running_key;
2067 struct lock_class_key qdisc_xmit_lock_key;
2068 struct lock_class_key addr_list_lock_key;
2060 bool proto_down;2069 bool proto_down;
2061 unsigned wol_enabled:1;2070 unsigned wol_enabled:1;
2062};2071};
@@ -2134,23 +2143,6 @@ static inline void netdev_for_each_tx_queue(struct net_device *dev, · 71 unmodified lines
2134 f(dev, &dev->_tx[i], arg);2143 f(dev, &dev->_tx[i], arg);
2135}2144}
2136 2145
2137#define netdev_lockdep_set_classes(dev) \
2138{ \
2139 static struct lock_class_key qdisc_tx_busylock_key; \
2140 static struct lock_class_key qdisc_running_key; \
2141 static struct lock_class_key qdisc_xmit_lock_key; \
2142 static struct lock_class_key dev_addr_list_lock_key; \
2143 unsigned int i; \
2144 \
2145 (dev)->qdisc_tx_busylock = &qdisc_tx_busylock_key; \
2146 (dev)->qdisc_running_key = &qdisc_running_key; \
2147 lockdep_set_class(&(dev)->addr_list_lock, \
2148 &dev_addr_list_lock_key); \
2149 for (i = 0; i < (dev)->num_tx_queues; i++) \
2150 lockdep_set_class(&(dev)->_tx[i]._xmit_lock, \
2151 &qdisc_xmit_lock_key); \
2152}
2153
2154u16 netdev_pick_tx(struct net_device *dev, struct sk_buff *skb,2146u16 netdev_pick_tx(struct net_device *dev, struct sk_buff *skb,
2155 struct net_device *sb_dev);2147 struct net_device *sb_dev);
2156struct netdev_queue *netdev_core_pick_tx(struct net_device *dev,2148struct netdev_queue *netdev_core_pick_tx(struct net_device *dev,
@@ -3155,6 +3147,7 @@ static inline void netif_stop_queue(struct net_device *dev) · 998 unmodified lines
3155}3147}
3156 3148
3157void netif_tx_stop_all_queues(struct net_device *dev);3149void netif_tx_stop_all_queues(struct net_device *dev);
3150void netdev_update_lockdep_key(struct net_device *dev);
3158 3151
3159static inline bool netif_tx_queue_stopped(const struct netdev_queue *dev_queue)3152static inline bool netif_tx_queue_stopped(const struct netdev_queue *dev_queue)
3160{3153{
@@ -4072,16 +4065,6 @@ static inline void netif_addr_lock(struct net_device *dev) · 911 unmodified lines
4072 spin_lock(&dev->addr_list_lock);4065 spin_lock(&dev->addr_list_lock);
4073}4066}
4074 4067
4075static inline void netif_addr_lock_nested(struct net_device *dev)
4076{
4077 int subclass = SINGLE_DEPTH_NESTING;
4078
4079 if (dev->netdev_ops->ndo_get_lock_subclass)
4080 subclass = dev->netdev_ops->ndo_get_lock_subclass(dev);
4081
4082 spin_lock_nested(&dev->addr_list_lock, subclass);
4083}
4084
4085static inline void netif_addr_lock_bh(struct net_device *dev)4068static inline void netif_addr_lock_bh(struct net_device *dev)
4086{4069{
4087 spin_lock_bh(&dev->addr_list_lock);4070 spin_lock_bh(&dev->addr_list_lock);
@@ -4342,6 +4325,16 @@ int netdev_master_upper_dev_link(struct net_device *dev, · 254 unmodified lines
4342 struct netlink_ext_ack *extack);4325 struct netlink_ext_ack *extack);
4343void netdev_upper_dev_unlink(struct net_device *dev,4326void netdev_upper_dev_unlink(struct net_device *dev,
4344 struct net_device *upper_dev);4327 struct net_device *upper_dev);
4328int netdev_adjacent_change_prepare(struct net_device *old_dev,
4329 struct net_device *new_dev,
4330 struct net_device *dev,
4331 struct netlink_ext_ack *extack);
4332void netdev_adjacent_change_commit(struct net_device *old_dev,
4333 struct net_device *new_dev,
4334 struct net_device *dev);
4335void netdev_adjacent_change_abort(struct net_device *old_dev,
4336 struct net_device *new_dev,
4337 struct net_device *dev);
4345void netdev_adjacent_rename_links(struct net_device *dev, char *oldname);4338void netdev_adjacent_rename_links(struct net_device *dev, char *oldname);
4346void *netdev_lower_dev_get_private(struct net_device *dev,4339void *netdev_lower_dev_get_private(struct net_device *dev,
4347 struct net_device *lower_dev);4340 struct net_device *lower_dev);
@@ -4353,7 +4346,6 @@ void netdev_lower_state_changed(struct net_device *lower_dev, · 5 unmodified lines
4353extern u8 netdev_rss_key[NETDEV_RSS_KEY_LEN] __read_mostly;4346extern u8 netdev_rss_key[NETDEV_RSS_KEY_LEN] __read_mostly;
4354void netdev_rss_key_fill(void *buffer, size_t len);4347void netdev_rss_key_fill(void *buffer, size_t len);
4355 4348
4356int dev_get_nest_level(struct net_device *dev);
4357int skb_checksum_help(struct sk_buff *skb);4349int skb_checksum_help(struct sk_buff *skb);
4358int skb_crc32c_csum_help(struct sk_buff *skb);4350int skb_crc32c_csum_help(struct sk_buff *skb);
4359int skb_csum_hwoffload_help(struct sk_buff *skb,4351int skb_csum_hwoffload_help(struct sk_buff *skb,
include/linux/perf_event.h+1−1
@@ -292,7 +292,7 @@ struct pmu { · 291 unmodified lines
292 * -EBUSY -- @event is for this PMU but PMU temporarily unavailable292 * -EBUSY -- @event is for this PMU but PMU temporarily unavailable
293 * -EINVAL -- @event is for this PMU but @event is not valid293 * -EINVAL -- @event is for this PMU but @event is not valid
294 * -EOPNOTSUPP -- @event is for this PMU, @event is valid, but not supported294 * -EOPNOTSUPP -- @event is for this PMU, @event is valid, but not supported
295 * -EACCESS -- @event is for this PMU, @event is valid, but no privilidges295 * -EACCES -- @event is for this PMU, @event is valid, but no privileges
296 *296 *
297 * 0 -- @event is for this PMU and valid297 * 0 -- @event is for this PMU and valid
298 *298 *
include/linux/platform_data/dma-imx-sdma.h+3−0
@@ -51,7 +51,10 @@ struct sdma_script_start_addrs { · 50 unmodified lines
51 /* End of v2 array */51 /* End of v2 array */
52 s32 zcanfd_2_mcu_addr;52 s32 zcanfd_2_mcu_addr;
53 s32 zqspi_2_mcu_addr;53 s32 zqspi_2_mcu_addr;
54 s32 mcu_2_ecspi_addr;
54 /* End of v3 array */55 /* End of v3 array */
56 s32 mcu_2_zqspi_addr;
57 /* End of v4 array */
55};58};
56 59
57/**60/**
include/linux/pm_qos.h+44−12
@@ -34,8 +34,6 @@ enum pm_qos_flags_status { · 33 unmodified lines
34#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT PM_QOS_LATENCY_ANY34#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT PM_QOS_LATENCY_ANY
35#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT_NS PM_QOS_LATENCY_ANY_NS35#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT_NS PM_QOS_LATENCY_ANY_NS
36#define PM_QOS_LATENCY_TOLERANCE_DEFAULT_VALUE 036#define PM_QOS_LATENCY_TOLERANCE_DEFAULT_VALUE 0
37#define PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE 0
38#define PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE (-1)
39#define PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT (-1)37#define PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT (-1)
40 38
41#define PM_QOS_FLAG_NO_POWER_OFF (1 << 0)39#define PM_QOS_FLAG_NO_POWER_OFF (1 << 0)
@@ -54,8 +52,6 @@ struct pm_qos_flags_request { · 12 unmodified lines
54enum dev_pm_qos_req_type {52enum dev_pm_qos_req_type {
55 DEV_PM_QOS_RESUME_LATENCY = 1,53 DEV_PM_QOS_RESUME_LATENCY = 1,
56 DEV_PM_QOS_LATENCY_TOLERANCE,54 DEV_PM_QOS_LATENCY_TOLERANCE,
57 DEV_PM_QOS_MIN_FREQUENCY,
58 DEV_PM_QOS_MAX_FREQUENCY,
59 DEV_PM_QOS_FLAGS,55 DEV_PM_QOS_FLAGS,
60};56};
61 57
@@ -97,14 +93,10 @@ struct pm_qos_flags { · 35 unmodified lines
97struct dev_pm_qos {93struct dev_pm_qos {
98 struct pm_qos_constraints resume_latency;94 struct pm_qos_constraints resume_latency;
99 struct pm_qos_constraints latency_tolerance;95 struct pm_qos_constraints latency_tolerance;
100 struct pm_qos_constraints min_frequency;
101 struct pm_qos_constraints max_frequency;
102 struct pm_qos_flags flags;96 struct pm_qos_flags flags;
103 struct dev_pm_qos_request *resume_latency_req;97 struct dev_pm_qos_request *resume_latency_req;
104 struct dev_pm_qos_request *latency_tolerance_req;98 struct dev_pm_qos_request *latency_tolerance_req;
105 struct dev_pm_qos_request *flags_req;99 struct dev_pm_qos_request *flags_req;
106 struct dev_pm_qos_request *min_frequency_req;
107 struct dev_pm_qos_request *max_frequency_req;
108};100};
109 101
110/* Action requested to pm_qos_update_target */102/* Action requested to pm_qos_update_target */
@@ -199,10 +191,6 @@ static inline s32 dev_pm_qos_read_value(struct device *dev, · 88 unmodified lines
199 switch (type) {191 switch (type) {
200 case DEV_PM_QOS_RESUME_LATENCY:192 case DEV_PM_QOS_RESUME_LATENCY:
201 return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT;193 return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT;
202 case DEV_PM_QOS_MIN_FREQUENCY:
203 return PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
204 case DEV_PM_QOS_MAX_FREQUENCY:
205 return PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
206 default:194 default:
207 WARN_ON(1);195 WARN_ON(1);
208 return 0;196 return 0;
@@ -267,4 +255,48 @@ static inline s32 dev_pm_qos_raw_resume_latency(struct device *dev) · 58 unmodified lines
267}255}
268#endif256#endif
269 257
258#define FREQ_QOS_MIN_DEFAULT_VALUE 0
259#define FREQ_QOS_MAX_DEFAULT_VALUE (-1)
260
261enum freq_qos_req_type {
262 FREQ_QOS_MIN = 1,
263 FREQ_QOS_MAX,
264};
265
266struct freq_constraints {
267 struct pm_qos_constraints min_freq;
268 struct blocking_notifier_head min_freq_notifiers;
269 struct pm_qos_constraints max_freq;
270 struct blocking_notifier_head max_freq_notifiers;
271};
272
273struct freq_qos_request {
274 enum freq_qos_req_type type;
275 struct plist_node pnode;
276 struct freq_constraints *qos;
277};
278
279static inline int freq_qos_request_active(struct freq_qos_request *req)
280{
281 return !IS_ERR_OR_NULL(req->qos);
282}
283
284void freq_constraints_init(struct freq_constraints *qos);
285
286s32 freq_qos_read_value(struct freq_constraints *qos,
287 enum freq_qos_req_type type);
288
289int freq_qos_add_request(struct freq_constraints *qos,
290 struct freq_qos_request *req,
291 enum freq_qos_req_type type, s32 value);
292int freq_qos_update_request(struct freq_qos_request *req, s32 new_value);
293int freq_qos_remove_request(struct freq_qos_request *req);
294
295int freq_qos_add_notifier(struct freq_constraints *qos,
296 enum freq_qos_req_type type,
297 struct notifier_block *notifier);
298int freq_qos_remove_notifier(struct freq_constraints *qos,
299 enum freq_qos_req_type type,
300 struct notifier_block *notifier);
301
270#endif302#endif
include/linux/security.h+1−0
@@ -105,6 +105,7 @@ enum lockdown_reason { · 104 unmodified lines
105 LOCKDOWN_NONE,105 LOCKDOWN_NONE,
106 LOCKDOWN_MODULE_SIGNATURE,106 LOCKDOWN_MODULE_SIGNATURE,
107 LOCKDOWN_DEV_MEM,107 LOCKDOWN_DEV_MEM,
108 LOCKDOWN_EFI_TEST,
108 LOCKDOWN_KEXEC,109 LOCKDOWN_KEXEC,
109 LOCKDOWN_HIBERNATION,110 LOCKDOWN_HIBERNATION,
110 LOCKDOWN_PCI_ACCESS,111 LOCKDOWN_PCI_ACCESS,
include/linux/skbuff.h+26−10
@@ -1354,7 +1354,8 @@ static inline __u32 skb_get_hash_flowi6(struct sk_buff *skb, const struct flowi6 · 1353 unmodified lines
1354 return skb->hash;1354 return skb->hash;
1355}1355}
1356 1356
1357__u32 skb_get_hash_perturb(const struct sk_buff *skb, u32 perturb);1357__u32 skb_get_hash_perturb(const struct sk_buff *skb,
1358 const siphash_key_t *perturb);
1358 1359
1359static inline __u32 skb_get_hash_raw(const struct sk_buff *skb)1360static inline __u32 skb_get_hash_raw(const struct sk_buff *skb)
1360{1361{
@@ -1494,6 +1495,19 @@ static inline int skb_queue_empty(const struct sk_buff_head *list) · 133 unmodified lines
1494 return list->next == (const struct sk_buff *) list;1495 return list->next == (const struct sk_buff *) list;
1495}1496}
1496 1497
1498/**
1499 * skb_queue_empty_lockless - check if a queue is empty
1500 * @list: queue head
1501 *
1502 * Returns true if the queue is empty, false otherwise.
1503 * This variant can be used in lockless contexts.
1504 */
1505static inline bool skb_queue_empty_lockless(const struct sk_buff_head *list)
1506{
1507 return READ_ONCE(list->next) == (const struct sk_buff *) list;
1508}
1509
1510
1497/**1511/**
1498 * skb_queue_is_last - check if skb is the last entry in the queue1512 * skb_queue_is_last - check if skb is the last entry in the queue
1499 * @list: queue head1513 * @list: queue head
@@ -1847,9 +1861,11 @@ static inline void __skb_insert(struct sk_buff *newsk, · 347 unmodified lines
1847 struct sk_buff *prev, struct sk_buff *next,1861 struct sk_buff *prev, struct sk_buff *next,
1848 struct sk_buff_head *list)1862 struct sk_buff_head *list)
1849{1863{
1850 newsk->next = next;1864 /* see skb_queue_empty_lockless() for the opposite READ_ONCE() */
1851 newsk->prev = prev;1865 WRITE_ONCE(newsk->next, next);
1852 next->prev = prev->next = newsk;1866 WRITE_ONCE(newsk->prev, prev);
1867 WRITE_ONCE(next->prev, newsk);
1868 WRITE_ONCE(prev->next, newsk);
1853 list->qlen++;1869 list->qlen++;
1854}1870}
1855 1871
@@ -1860,11 +1876,11 @@ static inline void __skb_queue_splice(const struct sk_buff_head *list, · 4 unmodified lines
1860 struct sk_buff *first = list->next;1876 struct sk_buff *first = list->next;
1861 struct sk_buff *last = list->prev;1877 struct sk_buff *last = list->prev;
1862 1878
1863 first->prev = prev;1879 WRITE_ONCE(first->prev, prev);
1864 prev->next = first;1880 WRITE_ONCE(prev->next, first);
1865 1881
1866 last->next = next;1882 WRITE_ONCE(last->next, next);
1867 next->prev = last;1883 WRITE_ONCE(next->prev, last);
1868}1884}
1869 1885
1870/**1886/**
@@ -2005,8 +2021,8 @@ static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list) · 134 unmodified lines
2005 next = skb->next;2021 next = skb->next;
2006 prev = skb->prev;2022 prev = skb->prev;
2007 skb->next = skb->prev = NULL;2023 skb->next = skb->prev = NULL;
2008 next->prev = prev;2024 WRITE_ONCE(next->prev, prev);
2009 prev->next = next;2025 WRITE_ONCE(prev->next, next);
2010}2026}
2011 2027
2012/**2028/**
include/linux/socket.h+1−1
@@ -263,7 +263,7 @@ struct ucred { · 262 unmodified lines
263#define PF_MAX AF_MAX263#define PF_MAX AF_MAX
264 264
265/* Maximum queue length specifiable by listen. */265/* Maximum queue length specifiable by listen. */
266#define SOMAXCONN 128266#define SOMAXCONN 4096
267 267
268/* Flags we can use with send/ and recv.268/* Flags we can use with send/ and recv.
269 Added those for 1003.1g not all are supported yet269 Added those for 1003.1g not all are supported yet
include/linux/sunrpc/bc_xprt.h+5−0
@@ -64,6 +64,11 @@ static inline int xprt_setup_backchannel(struct rpc_xprt *xprt, · 63 unmodified lines
64 return 0;64 return 0;
65}65}
66 66
67static inline void xprt_destroy_backchannel(struct rpc_xprt *xprt,
68 unsigned int max_reqs)
69{
70}
71
67static inline bool svc_is_backchannel(const struct svc_rqst *rqstp)72static inline bool svc_is_backchannel(const struct svc_rqst *rqstp)
68{73{
69 return false;74 return false;
include/linux/sysfs.h+2−2
@@ -196,9 +196,9 @@ struct bin_attribute { · 195 unmodified lines
196 .size = _size, \196 .size = _size, \
197}197}
198 198
199#define __BIN_ATTR_WO(_name) { \199#define __BIN_ATTR_WO(_name, _size) { \
200 .attr = { .name = __stringify(_name), .mode = 0200 }, \200 .attr = { .name = __stringify(_name), .mode = 0200 }, \
201 .store = _name##_store, \201 .write = _name##_write, \
202 .size = _size, \202 .size = _size, \
203}203}
204 204
include/linux/virtio_vsock.h+0−1
@@ -48,7 +48,6 @@ struct virtio_vsock_sock { · 47 unmodified lines
48 48
49struct virtio_vsock_pkt {49struct virtio_vsock_pkt {
50 struct virtio_vsock_hdr hdr;50 struct virtio_vsock_hdr hdr;
51 struct work_struct work;
52 struct list_head list;51 struct list_head list;
53 /* socket refcnt not held, only use for cancellation */52 /* socket refcnt not held, only use for cancellation */
54 struct vsock_sock *vsk;53 struct vsock_sock *vsk;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t