History

Backmerge v5.5-rc7 into drm-next

msm needs 5.5-rc4, go to the latest.

Dave Airlie committed 6 years ago

Commit 3d474312 parents df95968 def9d271204 files · +11860 −7137Browse files

Showing the changes to include/linux (36 of 1204 files). Show all

Unified · Split

36 files
  1. include/linux/ahci_platform.h +2 −0
  2. include/linux/bio.h +1 −0
  3. include/linux/blkdev.h +4 −4
  4. include/linux/bpf-cgroup.h +4 −4
  5. include/linux/bpf.h +3 −0
  6. include/linux/bvec.h +0 −22
  7. include/linux/can/dev.h +34 −0
  8. include/linux/cpufreq.h +0 −11
  9. include/linux/dmaengine.h +4 −1
  10. include/linux/efi.h +5 −5
  11. include/linux/if_ether.h +8 −0
  12. include/linux/jbd2.h +1 −1
  13. include/linux/kasan.h +9 −6
  14. include/linux/kernel.h +0 −9
  15. include/linux/libata.h +1 −0
  16. include/linux/memory_hotplug.h +5 −2
  17. include/linux/mfd/mt6397/rtc.h +8 −0
  18. include/linux/mm.h +18 −3
  19. include/linux/mmzone.h +2 −3
  20. include/linux/mod_devicetable.h +2 −2
  21. include/linux/mtd/flashchip.h +1 −1
  22. include/linux/namei.h +0 −1
  23. include/linux/netdevice.h +1 −1
  24. include/linux/of_mdio.h +6 −0
  25. include/linux/phy.h +1 −1
  26. include/linux/platform_data/ti-sysc.h +1 −0
  27. include/linux/posix-clock.h +11 −8
  28. include/linux/rculist_nulls.h +37 −0
  29. include/linux/sched.h +2 −2
  30. include/linux/sched/cpufreq.h +3 −0
  31. include/linux/skmsg.h +9 −4
  32. include/linux/spi/spi.h +2 −2
  33. include/linux/sxgbe_platform.h +1 −1
  34. include/linux/syscalls.h +1 −0
  35. include/linux/tnum.h +1 −1
  36. include/linux/tpm.h +1 −0
