History

Merge branch 'i2c/for-current' into i2c/for-5.6

Wolfram Sang committed 6 years ago

Commit d02e5ee2 parents 9f7a036 24a49671008 files · +10123 −5144Browse files

Showing the changes to include/linux (30 of 1008 files). Show all

Unified · Split

30 files
  1. include/linux/ahci_platform.h +2 −0
  2. include/linux/bio.h +1 −0
  3. include/linux/bpf-cgroup.h +4 −4
  4. include/linux/bpf.h +3 −0
  5. include/linux/bvec.h +0 −22
  6. include/linux/can/dev.h +34 −0
  7. include/linux/cpufreq.h +0 −11
  8. include/linux/dmaengine.h +4 −1
  9. include/linux/efi.h +5 −5
  10. include/linux/if_ether.h +8 −0
  11. include/linux/jbd2.h +1 −1
  12. include/linux/kasan.h +9 −6
  13. include/linux/kernel.h +0 −9
  14. include/linux/libata.h +1 −0
  15. include/linux/memory_hotplug.h +5 −2
  16. include/linux/mfd/mt6397/rtc.h +8 −0
  17. include/linux/mm.h +3 −0
  18. include/linux/mod_devicetable.h +2 −2
  19. include/linux/mtd/flashchip.h +1 −1
  20. include/linux/netdevice.h +1 −1
  21. include/linux/of_mdio.h +6 −0
  22. include/linux/phy.h +1 −1
  23. include/linux/platform_data/ti-sysc.h +1 −0
  24. include/linux/posix-clock.h +11 −8
  25. include/linux/rculist_nulls.h +37 −0
  26. include/linux/sched/cpufreq.h +3 −0
  27. include/linux/spi/spi.h +2 −2
  28. include/linux/sxgbe_platform.h +1 −1
  29. include/linux/syscalls.h +1 −0
  30. include/linux/tpm.h +1 −0
