History

Merge v5.6 into drm-next

msm needed rc6, so I just went and merged release (msm has been in drm-next outside of this tree)

Dave Airlie committed 6 years ago

Commit 5fc0df92 parents 700d6ab 7111951666 files · +6433 −2881Browse files

Showing the changes to include/linux (28 of 666 files). Show all

Unified · Split

28 files
  1. include/linux/bpf.h +1 −0
  2. include/linux/ceph/messenger.h +4 −3
  3. include/linux/ceph/osdmap.h +4 −0
  4. include/linux/ceph/rados.h +4 −2
  5. include/linux/cgroup.h +1 −0
  6. include/linux/clk-provider.h +5 −5
  7. include/linux/dmar.h +9 −5
  8. include/linux/dsa/8021q.h +0 −7
  9. include/linux/file.h +1 −0
  10. include/linux/fs.h +1 −0
  11. include/linux/futex.h +10 −7
  12. include/linux/genhd.h +1 −12
  13. include/linux/i2c.h +2 −2
  14. include/linux/ieee80211.h +2 −2
  15. include/linux/inet_diag.h +12 −6
  16. include/linux/intel-iommu.h +2 −0
  17. include/linux/memcontrol.h +12 −0
  18. include/linux/mmc/host.h +1 −0
  19. include/linux/netlink.h +13 −0
  20. include/linux/of_clk.h +4 −4
  21. include/linux/page-flags.h +1 −1
  22. include/linux/phy.h +3 −0
  23. include/linux/platform_device.h +1 −1
  24. include/linux/rhashtable.h +1 −1
  25. include/linux/skbuff.h +32 −4
  26. include/linux/socket.h +2 −1
  27. include/linux/vmalloc.h +3 −2
  28. include/linux/workqueue.h +16 −0