include/linux/ahci_platform.h+2−0
@@ -19,6 +19,8 @@ struct ahci_host_priv; · 18 unmodified lines
1919 struct platform_device;
2020 struct scsi_host_template;
2121
22+int ahci_platform_enable_phys(struct ahci_host_priv *hpriv);
23+void ahci_platform_disable_phys(struct ahci_host_priv *hpriv);
2224 int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
2325 void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
2426 int ahci_platform_enable_regulators(struct ahci_host_priv *hpriv);
include/linux/bio.h+1−0
@@ -470,6 +470,7 @@ extern struct bio *bio_copy_user_iov(struct request_queue *, · 469 unmodified lines
470470 gfp_t);
471471 extern int bio_uncopy_user(struct bio *);
472472 void zero_fill_bio_iter(struct bio *bio, struct bvec_iter iter);
473+void bio_truncate(struct bio *bio, unsigned new_size);
473474
474475 static inline void zero_fill_bio(struct bio *bio)
475476 {
include/linux/blkdev.h+4−4
@@ -328,6 +328,7 @@ struct queue_limits { · 327 unmodified lines
328328 unsigned int max_sectors;
329329 unsigned int max_segment_size;
330330 unsigned int physical_block_size;
331+ unsigned int logical_block_size;
331332 unsigned int alignment_offset;
332333 unsigned int io_min;
333334 unsigned int io_opt;
@@ -338,7 +339,6 @@ struct queue_limits { · 4 unmodified lines
338339 unsigned int discard_granularity;
339340 unsigned int discard_alignment;
340341
341− unsigned short logical_block_size;
342342 unsigned short max_segments;
343343 unsigned short max_integrity_segments;
344344 unsigned short max_discard_segments;
@@ -1077,7 +1077,7 @@ extern void blk_queue_max_write_same_sectors(struct request_queue *q, · 732 unmodified lines
10771077 unsigned int max_write_same_sectors);
10781078 extern void blk_queue_max_write_zeroes_sectors(struct request_queue *q,
10791079 unsigned int max_write_same_sectors);
1080−extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);
1080+extern void blk_queue_logical_block_size(struct request_queue *, unsigned int);
10811081 extern void blk_queue_physical_block_size(struct request_queue *, unsigned int);
10821082 extern void blk_queue_alignment_offset(struct request_queue *q,
10831083 unsigned int alignment);
@@ -1291,7 +1291,7 @@ static inline unsigned int queue_max_segment_size(const struct request_queue *q) · 207 unmodified lines
12911291 return q->limits.max_segment_size;
12921292 }
12931293
1294−static inline unsigned short queue_logical_block_size(const struct request_queue *q)
1294+static inline unsigned queue_logical_block_size(const struct request_queue *q)
12951295 {
12961296 int retval = 512;
12971297
@@ -1301,7 +1301,7 @@ static inline unsigned short queue_logical_block_size(const struct request_queue · 3 unmodified lines
13011301 return retval;
13021302 }
13031303
1304−static inline unsigned short bdev_logical_block_size(struct block_device *bdev)
1304+static inline unsigned int bdev_logical_block_size(struct block_device *bdev)
13051305 {
13061306 return queue_logical_block_size(bdev_get_queue(bdev));
13071307 }
include/linux/bpf-cgroup.h+4−4
@@ -157,8 +157,8 @@ void bpf_cgroup_storage_link(struct bpf_cgroup_storage *storage, · 156 unmodified lines
157157 struct cgroup *cgroup,
158158 enum bpf_attach_type type);
159159 void bpf_cgroup_storage_unlink(struct bpf_cgroup_storage *storage);
160−int bpf_cgroup_storage_assign(struct bpf_prog *prog, struct bpf_map *map);
161−void bpf_cgroup_storage_release(struct bpf_prog *prog, struct bpf_map *map);
160+int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux, struct bpf_map *map);
161+void bpf_cgroup_storage_release(struct bpf_prog_aux *aux, struct bpf_map *map);
162162
163163 int bpf_percpu_cgroup_storage_copy(struct bpf_map *map, void *key, void *value);
164164 int bpf_percpu_cgroup_storage_update(struct bpf_map *map, void *key,
@@ -360,9 +360,9 @@ static inline int cgroup_bpf_prog_query(const union bpf_attr *attr, · 195 unmodified lines
360360
361361 static inline void bpf_cgroup_storage_set(
362362 struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE]) {}
363−static inline int bpf_cgroup_storage_assign(struct bpf_prog *prog,
363+static inline int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux,
364364 struct bpf_map *map) { return 0; }
365−static inline void bpf_cgroup_storage_release(struct bpf_prog *prog,
365+static inline void bpf_cgroup_storage_release(struct bpf_prog_aux *aux,
366366 struct bpf_map *map) {}
367367 static inline struct bpf_cgroup_storage *bpf_cgroup_storage_alloc(
368368 struct bpf_prog *prog, enum bpf_cgroup_storage_type stype) { return NULL; }
include/linux/bpf.h+3−0
@@ -461,6 +461,7 @@ struct bpf_trampoline { · 460 unmodified lines
461461 struct {
462462 struct btf_func_model model;
463463 void *addr;
464+ bool ftrace_managed;
464465 } func;
465466 /* list of BPF programs using this trampoline */
466467 struct hlist_head progs_hlist[BPF_TRAMP_MAX];
@@ -817,6 +818,8 @@ struct bpf_prog * __must_check bpf_prog_inc_not_zero(struct bpf_prog *prog); · 350 unmodified lines
817818 void bpf_prog_put(struct bpf_prog *prog);
818819 int __bpf_prog_charge(struct user_struct *user, u32 pages);
819820 void __bpf_prog_uncharge(struct user_struct *user, u32 pages);
821+void __bpf_free_used_maps(struct bpf_prog_aux *aux,
822+ struct bpf_map **used_maps, u32 len);
820823
821824 void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock);
822825 void bpf_map_free_id(struct bpf_map *map, bool do_idr_lock);
include/linux/bvec.h+0−22
@@ -153,26 +153,4 @@ static inline void bvec_advance(const struct bio_vec *bvec, · 152 unmodified lines
153153 }
154154 }
155155
156−/*
157− * Get the last single-page segment from the multi-page bvec and store it
158− * in @seg
159− */
160−static inline void mp_bvec_last_segment(const struct bio_vec *bvec,
161− struct bio_vec *seg)
162−{
163− unsigned total = bvec->bv_offset + bvec->bv_len;
164− unsigned last_page = (total - 1) / PAGE_SIZE;
165−
166− seg->bv_page = bvec->bv_page + last_page;
167−
168− /* the whole segment is inside the last page */
169− if (bvec->bv_offset >= last_page * PAGE_SIZE) {
170− seg->bv_offset = bvec->bv_offset % PAGE_SIZE;
171− seg->bv_len = bvec->bv_len;
172− } else {
173− seg->bv_offset = 0;
174− seg->bv_len = total - last_page * PAGE_SIZE;
175− }
176−}
177−
178156 #endif /* __LINUX_BVEC_ITER_H */
include/linux/can/dev.h+34−0
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #include <linux/can/error.h>
1919 #include <linux/can/led.h>
2020 #include <linux/can/netlink.h>
21+#include <linux/can/skb.h>
2122 #include <linux/netdevice.h>
2223
2324 /*
@@ -91,6 +92,36 @@ struct can_priv { · 67 unmodified lines
9192 #define get_can_dlc(i) (min_t(__u8, (i), CAN_MAX_DLC))
9293 #define get_canfd_dlc(i) (min_t(__u8, (i), CANFD_MAX_DLC))
9394
95+/* Check for outgoing skbs that have not been created by the CAN subsystem */
96+static inline bool can_skb_headroom_valid(struct net_device *dev,
97+ struct sk_buff *skb)
98+{
99+ /* af_packet creates a headroom of HH_DATA_MOD bytes which is fine */
100+ if (WARN_ON_ONCE(skb_headroom(skb) < sizeof(struct can_skb_priv)))
101+ return false;
102+
103+ /* af_packet does not apply CAN skb specific settings */
104+ if (skb->ip_summed == CHECKSUM_NONE) {
105+ /* init headroom */
106+ can_skb_prv(skb)->ifindex = dev->ifindex;
107+ can_skb_prv(skb)->skbcnt = 0;
108+
109+ skb->ip_summed = CHECKSUM_UNNECESSARY;
110+
111+ /* preform proper loopback on capable devices */
112+ if (dev->flags & IFF_ECHO)
113+ skb->pkt_type = PACKET_LOOPBACK;
114+ else
115+ skb->pkt_type = PACKET_HOST;
116+
117+ skb_reset_mac_header(skb);
118+ skb_reset_network_header(skb);
119+ skb_reset_transport_header(skb);
120+ }
121+
122+ return true;
123+}
124+
94125 /* Drop a given socketbuffer if it does not contain a valid CAN frame. */
95126 static inline bool can_dropped_invalid_skb(struct net_device *dev,
96127 struct sk_buff *skb)
@@ -108,6 +139,9 @@ static inline bool can_dropped_invalid_skb(struct net_device *dev, · 11 unmodified lines
108139 } else
109140 goto inval_skb;
110141
142+ if (!can_skb_headroom_valid(dev, skb))
143+ goto inval_skb;
144+
111145 return false;
112146
113147 inval_skb:
include/linux/cpufreq.h+0−11
@@ -595,17 +595,6 @@ struct governor_attr { · 594 unmodified lines
595595 size_t count);
596596 };
597597
598−static inline bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy)
599−{
600− /*
601− * Allow remote callbacks if:
602− * - dvfs_possible_from_any_cpu flag is set
603− * - the local and remote CPUs share cpufreq policy
604− */
605− return policy->dvfs_possible_from_any_cpu ||
606− cpumask_test_cpu(smp_processor_id(), policy->cpus);
607−}
608−
609598 /*********************************************************************
610599 * FREQUENCY TABLE HELPERS *
611600 *********************************************************************/
include/linux/dmaengine.h+4−1
@@ -1364,8 +1364,11 @@ static inline int dma_get_slave_caps(struct dma_chan *chan, · 1363 unmodified lines
13641364 static inline int dmaengine_desc_set_reuse(struct dma_async_tx_descriptor *tx)
13651365 {
13661366 struct dma_slave_caps caps;
1367+ int ret;
13671368
1368− dma_get_slave_caps(tx->chan, &caps);
1369+ ret = dma_get_slave_caps(tx->chan, &caps);
1370+ if (ret)
1371+ return ret;
13691372
13701373 if (caps.descriptor_reuse) {
13711374 tx->flags |= DMA_CTRL_REUSE;
include/linux/efi.h+5−5
@@ -824,7 +824,7 @@ typedef struct { · 823 unmodified lines
824824 __aligned_u64 image_size;
825825 unsigned int image_code_type;
826826 unsigned int image_data_type;
827− unsigned long unload;
827+ u32 unload;
828828 } efi_loaded_image_32_t;
829829
830830 typedef struct {
@@ -840,14 +840,14 @@ typedef struct { · 9 unmodified lines
840840 __aligned_u64 image_size;
841841 unsigned int image_code_type;
842842 unsigned int image_data_type;
843− unsigned long unload;
843+ u64 unload;
844844 } efi_loaded_image_64_t;
845845
846846 typedef struct {
847847 u32 revision;
848− void *parent_handle;
848+ efi_handle_t parent_handle;
849849 efi_system_table_t *system_table;
850− void *device_handle;
850+ efi_handle_t device_handle;
851851 void *file_path;
852852 void *reserved;
853853 u32 load_options_size;
@@ -856,7 +856,7 @@ typedef struct { · 2 unmodified lines
856856 __aligned_u64 image_size;
857857 unsigned int image_code_type;
858858 unsigned int image_data_type;
859− unsigned long unload;
859+ efi_status_t (*unload)(efi_handle_t image_handle);
860860 } efi_loaded_image_t;
861861
862862
include/linux/if_ether.h+8−0
@@ -24,6 +24,14 @@ static inline struct ethhdr *eth_hdr(const struct sk_buff *skb) · 23 unmodified lines
2424 return (struct ethhdr *)skb_mac_header(skb);
2525 }
2626
27+/* Prefer this version in TX path, instead of
28+ * skb_reset_mac_header() + eth_hdr()
29+ */
30+static inline struct ethhdr *skb_eth_hdr(const struct sk_buff *skb)
31+{
32+ return (struct ethhdr *)skb->data;
33+}
34+
2735 static inline struct ethhdr *inner_eth_hdr(const struct sk_buff *skb)
2836 {
2937 return (struct ethhdr *)skb_inner_mac_header(skb);
include/linux/jbd2.h+1−1
@@ -457,7 +457,7 @@ struct jbd2_revoke_table_s; · 456 unmodified lines
457457 * @h_journal: Which journal handle belongs to - used iff h_reserved set.
458458 * @h_rsv_handle: Handle reserved for finishing the logical operation.
459459 * @h_total_credits: Number of remaining buffers we are allowed to add to
460− journal. These are dirty buffers and revoke descriptor blocks.
460+ * journal. These are dirty buffers and revoke descriptor blocks.
461461 * @h_revoke_credits: Number of remaining revoke records available for handle
462462 * @h_ref: Reference count on this handle.
463463 * @h_err: Field for caller's use to track errors through large fs operations.
include/linux/kasan.h+9−6
@@ -205,20 +205,23 @@ static inline void *kasan_reset_tag(const void *addr) · 204 unmodified lines
205205 #endif /* CONFIG_KASAN_SW_TAGS */
206206
207207 #ifdef CONFIG_KASAN_VMALLOC
208−int kasan_populate_vmalloc(unsigned long requested_size,
209− struct vm_struct *area);
210−void kasan_poison_vmalloc(void *start, unsigned long size);
208+int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
209+void kasan_poison_vmalloc(const void *start, unsigned long size);
210+void kasan_unpoison_vmalloc(const void *start, unsigned long size);
211211 void kasan_release_vmalloc(unsigned long start, unsigned long end,
212212 unsigned long free_region_start,
213213 unsigned long free_region_end);
214214 #else
215−static inline int kasan_populate_vmalloc(unsigned long requested_size,
216− struct vm_struct *area)
215+static inline int kasan_populate_vmalloc(unsigned long start,
216+ unsigned long size)
217217 {
218218 return 0;
219219 }
220220
221−static inline void kasan_poison_vmalloc(void *start, unsigned long size) {}
221+static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
222+{ }
223+static inline void kasan_unpoison_vmalloc(const void *start, unsigned long size)
224+{ }
222225 static inline void kasan_release_vmalloc(unsigned long start,
223226 unsigned long end,
224227 unsigned long free_region_start,
include/linux/kernel.h+0−9
@@ -79,15 +79,6 @@ · 78 unmodified lines
7979 */
8080 #define round_down(x, y) ((x) & ~__round_mask(x, y))
8181
82−/**
83− * FIELD_SIZEOF - get the size of a struct's field
84− * @t: the target struct
85− * @f: the target struct's field
86− * Return: the size of @f in the struct definition without having a
87− * declared instance of @t.
88− */
89−#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
90−
9182 #define typeof_member(T, m) typeof(((T*)0)->m)
9283
9384 #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
include/linux/libata.h+1−0
@@ -1175,6 +1175,7 @@ extern unsigned int ata_do_dev_read_id(struct ata_device *dev, · 1174 unmodified lines
11751175 struct ata_taskfile *tf, u16 *id);
11761176 extern void ata_qc_complete(struct ata_queued_cmd *qc);
11771177 extern int ata_qc_complete_multiple(struct ata_port *ap, u64 qc_active);
1178+extern u64 ata_qc_get_active(struct ata_port *ap);
11781179 extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd);
11791180 extern int ata_std_bios_param(struct scsi_device *sdev,
11801181 struct block_device *bdev,
include/linux/memory_hotplug.h+5−2
@@ -122,8 +122,8 @@ static inline bool movable_node_is_enabled(void) · 121 unmodified lines
122122
123123 extern void arch_remove_memory(int nid, u64 start, u64 size,
124124 struct vmem_altmap *altmap);
125−extern void __remove_pages(struct zone *zone, unsigned long start_pfn,
126− unsigned long nr_pages, struct vmem_altmap *altmap);
125+extern void __remove_pages(unsigned long start_pfn, unsigned long nr_pages,
126+ struct vmem_altmap *altmap);
127127
128128 /* reasonably generic interface to expand the physical pages */
129129 extern int __add_pages(int nid, unsigned long start_pfn, unsigned long nr_pages,
@@ -342,6 +342,9 @@ extern int add_memory(int nid, u64 start, u64 size); · 212 unmodified lines
342342 extern int add_memory_resource(int nid, struct resource *resource);
343343 extern void move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
344344 unsigned long nr_pages, struct vmem_altmap *altmap);
345+extern void remove_pfn_range_from_zone(struct zone *zone,
346+ unsigned long start_pfn,
347+ unsigned long nr_pages);
345348 extern bool is_memblock_offlined(struct memory_block *mem);
346349 extern int sparse_add_section(int nid, unsigned long pfn,
347350 unsigned long nr_pages, struct vmem_altmap *altmap);
include/linux/mfd/mt6397/rtc.h+8−0
@@ -46,6 +46,14 @@ · 45 unmodified lines
4646
4747 #define RTC_AL_SEC 0x0018
4848
49+#define RTC_AL_SEC_MASK 0x003f
50+#define RTC_AL_MIN_MASK 0x003f
51+#define RTC_AL_HOU_MASK 0x001f
52+#define RTC_AL_DOM_MASK 0x001f
53+#define RTC_AL_DOW_MASK 0x0007
54+#define RTC_AL_MTH_MASK 0x000f
55+#define RTC_AL_YEA_MASK 0x007f
56+
4957 #define RTC_PDN2 0x002e
5058 #define RTC_PDN2_PWRON_ALARM BIT(4)
5159
include/linux/mm.h+18−3
@@ -2621,6 +2621,9 @@ static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags) · 2620 unmodified lines
26212621 typedef int (*pte_fn_t)(pte_t *pte, unsigned long addr, void *data);
26222622 extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
26232623 unsigned long size, pte_fn_t fn, void *data);
2624+extern int apply_to_existing_page_range(struct mm_struct *mm,
2625+ unsigned long address, unsigned long size,
2626+ pte_fn_t fn, void *data);
26242627
26252628 #ifdef CONFIG_PAGE_POISONING
26262629 extern bool page_poisoning_enabled(void);
@@ -2655,13 +2658,25 @@ static inline bool want_init_on_free(void) · 28 unmodified lines
26552658 !page_poisoning_enabled();
26562659 }
26572660
2658−#ifdef CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT
2659−DECLARE_STATIC_KEY_TRUE(_debug_pagealloc_enabled);
2661+#ifdef CONFIG_DEBUG_PAGEALLOC
2662+extern void init_debug_pagealloc(void);
26602663 #else
2661−DECLARE_STATIC_KEY_FALSE(_debug_pagealloc_enabled);
2664+static inline void init_debug_pagealloc(void) {}
26622665 #endif
2666+extern bool _debug_pagealloc_enabled_early;
2667+DECLARE_STATIC_KEY_FALSE(_debug_pagealloc_enabled);
26632668
26642669 static inline bool debug_pagealloc_enabled(void)
2670+{
2671+ return IS_ENABLED(CONFIG_DEBUG_PAGEALLOC) &&
2672+ _debug_pagealloc_enabled_early;
2673+}
2674+
2675+/*
2676+ * For use in fast paths after init_debug_pagealloc() has run, or when a
2677+ * false negative result is not harmful when called too early.
2678+ */
2679+static inline bool debug_pagealloc_enabled_static(void)
26652680 {
26662681 if (!IS_ENABLED(CONFIG_DEBUG_PAGEALLOC))
26672682 return false;
include/linux/mmzone.h+2−3
@@ -215,9 +215,8 @@ enum node_stat_item { · 214 unmodified lines
215215 NR_INACTIVE_FILE, /* " " " " " */
216216 NR_ACTIVE_FILE, /* " " " " " */
217217 NR_UNEVICTABLE, /* " " " " " */
218− NR_SLAB_RECLAIMABLE, /* Please do not reorder this item */
219− NR_SLAB_UNRECLAIMABLE, /* and this one without looking at
220− * memcg_flush_percpu_vmstats() first. */
218+ NR_SLAB_RECLAIMABLE,
219+ NR_SLAB_UNRECLAIMABLE,
221220 NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */
222221 NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */
223222 WORKINGSET_NODES,
include/linux/mod_devicetable.h+2−2
@@ -587,9 +587,9 @@ struct platform_device_id { · 586 unmodified lines
587587 #define MDIO_NAME_SIZE 32
588588 #define MDIO_MODULE_PREFIX "mdio:"
589589
590−#define MDIO_ID_FMT "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"
590+#define MDIO_ID_FMT "%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u"
591591 #define MDIO_ID_ARGS(_id) \
592− (_id)>>31, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
592+ ((_id)>>31) & 1, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
593593 ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \
594594 ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \
595595 ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \
include/linux/mtd/flashchip.h+1−1
@@ -40,7 +40,7 @@ typedef enum { · 39 unmodified lines
4040 FL_READING,
4141 FL_CACHEDPRG,
4242 /* These 4 come from onenand_state_t, which has been unified here */
43− FL_RESETING,
43+ FL_RESETTING,
4444 FL_OTPING,
4545 FL_PREPARING_ERASE,
4646 FL_VERIFYING_ERASE,
include/linux/namei.h+0−1
@@ -34,7 +34,6 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; · 33 unmodified lines
3434
3535 /* internal use only */
3636 #define LOOKUP_PARENT 0x0010
37−#define LOOKUP_NO_REVAL 0x0080
3837 #define LOOKUP_JUMPED 0x1000
3938 #define LOOKUP_ROOT 0x2000
4039 #define LOOKUP_ROOT_GRABBED 0x0008
include/linux/netdevice.h+1−1
@@ -1775,7 +1775,7 @@ enum netdev_priv_flags { · 1774 unmodified lines
17751775 * for hardware timestamping
17761776 * @sfp_bus: attached &struct sfp_bus structure.
17771777 * @qdisc_tx_busylock_key: lockdep class annotating Qdisc->busylock
1778− spinlock
1778+ * spinlock
17791779 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
17801780 * @qdisc_xmit_lock_key: lockdep class annotating
17811781 * netdev_queue->_xmit_lock spinlock
include/linux/of_mdio.h+6−0
@@ -12,6 +12,7 @@ · 11 unmodified lines
1212 #include <linux/of.h>
1313
1414 #if IS_ENABLED(CONFIG_OF_MDIO)
15+extern bool of_mdiobus_child_is_phy(struct device_node *child);
1516 extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
1617 extern struct phy_device *of_phy_find_device(struct device_node *phy_np);
1718 extern struct phy_device *of_phy_connect(struct net_device *dev,
@@ -54,6 +55,11 @@ static inline int of_mdio_parse_addr(struct device *dev, · 36 unmodified lines
5455 }
5556
5657 #else /* CONFIG_OF_MDIO */
58+static inline bool of_mdiobus_child_is_phy(struct device_node *child)
59+{
60+ return false;
61+}
62+
5763 static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
5864 {
5965 /*
include/linux/phy.h+1−1
@@ -1000,7 +1000,7 @@ int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum, · 999 unmodified lines
10001000 int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
10011001 u16 mask, u16 set);
10021002
1003−struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
1003+struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
10041004 bool is_c45,
10051005 struct phy_c45_device_ids *c45_ids);
10061006 #if IS_ENABLED(CONFIG_PHYLIB)
include/linux/platform_data/ti-sysc.h+1−0
@@ -49,6 +49,7 @@ struct sysc_regbits { · 48 unmodified lines
4949 s8 emufree_shift;
5050 };
5151
52+#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
5253 #define SYSC_MODULE_QUIRK_AESS BIT(19)
5354 #define SYSC_MODULE_QUIRK_SGX BIT(18)
5455 #define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
include/linux/posix-clock.h+11−8
@@ -69,29 +69,32 @@ struct posix_clock_operations { · 68 unmodified lines
6969 *
7070 * @ops: Functional interface to the clock
7171 * @cdev: Character device instance for this clock
72− * @kref: Reference count.
72+ * @dev: Pointer to the clock's device.
7373 * @rwsem: Protects the 'zombie' field from concurrent access.
7474 * @zombie: If 'zombie' is true, then the hardware has disappeared.
75− * @release: A function to free the structure when the reference count reaches
76− * zero. May be NULL if structure is statically allocated.
7775 *
7876 * Drivers should embed their struct posix_clock within a private
7977 * structure, obtaining a reference to it during callbacks using
8078 * container_of().
79+ *
80+ * Drivers should supply an initialized but not exposed struct device
81+ * to posix_clock_register(). It is used to manage lifetime of the
82+ * driver's private structure. It's 'release' field should be set to
83+ * a release function for this private structure.
8184 */
8285 struct posix_clock {
8386 struct posix_clock_operations ops;
8487 struct cdev cdev;
85− struct kref kref;
88+ struct device *dev;
8689 struct rw_semaphore rwsem;
8790 bool zombie;
88− void (*release)(struct posix_clock *clk);
8991 };
9092
9193 /**
9294 * posix_clock_register() - register a new clock
93− * @clk: Pointer to the clock. Caller must provide 'ops' and 'release'
94− * @devid: Allocated device id
95+ * @clk: Pointer to the clock. Caller must provide 'ops' field
96+ * @dev: Pointer to the initialized device. Caller must provide
97+ * 'release' field
9598 *
9699 * A clock driver calls this function to register itself with the
97100 * clock device subsystem. If 'clk' points to dynamically allocated
@@ -100,7 +103,7 @@ struct posix_clock { · 2 unmodified lines
100103 *
101104 * Returns zero on success, non-zero otherwise.
102105 */
103−int posix_clock_register(struct posix_clock *clk, dev_t devid);
106+int posix_clock_register(struct posix_clock *clk, struct device *dev);
104107
105108 /**
106109 * posix_clock_unregister() - unregister a clock
include/linux/rculist_nulls.h+37−0
@@ -100,6 +100,43 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, · 99 unmodified lines
100100 first->pprev = &n->next;
101101 }
102102
103+/**
104+ * hlist_nulls_add_tail_rcu
105+ * @n: the element to add to the hash list.
106+ * @h: the list to add to.
107+ *
108+ * Description:
109+ * Adds the specified element to the specified hlist_nulls,
110+ * while permitting racing traversals.
111+ *
112+ * The caller must take whatever precautions are necessary
113+ * (such as holding appropriate locks) to avoid racing
114+ * with another list-mutation primitive, such as hlist_nulls_add_head_rcu()
115+ * or hlist_nulls_del_rcu(), running on this same list.
116+ * However, it is perfectly legal to run concurrently with
117+ * the _rcu list-traversal primitives, such as
118+ * hlist_nulls_for_each_entry_rcu(), used to prevent memory-consistency
119+ * problems on Alpha CPUs. Regardless of the type of CPU, the
120+ * list-traversal primitive must be guarded by rcu_read_lock().
121+ */
122+static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
123+ struct hlist_nulls_head *h)
124+{
125+ struct hlist_nulls_node *i, *last = NULL;
126+
127+ /* Note: write side code, so rcu accessors are not needed. */
128+ for (i = h->first; !is_a_nulls(i); i = i->next)
129+ last = i;
130+
131+ if (last) {
132+ n->next = last->next;
133+ n->pprev = &last->next;
134+ rcu_assign_pointer(hlist_next_rcu(last), n);
135+ } else {
136+ hlist_nulls_add_head_rcu(n, h);
137+ }
138+}
139+
103140 /**
104141 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
105142 * @tpos: the type * to use as a loop cursor.
include/linux/sched.h+2−2
@@ -1929,11 +1929,11 @@ static inline void rseq_migrate(struct task_struct *t) · 1928 unmodified lines
19291929
19301930 /*
19311931 * If parent process has a registered restartable sequences area, the
1932− * child inherits. Only applies when forking a process, not a thread.
1932+ * child inherits. Unregister rseq for a clone with CLONE_VM set.
19331933 */
19341934 static inline void rseq_fork(struct task_struct *t, unsigned long clone_flags)
19351935 {
1936− if (clone_flags & CLONE_THREAD) {
1936+ if (clone_flags & CLONE_VM) {
19371937 t->rseq = NULL;
19381938 t->rseq_sig = 0;
19391939 t->rseq_event_mask = 0;
include/linux/sched/cpufreq.h+3−0
@@ -12,6 +12,8 @@ · 11 unmodified lines
1212 #define SCHED_CPUFREQ_MIGRATION (1U << 1)
1313
1414 #ifdef CONFIG_CPU_FREQ
15+struct cpufreq_policy;
16+
1517 struct update_util_data {
1618 void (*func)(struct update_util_data *data, u64 time, unsigned int flags);
1719 };
@@ -20,6 +22,7 @@ void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data, · 2 unmodified lines
2022 void (*func)(struct update_util_data *data, u64 time,
2123 unsigned int flags));
2224 void cpufreq_remove_update_util_hook(int cpu);
25+bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy);
2326
2427 static inline unsigned long map_util_freq(unsigned long util,
2528 unsigned long freq, unsigned long cap)
include/linux/skmsg.h+9−4
@@ -358,17 +358,22 @@ static inline void sk_psock_update_proto(struct sock *sk, · 357 unmodified lines
358358 static inline void sk_psock_restore_proto(struct sock *sk,
359359 struct sk_psock *psock)
360360 {
361− sk->sk_write_space = psock->saved_write_space;
361+ sk->sk_prot->unhash = psock->saved_unhash;
362362
363363 if (psock->sk_proto) {
364364 struct inet_connection_sock *icsk = inet_csk(sk);
365365 bool has_ulp = !!icsk->icsk_ulp_data;
366366
367− if (has_ulp)
368− tcp_update_ulp(sk, psock->sk_proto);
369− else
367+ if (has_ulp) {
368+ tcp_update_ulp(sk, psock->sk_proto,
369+ psock->saved_write_space);
370+ } else {
370371 sk->sk_prot = psock->sk_proto;
372+ sk->sk_write_space = psock->saved_write_space;
373+ }
371374 psock->sk_proto = NULL;
375+ } else {
376+ sk->sk_write_space = psock->saved_write_space;
372377 }
373378 }
374379
include/linux/spi/spi.h+2−2
@@ -689,10 +689,10 @@ extern void spi_finalize_current_transfer(struct spi_controller *ctlr); · 688 unmodified lines
689689 /* Helper calls for driver to timestamp transfer */
690690 void spi_take_timestamp_pre(struct spi_controller *ctlr,
691691 struct spi_transfer *xfer,
692− const void *tx, bool irqs_off);
692+ size_t progress, bool irqs_off);
693693 void spi_take_timestamp_post(struct spi_controller *ctlr,
694694 struct spi_transfer *xfer,
695− const void *tx, bool irqs_off);
695+ size_t progress, bool irqs_off);
696696
697697 /* the spi driver core manages memory for the spi_controller classdev */
698698 extern struct spi_controller *__spi_alloc_controller(struct device *host,
include/linux/sxgbe_platform.h+1−1
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0-only */
22 /*
3− * 10G controller driver for Samsung EXYNOS SoCs
3+ * 10G controller driver for Samsung Exynos SoCs
44 *
55 * Copyright (C) 2013 Samsung Electronics Co., Ltd.
66 * http://www.samsung.com
include/linux/syscalls.h+1−0
@@ -1232,6 +1232,7 @@ asmlinkage long sys_ni_syscall(void); · 1231 unmodified lines
12321232 */
12331233
12341234 int ksys_umount(char __user *name, int flags);
1235+int ksys_dup(unsigned int fildes);
12351236 int ksys_chroot(const char __user *filename);
12361237 ssize_t ksys_write(unsigned int fd, const char __user *buf, size_t count);
12371238 int ksys_chdir(const char __user *filename);
include/linux/tnum.h+1−1
@@ -30,7 +30,7 @@ struct tnum tnum_lshift(struct tnum a, u8 shift); · 29 unmodified lines
3030 /* Shift (rsh) a tnum right (by a fixed shift) */
3131 struct tnum tnum_rshift(struct tnum a, u8 shift);
3232 /* Shift (arsh) a tnum right (by a fixed min_shift) */
33−struct tnum tnum_arshift(struct tnum a, u8 min_shift);
33+struct tnum tnum_arshift(struct tnum a, u8 min_shift, u8 insn_bitness);
3434 /* Add two tnums, return @a + @b */
3535 struct tnum tnum_add(struct tnum a, struct tnum b);
3636 /* Subtract two tnums, return @a - @b */
include/linux/tpm.h+1−0
@@ -403,6 +403,7 @@ extern int tpm_pcr_extend(struct tpm_chip *chip, u32 pcr_idx, · 402 unmodified lines
403403 extern int tpm_send(struct tpm_chip *chip, void *cmd, size_t buflen);
404404 extern int tpm_get_random(struct tpm_chip *chip, u8 *data, size_t max);
405405 extern struct tpm_chip *tpm_default_chip(void);
406+void tpm2_flush_context(struct tpm_chip *chip, u32 handle);
406407 #else
407408 static inline int tpm_is_tpm2(struct tpm_chip *chip)
408409 {