include/linux/ahci_platform.h+2−0
@@ -19,6 +19,8 @@ struct ahci_host_priv; · 18 unmodified lines
19struct platform_device;19struct platform_device;
20struct scsi_host_template;20struct scsi_host_template;
21 21
22int ahci_platform_enable_phys(struct ahci_host_priv *hpriv);
23void ahci_platform_disable_phys(struct ahci_host_priv *hpriv);
22int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);24int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
23void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);25void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
24int ahci_platform_enable_regulators(struct ahci_host_priv *hpriv);26int 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
470 gfp_t);470 gfp_t);
471extern int bio_uncopy_user(struct bio *);471extern int bio_uncopy_user(struct bio *);
472void zero_fill_bio_iter(struct bio *bio, struct bvec_iter iter);472void zero_fill_bio_iter(struct bio *bio, struct bvec_iter iter);
473void bio_truncate(struct bio *bio, unsigned new_size);
473 474
474static inline void zero_fill_bio(struct bio *bio)475static inline void zero_fill_bio(struct bio *bio)
475{476{
include/linux/bpf-cgroup.h+4−4
@@ -157,8 +157,8 @@ void bpf_cgroup_storage_link(struct bpf_cgroup_storage *storage, · 156 unmodified lines
157 struct cgroup *cgroup,157 struct cgroup *cgroup,
158 enum bpf_attach_type type);158 enum bpf_attach_type type);
159void bpf_cgroup_storage_unlink(struct bpf_cgroup_storage *storage);159void bpf_cgroup_storage_unlink(struct bpf_cgroup_storage *storage);
160int bpf_cgroup_storage_assign(struct bpf_prog *prog, struct bpf_map *map);160int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux, struct bpf_map *map);
161void bpf_cgroup_storage_release(struct bpf_prog *prog, struct bpf_map *map);161void bpf_cgroup_storage_release(struct bpf_prog_aux *aux, struct bpf_map *map);
162 162
163int bpf_percpu_cgroup_storage_copy(struct bpf_map *map, void *key, void *value);163int bpf_percpu_cgroup_storage_copy(struct bpf_map *map, void *key, void *value);
164int bpf_percpu_cgroup_storage_update(struct bpf_map *map, void *key,164int 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
360 360
361static inline void bpf_cgroup_storage_set(361static inline void bpf_cgroup_storage_set(
362 struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE]) {}362 struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE]) {}
363static inline int bpf_cgroup_storage_assign(struct bpf_prog *prog,363static inline int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux,
364 struct bpf_map *map) { return 0; }364 struct bpf_map *map) { return 0; }
365static inline void bpf_cgroup_storage_release(struct bpf_prog *prog,365static inline void bpf_cgroup_storage_release(struct bpf_prog_aux *aux,
366 struct bpf_map *map) {}366 struct bpf_map *map) {}
367static inline struct bpf_cgroup_storage *bpf_cgroup_storage_alloc(367static inline struct bpf_cgroup_storage *bpf_cgroup_storage_alloc(
368 struct bpf_prog *prog, enum bpf_cgroup_storage_type stype) { return NULL; }368 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
461 struct {461 struct {
462 struct btf_func_model model;462 struct btf_func_model model;
463 void *addr;463 void *addr;
464 bool ftrace_managed;
464 } func;465 } func;
465 /* list of BPF programs using this trampoline */466 /* list of BPF programs using this trampoline */
466 struct hlist_head progs_hlist[BPF_TRAMP_MAX];467 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
817void bpf_prog_put(struct bpf_prog *prog);818void bpf_prog_put(struct bpf_prog *prog);
818int __bpf_prog_charge(struct user_struct *user, u32 pages);819int __bpf_prog_charge(struct user_struct *user, u32 pages);
819void __bpf_prog_uncharge(struct user_struct *user, u32 pages);820void __bpf_prog_uncharge(struct user_struct *user, u32 pages);
821void __bpf_free_used_maps(struct bpf_prog_aux *aux,
822 struct bpf_map **used_maps, u32 len);
820 823
821void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock);824void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock);
822void bpf_map_free_id(struct bpf_map *map, bool do_idr_lock);825void 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
153 }153 }
154}154}
155 155
156/*
157 * Get the last single-page segment from the multi-page bvec and store it
158 * in @seg
159 */
160static 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
178#endif /* __LINUX_BVEC_ITER_H */156#endif /* __LINUX_BVEC_ITER_H */
include/linux/can/dev.h+34−0
@@ -18,6 +18,7 @@ · 17 unmodified lines
18#include <linux/can/error.h>18#include <linux/can/error.h>
19#include <linux/can/led.h>19#include <linux/can/led.h>
20#include <linux/can/netlink.h>20#include <linux/can/netlink.h>
21#include <linux/can/skb.h>
21#include <linux/netdevice.h>22#include <linux/netdevice.h>
22 23
23/*24/*
@@ -91,6 +92,36 @@ struct can_priv { · 67 unmodified lines
91#define get_can_dlc(i) (min_t(__u8, (i), CAN_MAX_DLC))92#define get_can_dlc(i) (min_t(__u8, (i), CAN_MAX_DLC))
92#define get_canfd_dlc(i) (min_t(__u8, (i), CANFD_MAX_DLC))93#define get_canfd_dlc(i) (min_t(__u8, (i), CANFD_MAX_DLC))
93 94
95/* Check for outgoing skbs that have not been created by the CAN subsystem */
96static 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
94/* Drop a given socketbuffer if it does not contain a valid CAN frame. */125/* Drop a given socketbuffer if it does not contain a valid CAN frame. */
95static inline bool can_dropped_invalid_skb(struct net_device *dev,126static inline bool can_dropped_invalid_skb(struct net_device *dev,
96 struct sk_buff *skb)127 struct sk_buff *skb)
@@ -108,6 +139,9 @@ static inline bool can_dropped_invalid_skb(struct net_device *dev, · 11 unmodified lines
108 } else139 } else
109 goto inval_skb;140 goto inval_skb;
110 141
142 if (!can_skb_headroom_valid(dev, skb))
143 goto inval_skb;
144
111 return false;145 return false;
112 146
113inval_skb:147inval_skb:
include/linux/cpufreq.h+0−11
@@ -595,17 +595,6 @@ struct governor_attr { · 594 unmodified lines
595 size_t count);595 size_t count);
596};596};
597 597
598static 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
609/*********************************************************************598/*********************************************************************
610 * FREQUENCY TABLE HELPERS *599 * FREQUENCY TABLE HELPERS *
611 *********************************************************************/600 *********************************************************************/
include/linux/dmaengine.h+4−1
@@ -1364,8 +1364,11 @@ static inline int dma_get_slave_caps(struct dma_chan *chan, · 1363 unmodified lines
1364static inline int dmaengine_desc_set_reuse(struct dma_async_tx_descriptor *tx)1364static inline int dmaengine_desc_set_reuse(struct dma_async_tx_descriptor *tx)
1365{1365{
1366 struct dma_slave_caps caps;1366 struct dma_slave_caps caps;
1367 int ret;
1367 1368
1368 dma_get_slave_caps(tx->chan, &caps);1369 ret = dma_get_slave_caps(tx->chan, &caps);
1370 if (ret)
1371 return ret;
1369 1372
1370 if (caps.descriptor_reuse) {1373 if (caps.descriptor_reuse) {
1371 tx->flags |= DMA_CTRL_REUSE;1374 tx->flags |= DMA_CTRL_REUSE;
include/linux/efi.h+5−5
@@ -824,7 +824,7 @@ typedef struct { · 823 unmodified lines
824 __aligned_u64 image_size;824 __aligned_u64 image_size;
825 unsigned int image_code_type;825 unsigned int image_code_type;
826 unsigned int image_data_type;826 unsigned int image_data_type;
827 unsigned long unload;827 u32 unload;
828} efi_loaded_image_32_t;828} efi_loaded_image_32_t;
829 829
830typedef struct {830typedef struct {
@@ -840,14 +840,14 @@ typedef struct { · 9 unmodified lines
840 __aligned_u64 image_size;840 __aligned_u64 image_size;
841 unsigned int image_code_type;841 unsigned int image_code_type;
842 unsigned int image_data_type;842 unsigned int image_data_type;
843 unsigned long unload;843 u64 unload;
844} efi_loaded_image_64_t;844} efi_loaded_image_64_t;
845 845
846typedef struct {846typedef struct {
847 u32 revision;847 u32 revision;
848 void *parent_handle;848 efi_handle_t parent_handle;
849 efi_system_table_t *system_table;849 efi_system_table_t *system_table;
850 void *device_handle;850 efi_handle_t device_handle;
851 void *file_path;851 void *file_path;
852 void *reserved;852 void *reserved;
853 u32 load_options_size;853 u32 load_options_size;
@@ -856,7 +856,7 @@ typedef struct { · 2 unmodified lines
856 __aligned_u64 image_size;856 __aligned_u64 image_size;
857 unsigned int image_code_type;857 unsigned int image_code_type;
858 unsigned int image_data_type;858 unsigned int image_data_type;
859 unsigned long unload;859 efi_status_t (*unload)(efi_handle_t image_handle);
860} efi_loaded_image_t;860} efi_loaded_image_t;
861 861
862 862
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
24 return (struct ethhdr *)skb_mac_header(skb);24 return (struct ethhdr *)skb_mac_header(skb);
25}25}
26 26
27/* Prefer this version in TX path, instead of
28 * skb_reset_mac_header() + eth_hdr()
29 */
30static inline struct ethhdr *skb_eth_hdr(const struct sk_buff *skb)
31{
32 return (struct ethhdr *)skb->data;
33}
34
27static inline struct ethhdr *inner_eth_hdr(const struct sk_buff *skb)35static inline struct ethhdr *inner_eth_hdr(const struct sk_buff *skb)
28{36{
29 return (struct ethhdr *)skb_inner_mac_header(skb);37 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
457 * @h_journal: Which journal handle belongs to - used iff h_reserved set.457 * @h_journal: Which journal handle belongs to - used iff h_reserved set.
458 * @h_rsv_handle: Handle reserved for finishing the logical operation.458 * @h_rsv_handle: Handle reserved for finishing the logical operation.
459 * @h_total_credits: Number of remaining buffers we are allowed to add to459 * @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.
461 * @h_revoke_credits: Number of remaining revoke records available for handle461 * @h_revoke_credits: Number of remaining revoke records available for handle
462 * @h_ref: Reference count on this handle.462 * @h_ref: Reference count on this handle.
463 * @h_err: Field for caller's use to track errors through large fs operations.463 * @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
205#endif /* CONFIG_KASAN_SW_TAGS */205#endif /* CONFIG_KASAN_SW_TAGS */
206 206
207#ifdef CONFIG_KASAN_VMALLOC207#ifdef CONFIG_KASAN_VMALLOC
208int kasan_populate_vmalloc(unsigned long requested_size,208int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
209 struct vm_struct *area);209void kasan_poison_vmalloc(const void *start, unsigned long size);
210void kasan_poison_vmalloc(void *start, unsigned long size);210void kasan_unpoison_vmalloc(const void *start, unsigned long size);
211void kasan_release_vmalloc(unsigned long start, unsigned long end,211void kasan_release_vmalloc(unsigned long start, unsigned long end,
212 unsigned long free_region_start,212 unsigned long free_region_start,
213 unsigned long free_region_end);213 unsigned long free_region_end);
214#else214#else
215static inline int kasan_populate_vmalloc(unsigned long requested_size,215static inline int kasan_populate_vmalloc(unsigned long start,
216 struct vm_struct *area)216 unsigned long size)
217{217{
218 return 0;218 return 0;
219}219}
220 220
221static inline void kasan_poison_vmalloc(void *start, unsigned long size) {}221static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
222{ }
223static inline void kasan_unpoison_vmalloc(const void *start, unsigned long size)
224{ }
222static inline void kasan_release_vmalloc(unsigned long start,225static inline void kasan_release_vmalloc(unsigned long start,
223 unsigned long end,226 unsigned long end,
224 unsigned long free_region_start,227 unsigned long free_region_start,
include/linux/kernel.h+0−9
@@ -79,15 +79,6 @@ · 78 unmodified lines
79 */79 */
80#define round_down(x, y) ((x) & ~__round_mask(x, y))80#define round_down(x, y) ((x) & ~__round_mask(x, y))
81 81
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
91#define typeof_member(T, m) typeof(((T*)0)->m)82#define typeof_member(T, m) typeof(((T*)0)->m)
92 83
93#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP84#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
1175 struct ata_taskfile *tf, u16 *id);1175 struct ata_taskfile *tf, u16 *id);
1176extern void ata_qc_complete(struct ata_queued_cmd *qc);1176extern void ata_qc_complete(struct ata_queued_cmd *qc);
1177extern int ata_qc_complete_multiple(struct ata_port *ap, u64 qc_active);1177extern int ata_qc_complete_multiple(struct ata_port *ap, u64 qc_active);
1178extern u64 ata_qc_get_active(struct ata_port *ap);
1178extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd);1179extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd);
1179extern int ata_std_bios_param(struct scsi_device *sdev,1180extern int ata_std_bios_param(struct scsi_device *sdev,
1180 struct block_device *bdev,1181 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
122 122
123extern void arch_remove_memory(int nid, u64 start, u64 size,123extern void arch_remove_memory(int nid, u64 start, u64 size,
124 struct vmem_altmap *altmap);124 struct vmem_altmap *altmap);
125extern void __remove_pages(struct zone *zone, unsigned long start_pfn,125extern void __remove_pages(unsigned long start_pfn, unsigned long nr_pages,
126 unsigned long nr_pages, struct vmem_altmap *altmap);126 struct vmem_altmap *altmap);
127 127
128/* reasonably generic interface to expand the physical pages */128/* reasonably generic interface to expand the physical pages */
129extern int __add_pages(int nid, unsigned long start_pfn, unsigned long nr_pages,129extern 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
342extern int add_memory_resource(int nid, struct resource *resource);342extern int add_memory_resource(int nid, struct resource *resource);
343extern void move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,343extern void move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
344 unsigned long nr_pages, struct vmem_altmap *altmap);344 unsigned long nr_pages, struct vmem_altmap *altmap);
345extern void remove_pfn_range_from_zone(struct zone *zone,
346 unsigned long start_pfn,
347 unsigned long nr_pages);
345extern bool is_memblock_offlined(struct memory_block *mem);348extern bool is_memblock_offlined(struct memory_block *mem);
346extern int sparse_add_section(int nid, unsigned long pfn,349extern int sparse_add_section(int nid, unsigned long pfn,
347 unsigned long nr_pages, struct vmem_altmap *altmap);350 unsigned long nr_pages, struct vmem_altmap *altmap);
include/linux/mfd/mt6397/rtc.h+8−0
@@ -46,6 +46,14 @@ · 45 unmodified lines
46 46
47#define RTC_AL_SEC 0x001847#define RTC_AL_SEC 0x0018
48 48
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
49#define RTC_PDN2 0x002e57#define RTC_PDN2 0x002e
50#define RTC_PDN2_PWRON_ALARM BIT(4)58#define RTC_PDN2_PWRON_ALARM BIT(4)
51 59
include/linux/mm.h+3−0
@@ -2621,6 +2621,9 @@ static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags) · 2620 unmodified lines
2621typedef int (*pte_fn_t)(pte_t *pte, unsigned long addr, void *data);2621typedef int (*pte_fn_t)(pte_t *pte, unsigned long addr, void *data);
2622extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,2622extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
2623 unsigned long size, pte_fn_t fn, void *data);2623 unsigned long size, pte_fn_t fn, void *data);
2624extern int apply_to_existing_page_range(struct mm_struct *mm,
2625 unsigned long address, unsigned long size,
2626 pte_fn_t fn, void *data);
2624 2627
2625#ifdef CONFIG_PAGE_POISONING2628#ifdef CONFIG_PAGE_POISONING
2626extern bool page_poisoning_enabled(void);2629extern bool page_poisoning_enabled(void);
include/linux/mod_devicetable.h+2−2
@@ -587,9 +587,9 @@ struct platform_device_id { · 586 unmodified lines
587#define MDIO_NAME_SIZE 32587#define MDIO_NAME_SIZE 32
588#define MDIO_MODULE_PREFIX "mdio:"588#define MDIO_MODULE_PREFIX "mdio:"
589 589
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"
591#define MDIO_ID_ARGS(_id) \591#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, \
593 ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \593 ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \
594 ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \594 ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \
595 ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \595 ((_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
40 FL_READING,40 FL_READING,
41 FL_CACHEDPRG,41 FL_CACHEDPRG,
42 /* These 4 come from onenand_state_t, which has been unified here */42 /* These 4 come from onenand_state_t, which has been unified here */
43 FL_RESETING,43 FL_RESETTING,
44 FL_OTPING,44 FL_OTPING,
45 FL_PREPARING_ERASE,45 FL_PREPARING_ERASE,
46 FL_VERIFYING_ERASE,46 FL_VERIFYING_ERASE,
include/linux/netdevice.h+1−1
@@ -1775,7 +1775,7 @@ enum netdev_priv_flags { · 1774 unmodified lines
1775 * for hardware timestamping1775 * for hardware timestamping
1776 * @sfp_bus: attached &struct sfp_bus structure.1776 * @sfp_bus: attached &struct sfp_bus structure.
1777 * @qdisc_tx_busylock_key: lockdep class annotating Qdisc->busylock1777 * @qdisc_tx_busylock_key: lockdep class annotating Qdisc->busylock
1778 spinlock1778 * spinlock
1779 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount1779 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
1780 * @qdisc_xmit_lock_key: lockdep class annotating1780 * @qdisc_xmit_lock_key: lockdep class annotating
1781 * netdev_queue->_xmit_lock spinlock1781 * netdev_queue->_xmit_lock spinlock
include/linux/of_mdio.h+6−0
@@ -12,6 +12,7 @@ · 11 unmodified lines
12#include <linux/of.h>12#include <linux/of.h>
13 13
14#if IS_ENABLED(CONFIG_OF_MDIO)14#if IS_ENABLED(CONFIG_OF_MDIO)
15extern bool of_mdiobus_child_is_phy(struct device_node *child);
15extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);16extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
16extern struct phy_device *of_phy_find_device(struct device_node *phy_np);17extern struct phy_device *of_phy_find_device(struct device_node *phy_np);
17extern struct phy_device *of_phy_connect(struct net_device *dev,18extern 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
54}55}
55 56
56#else /* CONFIG_OF_MDIO */57#else /* CONFIG_OF_MDIO */
58static inline bool of_mdiobus_child_is_phy(struct device_node *child)
59{
60 return false;
61}
62
57static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)63static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
58{64{
59 /*65 /*
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
1000int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,1000int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
1001 u16 mask, u16 set);1001 u16 mask, u16 set);
1002 1002
1003struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,1003struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
1004 bool is_c45,1004 bool is_c45,
1005 struct phy_c45_device_ids *c45_ids);1005 struct phy_c45_device_ids *c45_ids);
1006#if IS_ENABLED(CONFIG_PHYLIB)1006#if IS_ENABLED(CONFIG_PHYLIB)
include/linux/platform_data/ti-sysc.h+1−0
@@ -49,6 +49,7 @@ struct sysc_regbits { · 48 unmodified lines
49 s8 emufree_shift;49 s8 emufree_shift;
50};50};
51 51
52#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
52#define SYSC_MODULE_QUIRK_AESS BIT(19)53#define SYSC_MODULE_QUIRK_AESS BIT(19)
53#define SYSC_MODULE_QUIRK_SGX BIT(18)54#define SYSC_MODULE_QUIRK_SGX BIT(18)
54#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)55#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
69 *69 *
70 * @ops: Functional interface to the clock70 * @ops: Functional interface to the clock
71 * @cdev: Character device instance for this clock71 * @cdev: Character device instance for this clock
72 * @kref: Reference count.72 * @dev: Pointer to the clock's device.
73 * @rwsem: Protects the 'zombie' field from concurrent access.73 * @rwsem: Protects the 'zombie' field from concurrent access.
74 * @zombie: If 'zombie' is true, then the hardware has disappeared.74 * @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.
77 *75 *
78 * Drivers should embed their struct posix_clock within a private76 * Drivers should embed their struct posix_clock within a private
79 * structure, obtaining a reference to it during callbacks using77 * structure, obtaining a reference to it during callbacks using
80 * container_of().78 * 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.
81 */84 */
82struct posix_clock {85struct posix_clock {
83 struct posix_clock_operations ops;86 struct posix_clock_operations ops;
84 struct cdev cdev;87 struct cdev cdev;
85 struct kref kref;88 struct device *dev;
86 struct rw_semaphore rwsem;89 struct rw_semaphore rwsem;
87 bool zombie;90 bool zombie;
88 void (*release)(struct posix_clock *clk);
89};91};
90 92
91/**93/**
92 * posix_clock_register() - register a new clock94 * posix_clock_register() - register a new clock
93 * @clk: Pointer to the clock. Caller must provide 'ops' and 'release'95 * @clk: Pointer to the clock. Caller must provide 'ops' field
94 * @devid: Allocated device id96 * @dev: Pointer to the initialized device. Caller must provide
97 * 'release' field
95 *98 *
96 * A clock driver calls this function to register itself with the99 * A clock driver calls this function to register itself with the
97 * clock device subsystem. If 'clk' points to dynamically allocated100 * clock device subsystem. If 'clk' points to dynamically allocated
@@ -100,7 +103,7 @@ struct posix_clock { · 2 unmodified lines
100 *103 *
101 * Returns zero on success, non-zero otherwise.104 * Returns zero on success, non-zero otherwise.
102 */105 */
103int posix_clock_register(struct posix_clock *clk, dev_t devid);106int posix_clock_register(struct posix_clock *clk, struct device *dev);
104 107
105/**108/**
106 * posix_clock_unregister() - unregister a clock109 * 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
100 first->pprev = &n->next;100 first->pprev = &n->next;
101}101}
102 102
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 */
122static 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
103/**140/**
104 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type141 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
105 * @tpos: the type * to use as a loop cursor.142 * @tpos: the type * to use as a loop cursor.
include/linux/sched/cpufreq.h+3−0
@@ -12,6 +12,8 @@ · 11 unmodified lines
12#define SCHED_CPUFREQ_MIGRATION (1U << 1)12#define SCHED_CPUFREQ_MIGRATION (1U << 1)
13 13
14#ifdef CONFIG_CPU_FREQ14#ifdef CONFIG_CPU_FREQ
15struct cpufreq_policy;
16
15struct update_util_data {17struct update_util_data {
16 void (*func)(struct update_util_data *data, u64 time, unsigned int flags);18 void (*func)(struct update_util_data *data, u64 time, unsigned int flags);
17};19};
@@ -20,6 +22,7 @@ void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data, · 2 unmodified lines
20 void (*func)(struct update_util_data *data, u64 time,22 void (*func)(struct update_util_data *data, u64 time,
21 unsigned int flags));23 unsigned int flags));
22void cpufreq_remove_update_util_hook(int cpu);24void cpufreq_remove_update_util_hook(int cpu);
25bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy);
23 26
24static inline unsigned long map_util_freq(unsigned long util,27static inline unsigned long map_util_freq(unsigned long util,
25 unsigned long freq, unsigned long cap)28 unsigned long freq, unsigned long cap)
include/linux/spi/spi.h+2−2
@@ -689,10 +689,10 @@ extern void spi_finalize_current_transfer(struct spi_controller *ctlr); · 688 unmodified lines
689/* Helper calls for driver to timestamp transfer */689/* Helper calls for driver to timestamp transfer */
690void spi_take_timestamp_pre(struct spi_controller *ctlr,690void spi_take_timestamp_pre(struct spi_controller *ctlr,
691 struct spi_transfer *xfer,691 struct spi_transfer *xfer,
692 const void *tx, bool irqs_off);692 size_t progress, bool irqs_off);
693void spi_take_timestamp_post(struct spi_controller *ctlr,693void spi_take_timestamp_post(struct spi_controller *ctlr,
694 struct spi_transfer *xfer,694 struct spi_transfer *xfer,
695 const void *tx, bool irqs_off);695 size_t progress, bool irqs_off);
696 696
697/* the spi driver core manages memory for the spi_controller classdev */697/* the spi driver core manages memory for the spi_controller classdev */
698extern struct spi_controller *__spi_alloc_controller(struct device *host,698extern struct spi_controller *__spi_alloc_controller(struct device *host,
include/linux/sxgbe_platform.h+1−1
@@ -1,6 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-only */1/* SPDX-License-Identifier: GPL-2.0-only */
2/*2/*
3 * 10G controller driver for Samsung EXYNOS SoCs3 * 10G controller driver for Samsung Exynos SoCs
4 *4 *
5 * Copyright (C) 2013 Samsung Electronics Co., Ltd.5 * Copyright (C) 2013 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com6 * http://www.samsung.com
include/linux/syscalls.h+1−0
@@ -1232,6 +1232,7 @@ asmlinkage long sys_ni_syscall(void); · 1231 unmodified lines
1232 */1232 */
1233 1233
1234int ksys_umount(char __user *name, int flags);1234int ksys_umount(char __user *name, int flags);
1235int ksys_dup(unsigned int fildes);
1235int ksys_chroot(const char __user *filename);1236int ksys_chroot(const char __user *filename);
1236ssize_t ksys_write(unsigned int fd, const char __user *buf, size_t count);1237ssize_t ksys_write(unsigned int fd, const char __user *buf, size_t count);
1237int ksys_chdir(const char __user *filename);1238int ksys_chdir(const char __user *filename);
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
403extern int tpm_send(struct tpm_chip *chip, void *cmd, size_t buflen);403extern int tpm_send(struct tpm_chip *chip, void *cmd, size_t buflen);
404extern int tpm_get_random(struct tpm_chip *chip, u8 *data, size_t max);404extern int tpm_get_random(struct tpm_chip *chip, u8 *data, size_t max);
405extern struct tpm_chip *tpm_default_chip(void);405extern struct tpm_chip *tpm_default_chip(void);
406void tpm2_flush_context(struct tpm_chip *chip, u32 handle);
406#else407#else
407static inline int tpm_is_tpm2(struct tpm_chip *chip)408static inline int tpm_is_tpm2(struct tpm_chip *chip)
408{409{