include/linux/bpf.h+1−0
@@ -160,6 +160,7 @@ static inline void copy_map_value(struct bpf_map *map, void *dst, void *src) · 159 unmodified lines
160}160}
161void copy_map_value_locked(struct bpf_map *map, void *dst, void *src,161void copy_map_value_locked(struct bpf_map *map, void *dst, void *src,
162 bool lock_src);162 bool lock_src);
163int bpf_obj_name_cpy(char *dst, const char *src, unsigned int size);
163 164
164struct bpf_offload_dev;165struct bpf_offload_dev;
165struct bpf_offloaded_map;166struct bpf_offloaded_map;
include/linux/ceph/messenger.h+4−3
@@ -175,9 +175,10 @@ struct ceph_msg_data { · 174 unmodified lines
175#endif /* CONFIG_BLOCK */175#endif /* CONFIG_BLOCK */
176 struct ceph_bvec_iter bvec_pos;176 struct ceph_bvec_iter bvec_pos;
177 struct {177 struct {
178 struct page **pages; /* NOT OWNER. */178 struct page **pages;
179 size_t length; /* total # bytes */179 size_t length; /* total # bytes */
180 unsigned int alignment; /* first page */180 unsigned int alignment; /* first page */
181 bool own_pages;
181 };182 };
182 struct ceph_pagelist *pagelist;183 struct ceph_pagelist *pagelist;
183 };184 };
@@ -356,8 +357,8 @@ extern void ceph_con_keepalive(struct ceph_connection *con); · 172 unmodified lines
356extern bool ceph_con_keepalive_expired(struct ceph_connection *con,357extern bool ceph_con_keepalive_expired(struct ceph_connection *con,
357 unsigned long interval);358 unsigned long interval);
358 359
359extern void ceph_msg_data_add_pages(struct ceph_msg *msg, struct page **pages,360void ceph_msg_data_add_pages(struct ceph_msg *msg, struct page **pages,
360 size_t length, size_t alignment);361 size_t length, size_t alignment, bool own_pages);
361extern void ceph_msg_data_add_pagelist(struct ceph_msg *msg,362extern void ceph_msg_data_add_pagelist(struct ceph_msg *msg,
362 struct ceph_pagelist *pagelist);363 struct ceph_pagelist *pagelist);
363#ifdef CONFIG_BLOCK364#ifdef CONFIG_BLOCK
include/linux/ceph/osdmap.h+4−0
@@ -37,6 +37,9 @@ int ceph_spg_compare(const struct ceph_spg *lhs, const struct ceph_spg *rhs); · 36 unmodified lines
37#define CEPH_POOL_FLAG_HASHPSPOOL (1ULL << 0) /* hash pg seed and pool id37#define CEPH_POOL_FLAG_HASHPSPOOL (1ULL << 0) /* hash pg seed and pool id
38 together */38 together */
39#define CEPH_POOL_FLAG_FULL (1ULL << 1) /* pool is full */39#define CEPH_POOL_FLAG_FULL (1ULL << 1) /* pool is full */
40#define CEPH_POOL_FLAG_FULL_QUOTA (1ULL << 10) /* pool ran out of quota,
41 will set FULL too */
42#define CEPH_POOL_FLAG_NEARFULL (1ULL << 11) /* pool is nearfull */
40 43
41struct ceph_pg_pool_info {44struct ceph_pg_pool_info {
42 struct rb_node node;45 struct rb_node node;
@@ -304,5 +307,6 @@ extern struct ceph_pg_pool_info *ceph_pg_pool_by_id(struct ceph_osdmap *map, · 261 unmodified lines
304 307
305extern const char *ceph_pg_pool_name_by_id(struct ceph_osdmap *map, u64 id);308extern const char *ceph_pg_pool_name_by_id(struct ceph_osdmap *map, u64 id);
306extern int ceph_pg_poolid_by_name(struct ceph_osdmap *map, const char *name);309extern int ceph_pg_poolid_by_name(struct ceph_osdmap *map, const char *name);
310u64 ceph_pg_pool_flags(struct ceph_osdmap *map, u64 id);
307 311
308#endif312#endif
include/linux/ceph/rados.h+4−2
@@ -143,8 +143,10 @@ extern const char *ceph_osd_state_name(int s); · 142 unmodified lines
143/*143/*
144 * osd map flag bits144 * osd map flag bits
145 */145 */
146#define CEPH_OSDMAP_NEARFULL (1<<0) /* sync writes (near ENOSPC) */146#define CEPH_OSDMAP_NEARFULL (1<<0) /* sync writes (near ENOSPC),
147#define CEPH_OSDMAP_FULL (1<<1) /* no data writes (ENOSPC) */147 not set since ~luminous */
148#define CEPH_OSDMAP_FULL (1<<1) /* no data writes (ENOSPC),
149 not set since ~luminous */
148#define CEPH_OSDMAP_PAUSERD (1<<2) /* pause all reads */150#define CEPH_OSDMAP_PAUSERD (1<<2) /* pause all reads */
149#define CEPH_OSDMAP_PAUSEWR (1<<3) /* pause all writes */151#define CEPH_OSDMAP_PAUSEWR (1<<3) /* pause all writes */
150#define CEPH_OSDMAP_PAUSEREC (1<<4) /* pause recovery */152#define CEPH_OSDMAP_PAUSEREC (1<<4) /* pause recovery */
include/linux/cgroup.h+1−0
@@ -62,6 +62,7 @@ struct css_task_iter { · 61 unmodified lines
62 struct list_head *mg_tasks_head;62 struct list_head *mg_tasks_head;
63 struct list_head *dying_tasks_head;63 struct list_head *dying_tasks_head;
64 64
65 struct list_head *cur_tasks_head;
65 struct css_set *cur_cset;66 struct css_set *cur_cset;
66 struct css_set *cur_dcset;67 struct css_set *cur_dcset;
67 struct task_struct *cur_task;68 struct task_struct *cur_task;
include/linux/clk-provider.h+5−5
@@ -522,9 +522,9 @@ struct clk *clk_register_gate(struct device *dev, const char *name, · 521 unmodified lines
522 * @clk_gate_flags: gate-specific flags for this clock522 * @clk_gate_flags: gate-specific flags for this clock
523 * @lock: shared register lock for this clock523 * @lock: shared register lock for this clock
524 */524 */
525#define clk_hw_register_gate_parent_hw(dev, name, parent_name, flags, reg, \525#define clk_hw_register_gate_parent_hw(dev, name, parent_hw, flags, reg, \
526 bit_idx, clk_gate_flags, lock) \526 bit_idx, clk_gate_flags, lock) \
527 __clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \527 __clk_hw_register_gate((dev), NULL, (name), NULL, (parent_hw), \
528 NULL, (flags), (reg), (bit_idx), \528 NULL, (flags), (reg), (bit_idx), \
529 (clk_gate_flags), (lock))529 (clk_gate_flags), (lock))
530/**530/**
@@ -539,10 +539,10 @@ struct clk *clk_register_gate(struct device *dev, const char *name, · 8 unmodified lines
539 * @clk_gate_flags: gate-specific flags for this clock539 * @clk_gate_flags: gate-specific flags for this clock
540 * @lock: shared register lock for this clock540 * @lock: shared register lock for this clock
541 */541 */
542#define clk_hw_register_gate_parent_data(dev, name, parent_name, flags, reg, \542#define clk_hw_register_gate_parent_data(dev, name, parent_data, flags, reg, \
543 bit_idx, clk_gate_flags, lock) \543 bit_idx, clk_gate_flags, lock) \
544 __clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \544 __clk_hw_register_gate((dev), NULL, (name), NULL, NULL, (parent_data), \
545 NULL, (flags), (reg), (bit_idx), \545 (flags), (reg), (bit_idx), \
546 (clk_gate_flags), (lock))546 (clk_gate_flags), (lock))
547void clk_unregister_gate(struct clk *clk);547void clk_unregister_gate(struct clk *clk);
548void clk_hw_unregister_gate(struct clk_hw *hw);548void clk_hw_unregister_gate(struct clk_hw *hw);
include/linux/dmar.h+9−5
@@ -69,19 +69,23 @@ struct dmar_pci_notify_info { · 68 unmodified lines
69extern struct rw_semaphore dmar_global_lock;69extern struct rw_semaphore dmar_global_lock;
70extern struct list_head dmar_drhd_units;70extern struct list_head dmar_drhd_units;
71 71
72#define for_each_drhd_unit(drhd) \72#define for_each_drhd_unit(drhd) \
73 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list)73 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
74 dmar_rcu_check())
74 75
75#define for_each_active_drhd_unit(drhd) \76#define for_each_active_drhd_unit(drhd) \
76 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \77 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
78 dmar_rcu_check()) \
77 if (drhd->ignored) {} else79 if (drhd->ignored) {} else
78 80
79#define for_each_active_iommu(i, drhd) \81#define for_each_active_iommu(i, drhd) \
80 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \82 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
83 dmar_rcu_check()) \
81 if (i=drhd->iommu, drhd->ignored) {} else84 if (i=drhd->iommu, drhd->ignored) {} else
82 85
83#define for_each_iommu(i, drhd) \86#define for_each_iommu(i, drhd) \
84 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \87 list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
88 dmar_rcu_check()) \
85 if (i=drhd->iommu, 0) {} else 89 if (i=drhd->iommu, 0) {} else
86 90
87static inline bool dmar_rcu_check(void)91static inline bool dmar_rcu_check(void)
include/linux/dsa/8021q.h+0−7
@@ -28,8 +28,6 @@ int dsa_8021q_rx_switch_id(u16 vid); · 27 unmodified lines
28 28
29int dsa_8021q_rx_source_port(u16 vid);29int dsa_8021q_rx_source_port(u16 vid);
30 30
31struct sk_buff *dsa_8021q_remove_header(struct sk_buff *skb);
32
33#else31#else
34 32
35int dsa_port_setup_8021q_tagging(struct dsa_switch *ds, int index,33int dsa_port_setup_8021q_tagging(struct dsa_switch *ds, int index,
@@ -64,11 +62,6 @@ int dsa_8021q_rx_source_port(u16 vid) · 28 unmodified lines
64 return 0;62 return 0;
65}63}
66 64
67struct sk_buff *dsa_8021q_remove_header(struct sk_buff *skb)
68{
69 return NULL;
70}
71
72#endif /* IS_ENABLED(CONFIG_NET_DSA_TAG_8021Q) */65#endif /* IS_ENABLED(CONFIG_NET_DSA_TAG_8021Q) */
73 66
74#endif /* _NET_DSA_8021Q_H */67#endif /* _NET_DSA_8021Q_H */
include/linux/file.h+1−0
@@ -85,6 +85,7 @@ extern int f_dupfd(unsigned int from, struct file *file, unsigned flags); · 84 unmodified lines
85extern int replace_fd(unsigned fd, struct file *file, unsigned flags);85extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
86extern void set_close_on_exec(unsigned int fd, int flag);86extern void set_close_on_exec(unsigned int fd, int flag);
87extern bool get_close_on_exec(unsigned int fd);87extern bool get_close_on_exec(unsigned int fd);
88extern int __get_unused_fd_flags(unsigned flags, unsigned long nofile);
88extern int get_unused_fd_flags(unsigned flags);89extern int get_unused_fd_flags(unsigned flags);
89extern void put_unused_fd(unsigned int fd);90extern void put_unused_fd(unsigned int fd);
90 91
include/linux/fs.h+1−0
@@ -698,6 +698,7 @@ struct inode { · 697 unmodified lines
698 struct rcu_head i_rcu;698 struct rcu_head i_rcu;
699 };699 };
700 atomic64_t i_version;700 atomic64_t i_version;
701 atomic64_t i_sequence; /* see futex */
701 atomic_t i_count;702 atomic_t i_count;
702 atomic_t i_dio_count;703 atomic_t i_dio_count;
703 atomic_t i_writecount;704 atomic_t i_writecount;
include/linux/futex.h+10−7
@@ -31,23 +31,26 @@ struct task_struct; · 30 unmodified lines
31 31
32union futex_key {32union futex_key {
33 struct {33 struct {
34 u64 i_seq;
34 unsigned long pgoff;35 unsigned long pgoff;
35 struct inode *inode;36 unsigned int offset;
36 int offset;
37 } shared;37 } shared;
38 struct {38 struct {
39 union {
40 struct mm_struct *mm;
41 u64 __tmp;
42 };
39 unsigned long address;43 unsigned long address;
40 struct mm_struct *mm;44 unsigned int offset;
41 int offset;
42 } private;45 } private;
43 struct {46 struct {
47 u64 ptr;
44 unsigned long word;48 unsigned long word;
45 void *ptr;49 unsigned int offset;
46 int offset;
47 } both;50 } both;
48};51};
49 52
50#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } }53#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = 0ULL } }
51 54
52#ifdef CONFIG_FUTEX55#ifdef CONFIG_FUTEX
53enum {56enum {
include/linux/genhd.h+1−12
@@ -245,18 +245,6 @@ static inline bool disk_part_scan_enabled(struct gendisk *disk) · 244 unmodified lines
245 !(disk->flags & GENHD_FL_NO_PART_SCAN);245 !(disk->flags & GENHD_FL_NO_PART_SCAN);
246}246}
247 247
248static inline bool disk_has_partitions(struct gendisk *disk)
249{
250 bool ret = false;
251
252 rcu_read_lock();
253 if (rcu_dereference(disk->part_tbl)->len > 1)
254 ret = true;
255 rcu_read_unlock();
256
257 return ret;
258}
259
260static inline dev_t disk_devt(struct gendisk *disk)248static inline dev_t disk_devt(struct gendisk *disk)
261{249{
262 return MKDEV(disk->major, disk->first_minor);250 return MKDEV(disk->major, disk->first_minor);
@@ -298,6 +286,7 @@ extern void disk_part_iter_exit(struct disk_part_iter *piter); · 35 unmodified lines
298 286
299extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk,287extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk,
300 sector_t sector);288 sector_t sector);
289bool disk_has_partitions(struct gendisk *disk);
301 290
302/*291/*
303 * Macros to operate on percpu disk statistics:292 * Macros to operate on percpu disk statistics:
include/linux/i2c.h+2−2
@@ -506,7 +506,7 @@ i2c_register_board_info(int busnum, struct i2c_board_info const *info, · 505 unmodified lines
506 * @smbus_xfer_atomic: same as @smbus_xfer. Yet, only using atomic context506 * @smbus_xfer_atomic: same as @smbus_xfer. Yet, only using atomic context
507 * so e.g. PMICs can be accessed very late before shutdown. Optional.507 * so e.g. PMICs can be accessed very late before shutdown. Optional.
508 * @functionality: Return the flags that this algorithm/adapter pair supports508 * @functionality: Return the flags that this algorithm/adapter pair supports
509 * from the I2C_FUNC_* flags.509 * from the ``I2C_FUNC_*`` flags.
510 * @reg_slave: Register given client to I2C slave mode of this adapter510 * @reg_slave: Register given client to I2C slave mode of this adapter
511 * @unreg_slave: Unregister given client from I2C slave mode of this adapter511 * @unreg_slave: Unregister given client from I2C slave mode of this adapter
512 *512 *
@@ -515,7 +515,7 @@ i2c_register_board_info(int busnum, struct i2c_board_info const *info, · 2 unmodified lines
515 * be addressed using the same bus algorithms - i.e. bit-banging or the PCF8584515 * be addressed using the same bus algorithms - i.e. bit-banging or the PCF8584
516 * to name two of the most common.516 * to name two of the most common.
517 *517 *
518 * The return codes from the @master_xfer{_atomic} fields should indicate the518 * The return codes from the ``master_xfer{_atomic}`` fields should indicate the
519 * type of error code that occurred during the transfer, as documented in the519 * type of error code that occurred during the transfer, as documented in the
520 * Kernel Documentation file Documentation/i2c/fault-codes.rst.520 * Kernel Documentation file Documentation/i2c/fault-codes.rst.
521 */521 */
include/linux/ieee80211.h+2−2
@@ -2102,14 +2102,14 @@ ieee80211_he_spr_size(const u8 *he_spr_ie) · 2101 unmodified lines
2102{2102{
2103 struct ieee80211_he_spr *he_spr = (void *)he_spr_ie;2103 struct ieee80211_he_spr *he_spr = (void *)he_spr_ie;
2104 u8 spr_len = sizeof(struct ieee80211_he_spr);2104 u8 spr_len = sizeof(struct ieee80211_he_spr);
2105 u32 he_spr_params;2105 u8 he_spr_params;
2106 2106
2107 /* Make sure the input is not NULL */2107 /* Make sure the input is not NULL */
2108 if (!he_spr_ie)2108 if (!he_spr_ie)
2109 return 0;2109 return 0;
2110 2110
2111 /* Calc required length */2111 /* Calc required length */
2112 he_spr_params = le32_to_cpu(he_spr->he_sr_control);2112 he_spr_params = he_spr->he_sr_control;
2113 if (he_spr_params & IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT)2113 if (he_spr_params & IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT)
2114 spr_len++;2114 spr_len++;
2115 if (he_spr_params & IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT)2115 if (he_spr_params & IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT)
include/linux/inet_diag.h+12−6
@@ -2,15 +2,10 @@ · 1 unmodified line
2#ifndef _INET_DIAG_H_2#ifndef _INET_DIAG_H_
3#define _INET_DIAG_H_ 13#define _INET_DIAG_H_ 1
4 4
5#include <net/netlink.h>
5#include <uapi/linux/inet_diag.h>6#include <uapi/linux/inet_diag.h>
6 7
7struct net;
8struct sock;
9struct inet_hashinfo;8struct inet_hashinfo;
10struct nlattr;
11struct nlmsghdr;
12struct sk_buff;
13struct netlink_callback;
14 9
15struct inet_diag_handler {10struct inet_diag_handler {
16 void (*dump)(struct sk_buff *skb,11 void (*dump)(struct sk_buff *skb,
@@ -62,6 +57,17 @@ int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk); · 45 unmodified lines
62 57
63void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk);58void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk);
64 59
60static inline size_t inet_diag_msg_attrs_size(void)
61{
62 return nla_total_size(1) /* INET_DIAG_SHUTDOWN */
63 + nla_total_size(1) /* INET_DIAG_TOS */
64#if IS_ENABLED(CONFIG_IPV6)
65 + nla_total_size(1) /* INET_DIAG_TCLASS */
66 + nla_total_size(1) /* INET_DIAG_SKV6ONLY */
67#endif
68 + nla_total_size(4) /* INET_DIAG_MARK */
69 + nla_total_size(4); /* INET_DIAG_CLASS_ID */
70}
65int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,71int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
66 struct inet_diag_msg *r, int ext,72 struct inet_diag_msg *r, int ext,
67 struct user_namespace *user_ns, bool net_admin);73 struct user_namespace *user_ns, bool net_admin);
include/linux/intel-iommu.h+2−0
@@ -123,6 +123,8 @@ · 122 unmodified lines
123 123
124#define dmar_readq(a) readq(a)124#define dmar_readq(a) readq(a)
125#define dmar_writeq(a,v) writeq(v,a)125#define dmar_writeq(a,v) writeq(v,a)
126#define dmar_readl(a) readl(a)
127#define dmar_writel(a, v) writel(v, a)
126 128
127#define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4)129#define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4)
128#define DMAR_VER_MINOR(v) ((v) & 0x0f)130#define DMAR_VER_MINOR(v) ((v) & 0x0f)
include/linux/memcontrol.h+12−0
@@ -695,6 +695,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, · 694 unmodified lines
695void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,695void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,
696 int val);696 int val);
697void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val);697void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val);
698void mod_memcg_obj_state(void *p, int idx, int val);
698 699
699static inline void mod_lruvec_state(struct lruvec *lruvec,700static inline void mod_lruvec_state(struct lruvec *lruvec,
700 enum node_stat_item idx, int val)701 enum node_stat_item idx, int val)
@@ -1123,6 +1124,10 @@ static inline void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, · 422 unmodified lines
1123 __mod_node_page_state(page_pgdat(page), idx, val);1124 __mod_node_page_state(page_pgdat(page), idx, val);
1124}1125}
1125 1126
1127static inline void mod_memcg_obj_state(void *p, int idx, int val)
1128{
1129}
1130
1126static inline1131static inline
1127unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,1132unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,
1128 gfp_t gfp_mask,1133 gfp_t gfp_mask,
@@ -1427,6 +1432,8 @@ static inline int memcg_cache_id(struct mem_cgroup *memcg) · 298 unmodified lines
1427 return memcg ? memcg->kmemcg_id : -1;1432 return memcg ? memcg->kmemcg_id : -1;
1428}1433}
1429 1434
1435struct mem_cgroup *mem_cgroup_from_obj(void *p);
1436
1430#else1437#else
1431 1438
1432static inline int memcg_kmem_charge(struct page *page, gfp_t gfp, int order)1439static inline int memcg_kmem_charge(struct page *page, gfp_t gfp, int order)
@@ -1468,6 +1475,11 @@ static inline void memcg_put_cache_ids(void) · 35 unmodified lines
1468{1475{
1469}1476}
1470 1477
1478static inline struct mem_cgroup *mem_cgroup_from_obj(void *p)
1479{
1480 return NULL;
1481}
1482
1471#endif /* CONFIG_MEMCG_KMEM */1483#endif /* CONFIG_MEMCG_KMEM */
1472 1484
1473#endif /* _LINUX_MEMCONTROL_H */1485#endif /* _LINUX_MEMCONTROL_H */
include/linux/mmc/host.h+1−0
@@ -333,6 +333,7 @@ struct mmc_host { · 332 unmodified lines
333 MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \333 MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
334 MMC_CAP_UHS_DDR50)334 MMC_CAP_UHS_DDR50)
335#define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */335#define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */
336#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
336#define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */337#define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
337#define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */338#define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
338#define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */339#define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
include/linux/netlink.h+13−0
@@ -115,6 +115,19 @@ static inline void nl_set_extack_cookie_u64(struct netlink_ext_ack *extack, · 114 unmodified lines
115{115{
116 u64 __cookie = cookie;116 u64 __cookie = cookie;
117 117
118 if (!extack)
119 return;
120 memcpy(extack->cookie, &__cookie, sizeof(__cookie));
121 extack->cookie_len = sizeof(__cookie);
122}
123
124static inline void nl_set_extack_cookie_u32(struct netlink_ext_ack *extack,
125 u32 cookie)
126{
127 u32 __cookie = cookie;
128
129 if (!extack)
130 return;
118 memcpy(extack->cookie, &__cookie, sizeof(__cookie));131 memcpy(extack->cookie, &__cookie, sizeof(__cookie));
119 extack->cookie_len = sizeof(__cookie);132 extack->cookie_len = sizeof(__cookie);
120}133}
include/linux/of_clk.h+4−4
@@ -11,17 +11,17 @@ struct of_device_id; · 10 unmodified lines
11 11
12#if defined(CONFIG_COMMON_CLK) && defined(CONFIG_OF)12#if defined(CONFIG_COMMON_CLK) && defined(CONFIG_OF)
13 13
14unsigned int of_clk_get_parent_count(struct device_node *np);14unsigned int of_clk_get_parent_count(const struct device_node *np);
15const char *of_clk_get_parent_name(struct device_node *np, int index);15const char *of_clk_get_parent_name(const struct device_node *np, int index);
16void of_clk_init(const struct of_device_id *matches);16void of_clk_init(const struct of_device_id *matches);
17 17
18#else /* !CONFIG_COMMON_CLK || !CONFIG_OF */18#else /* !CONFIG_COMMON_CLK || !CONFIG_OF */
19 19
20static inline unsigned int of_clk_get_parent_count(struct device_node *np)20static inline unsigned int of_clk_get_parent_count(const struct device_node *np)
21{21{
22 return 0;22 return 0;
23}23}
24static inline const char *of_clk_get_parent_name(struct device_node *np,24static inline const char *of_clk_get_parent_name(const struct device_node *np,
25 int index)25 int index)
26{26{
27 return NULL;27 return NULL;
include/linux/page-flags.h+1−1
@@ -311,7 +311,7 @@ static inline int TestClearPage##uname(struct page *page) { return 0; } · 310 unmodified lines
311 311
312__PAGEFLAG(Locked, locked, PF_NO_TAIL)312__PAGEFLAG(Locked, locked, PF_NO_TAIL)
313PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD)313PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD)
314PAGEFLAG(Error, error, PF_NO_COMPOUND) TESTCLEARFLAG(Error, error, PF_NO_COMPOUND)314PAGEFLAG(Error, error, PF_NO_TAIL) TESTCLEARFLAG(Error, error, PF_NO_TAIL)
315PAGEFLAG(Referenced, referenced, PF_HEAD)315PAGEFLAG(Referenced, referenced, PF_HEAD)
316 TESTCLEARFLAG(Referenced, referenced, PF_HEAD)316 TESTCLEARFLAG(Referenced, referenced, PF_HEAD)
317 __SETPAGEFLAG(Referenced, referenced, PF_HEAD)317 __SETPAGEFLAG(Referenced, referenced, PF_HEAD)
include/linux/phy.h+3−0
@@ -357,6 +357,7 @@ struct macsec_ops; · 356 unmodified lines
357 * is_gigabit_capable: Set to true if PHY supports 1000Mbps357 * is_gigabit_capable: Set to true if PHY supports 1000Mbps
358 * has_fixups: Set to true if this phy has fixups/quirks.358 * has_fixups: Set to true if this phy has fixups/quirks.
359 * suspended: Set to true if this phy has been suspended successfully.359 * suspended: Set to true if this phy has been suspended successfully.
360 * suspended_by_mdio_bus: Set to true if this phy was suspended by MDIO bus.
360 * sysfs_links: Internal boolean tracking sysfs symbolic links setup/removal.361 * sysfs_links: Internal boolean tracking sysfs symbolic links setup/removal.
361 * loopback_enabled: Set true if this phy has been loopbacked successfully.362 * loopback_enabled: Set true if this phy has been loopbacked successfully.
362 * state: state of the PHY for management purposes363 * state: state of the PHY for management purposes
@@ -396,6 +397,7 @@ struct phy_device { · 33 unmodified lines
396 unsigned is_gigabit_capable:1;397 unsigned is_gigabit_capable:1;
397 unsigned has_fixups:1;398 unsigned has_fixups:1;
398 unsigned suspended:1;399 unsigned suspended:1;
400 unsigned suspended_by_mdio_bus:1;
399 unsigned sysfs_links:1;401 unsigned sysfs_links:1;
400 unsigned loopback_enabled:1;402 unsigned loopback_enabled:1;
401 403
@@ -557,6 +559,7 @@ struct phy_driver { · 155 unmodified lines
557 /*559 /*
558 * Checks if the PHY generated an interrupt.560 * Checks if the PHY generated an interrupt.
559 * For multi-PHY devices with shared PHY interrupt pin561 * For multi-PHY devices with shared PHY interrupt pin
562 * Set interrupt bits have to be cleared.
560 */563 */
561 int (*did_interrupt)(struct phy_device *phydev);564 int (*did_interrupt)(struct phy_device *phydev);
562 565
include/linux/platform_device.h+1−1
@@ -24,7 +24,7 @@ struct platform_device { · 23 unmodified lines
24 int id;24 int id;
25 bool id_auto;25 bool id_auto;
26 struct device dev;26 struct device dev;
27 u64 dma_mask;27 u64 platform_dma_mask;
28 u32 num_resources;28 u32 num_resources;
29 struct resource *resource;29 struct resource *resource;
30 30
include/linux/rhashtable.h+1−1
@@ -972,9 +972,9 @@ static inline int rhashtable_lookup_insert_key( · 971 unmodified lines
972/**972/**
973 * rhashtable_lookup_get_insert_key - lookup and insert object into hash table973 * rhashtable_lookup_get_insert_key - lookup and insert object into hash table
974 * @ht: hash table974 * @ht: hash table
975 * @key: key
975 * @obj: pointer to hash head inside object976 * @obj: pointer to hash head inside object
976 * @params: hash table parameters977 * @params: hash table parameters
977 * @data: pointer to element data already in hashes
978 *978 *
979 * Just like rhashtable_lookup_insert_key(), but this function returns the979 * Just like rhashtable_lookup_insert_key(), but this function returns the
980 * object if it exists, NULL if it does not and the insertion was successful,980 * object if it exists, NULL if it does not and the insertion was successful,
include/linux/skbuff.h+32−4
@@ -645,8 +645,8 @@ typedef unsigned char *sk_buff_data_t; · 644 unmodified lines
645 * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware645 * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware
646 * @tc_skip_classify: do not classify packet. set by IFB device646 * @tc_skip_classify: do not classify packet. set by IFB device
647 * @tc_at_ingress: used within tc_classify to distinguish in/egress647 * @tc_at_ingress: used within tc_classify to distinguish in/egress
648 * @tc_redirected: packet was redirected by a tc action648 * @redirected: packet was redirected by packet classifier
649 * @tc_from_ingress: if tc_redirected, tc_at_ingress at time of redirect649 * @from_ingress: packet was redirected from the ingress path
650 * @peeked: this packet has been seen already, so stats have been650 * @peeked: this packet has been seen already, so stats have been
651 * done for it, don't do them again651 * done for it, don't do them again
652 * @nf_trace: netfilter packet trace flag652 * @nf_trace: netfilter packet trace flag
@@ -848,8 +848,10 @@ struct sk_buff { · 195 unmodified lines
848#ifdef CONFIG_NET_CLS_ACT848#ifdef CONFIG_NET_CLS_ACT
849 __u8 tc_skip_classify:1;849 __u8 tc_skip_classify:1;
850 __u8 tc_at_ingress:1;850 __u8 tc_at_ingress:1;
851 __u8 tc_redirected:1;851#endif
852 __u8 tc_from_ingress:1;852#ifdef CONFIG_NET_REDIRECT
853 __u8 redirected:1;
854 __u8 from_ingress:1;
853#endif855#endif
854#ifdef CONFIG_TLS_DEVICE856#ifdef CONFIG_TLS_DEVICE
855 __u8 decrypted:1;857 __u8 decrypted:1;
@@ -4579,5 +4581,31 @@ static inline __wsum lco_csum(struct sk_buff *skb) · 3723 unmodified lines
4579 return csum_partial(l4_hdr, csum_start - l4_hdr, partial);4581 return csum_partial(l4_hdr, csum_start - l4_hdr, partial);
4580}4582}
4581 4583
4584static inline bool skb_is_redirected(const struct sk_buff *skb)
4585{
4586#ifdef CONFIG_NET_REDIRECT
4587 return skb->redirected;
4588#else
4589 return false;
4590#endif
4591}
4592
4593static inline void skb_set_redirected(struct sk_buff *skb, bool from_ingress)
4594{
4595#ifdef CONFIG_NET_REDIRECT
4596 skb->redirected = 1;
4597 skb->from_ingress = from_ingress;
4598 if (skb->from_ingress)
4599 skb->tstamp = 0;
4600#endif
4601}
4602
4603static inline void skb_reset_redirect(struct sk_buff *skb)
4604{
4605#ifdef CONFIG_NET_REDIRECT
4606 skb->redirected = 0;
4607#endif
4608}
4609
4582#endif /* __KERNEL__ */4610#endif /* __KERNEL__ */
4583#endif /* _LINUX_SKBUFF_H */4611#endif /* _LINUX_SKBUFF_H */
include/linux/socket.h+2−1
@@ -401,7 +401,8 @@ extern int __sys_sendto(int fd, void __user *buff, size_t len, · 400 unmodified lines
401 int addr_len);401 int addr_len);
402extern int __sys_accept4_file(struct file *file, unsigned file_flags,402extern int __sys_accept4_file(struct file *file, unsigned file_flags,
403 struct sockaddr __user *upeer_sockaddr,403 struct sockaddr __user *upeer_sockaddr,
404 int __user *upeer_addrlen, int flags);404 int __user *upeer_addrlen, int flags,
405 unsigned long nofile);
405extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,406extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
406 int __user *upeer_addrlen, int flags);407 int __user *upeer_addrlen, int flags);
407extern int __sys_socket(int family, int type, int protocol);408extern int __sys_socket(int family, int type, int protocol);
include/linux/vmalloc.h+3−2
@@ -141,8 +141,9 @@ extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, · 140 unmodified lines
141 141
142extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,142extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
143 unsigned long pgoff);143 unsigned long pgoff);
144void vmalloc_sync_all(void);144void vmalloc_sync_mappings(void);
145 145void vmalloc_sync_unmappings(void);
146
146/*147/*
147 * Lowlevel-APIs (not for driver use!)148 * Lowlevel-APIs (not for driver use!)
148 */149 */
include/linux/workqueue.h+16−0
@@ -487,6 +487,19 @@ extern void wq_worker_comm(char *buf, size_t size, struct task_struct *task); · 486 unmodified lines
487 *487 *
488 * We queue the work to the CPU on which it was submitted, but if the CPU dies488 * We queue the work to the CPU on which it was submitted, but if the CPU dies
489 * it can be processed by another CPU.489 * it can be processed by another CPU.
490 *
491 * Memory-ordering properties: If it returns %true, guarantees that all stores
492 * preceding the call to queue_work() in the program order will be visible from
493 * the CPU which will execute @work by the time such work executes, e.g.,
494 *
495 * { x is initially 0 }
496 *
497 * CPU0 CPU1
498 *
499 * WRITE_ONCE(x, 1); [ @work is being executed ]
500 * r0 = queue_work(wq, work); r1 = READ_ONCE(x);
501 *
502 * Forbids: r0 == true && r1 == 0
490 */503 */
491static inline bool queue_work(struct workqueue_struct *wq,504static inline bool queue_work(struct workqueue_struct *wq,
492 struct work_struct *work)505 struct work_struct *work)
@@ -546,6 +559,9 @@ static inline bool schedule_work_on(int cpu, struct work_struct *work) · 53 unmodified lines
546 * This puts a job in the kernel-global workqueue if it was not already559 * This puts a job in the kernel-global workqueue if it was not already
547 * queued and leaves it in the same position on the kernel-global560 * queued and leaves it in the same position on the kernel-global
548 * workqueue otherwise.561 * workqueue otherwise.
562 *
563 * Shares the same memory-ordering properties of queue_work(), cf. the
564 * DocBook header of queue_work().
549 */565 */
550static inline bool schedule_work(struct work_struct *work)566static inline bool schedule_work(struct work_struct *work)
551{567{