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
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/blkdev.h+4−4
@@ -328,6 +328,7 @@ struct queue_limits { · 327 unmodified lines
328 unsigned int max_sectors;328 unsigned int max_sectors;
329 unsigned int max_segment_size;329 unsigned int max_segment_size;
330 unsigned int physical_block_size;330 unsigned int physical_block_size;
331 unsigned int logical_block_size;
331 unsigned int alignment_offset;332 unsigned int alignment_offset;
332 unsigned int io_min;333 unsigned int io_min;
333 unsigned int io_opt;334 unsigned int io_opt;
@@ -338,7 +339,6 @@ struct queue_limits { · 4 unmodified lines
338 unsigned int discard_granularity;339 unsigned int discard_granularity;
339 unsigned int discard_alignment;340 unsigned int discard_alignment;
340 341
341 unsigned short logical_block_size;
342 unsigned short max_segments;342 unsigned short max_segments;
343 unsigned short max_integrity_segments;343 unsigned short max_integrity_segments;
344 unsigned short max_discard_segments;344 unsigned short max_discard_segments;
@@ -1077,7 +1077,7 @@ extern void blk_queue_max_write_same_sectors(struct request_queue *q, · 732 unmodified lines
1077 unsigned int max_write_same_sectors);1077 unsigned int max_write_same_sectors);
1078extern void blk_queue_max_write_zeroes_sectors(struct request_queue *q,1078extern void blk_queue_max_write_zeroes_sectors(struct request_queue *q,
1079 unsigned int max_write_same_sectors);1079 unsigned int max_write_same_sectors);
1080extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);1080extern void blk_queue_logical_block_size(struct request_queue *, unsigned int);
1081extern void blk_queue_physical_block_size(struct request_queue *, unsigned int);1081extern void blk_queue_physical_block_size(struct request_queue *, unsigned int);
1082extern void blk_queue_alignment_offset(struct request_queue *q,1082extern void blk_queue_alignment_offset(struct request_queue *q,
1083 unsigned int alignment);1083 unsigned int alignment);
@@ -1291,7 +1291,7 @@ static inline unsigned int queue_max_segment_size(const struct request_queue *q) · 207 unmodified lines
1291 return q->limits.max_segment_size;1291 return q->limits.max_segment_size;
1292}1292}
1293 1293
1294static inline unsigned short queue_logical_block_size(const struct request_queue *q)1294static inline unsigned queue_logical_block_size(const struct request_queue *q)
1295{1295{
1296 int retval = 512;1296 int retval = 512;
1297 1297
@@ -1301,7 +1301,7 @@ static inline unsigned short queue_logical_block_size(const struct request_queue · 3 unmodified lines
1301 return retval;1301 return retval;
1302}1302}
1303 1303
1304static inline unsigned short bdev_logical_block_size(struct block_device *bdev)1304static inline unsigned int bdev_logical_block_size(struct block_device *bdev)
1305{1305{
1306 return queue_logical_block_size(bdev_get_queue(bdev));1306 return queue_logical_block_size(bdev_get_queue(bdev));
1307}1307}
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+18−3
@@ -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);
@@ -2655,13 +2658,25 @@ static inline bool want_init_on_free(void) · 28 unmodified lines
2655 !page_poisoning_enabled();2658 !page_poisoning_enabled();
2656}2659}
2657 2660
2658#ifdef CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT2661#ifdef CONFIG_DEBUG_PAGEALLOC
2659DECLARE_STATIC_KEY_TRUE(_debug_pagealloc_enabled);2662extern void init_debug_pagealloc(void);
2660#else2663#else
2661DECLARE_STATIC_KEY_FALSE(_debug_pagealloc_enabled);2664static inline void init_debug_pagealloc(void) {}
2662#endif2665#endif
2666extern bool _debug_pagealloc_enabled_early;
2667DECLARE_STATIC_KEY_FALSE(_debug_pagealloc_enabled);
2663 2668
2664static inline bool debug_pagealloc_enabled(void)2669static 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 */
2679static inline bool debug_pagealloc_enabled_static(void)
2665{2680{
2666 if (!IS_ENABLED(CONFIG_DEBUG_PAGEALLOC))2681 if (!IS_ENABLED(CONFIG_DEBUG_PAGEALLOC))
2667 return false;2682 return false;
include/linux/mmzone.h+2−3
@@ -215,9 +215,8 @@ enum node_stat_item { · 214 unmodified lines
215 NR_INACTIVE_FILE, /* " " " " " */215 NR_INACTIVE_FILE, /* " " " " " */
216 NR_ACTIVE_FILE, /* " " " " " */216 NR_ACTIVE_FILE, /* " " " " " */
217 NR_UNEVICTABLE, /* " " " " " */217 NR_UNEVICTABLE, /* " " " " " */
218 NR_SLAB_RECLAIMABLE, /* Please do not reorder this item */218 NR_SLAB_RECLAIMABLE,
219 NR_SLAB_UNRECLAIMABLE, /* and this one without looking at219 NR_SLAB_UNRECLAIMABLE,
220 * memcg_flush_percpu_vmstats() first. */
221 NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */220 NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */
222 NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */221 NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */
223 WORKINGSET_NODES,222 WORKINGSET_NODES,
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/namei.h+0−1
@@ -34,7 +34,6 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; · 33 unmodified lines
34 34
35/* internal use only */35/* internal use only */
36#define LOOKUP_PARENT 0x001036#define LOOKUP_PARENT 0x0010
37#define LOOKUP_NO_REVAL 0x0080
38#define LOOKUP_JUMPED 0x100037#define LOOKUP_JUMPED 0x1000
39#define LOOKUP_ROOT 0x200038#define LOOKUP_ROOT 0x2000
40#define LOOKUP_ROOT_GRABBED 0x000839#define LOOKUP_ROOT_GRABBED 0x0008
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.h+2−2
@@ -1929,11 +1929,11 @@ static inline void rseq_migrate(struct task_struct *t) · 1928 unmodified lines
1929 1929
1930/*1930/*
1931 * If parent process has a registered restartable sequences area, the1931 * 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.
1933 */1933 */
1934static inline void rseq_fork(struct task_struct *t, unsigned long clone_flags)1934static inline void rseq_fork(struct task_struct *t, unsigned long clone_flags)
1935{1935{
1936 if (clone_flags & CLONE_THREAD) {1936 if (clone_flags & CLONE_VM) {
1937 t->rseq = NULL;1937 t->rseq = NULL;
1938 t->rseq_sig = 0;1938 t->rseq_sig = 0;
1939 t->rseq_event_mask = 0;1939 t->rseq_event_mask = 0;
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/skmsg.h+9−4
@@ -358,17 +358,22 @@ static inline void sk_psock_update_proto(struct sock *sk, · 357 unmodified lines
358static inline void sk_psock_restore_proto(struct sock *sk,358static inline void sk_psock_restore_proto(struct sock *sk,
359 struct sk_psock *psock)359 struct sk_psock *psock)
360{360{
361 sk->sk_write_space = psock->saved_write_space;361 sk->sk_prot->unhash = psock->saved_unhash;
362 362
363 if (psock->sk_proto) {363 if (psock->sk_proto) {
364 struct inet_connection_sock *icsk = inet_csk(sk);364 struct inet_connection_sock *icsk = inet_csk(sk);
365 bool has_ulp = !!icsk->icsk_ulp_data;365 bool has_ulp = !!icsk->icsk_ulp_data;
366 366
367 if (has_ulp)367 if (has_ulp) {
368 tcp_update_ulp(sk, psock->sk_proto);368 tcp_update_ulp(sk, psock->sk_proto,
369 else369 psock->saved_write_space);
370 } else {
370 sk->sk_prot = psock->sk_proto;371 sk->sk_prot = psock->sk_proto;
372 sk->sk_write_space = psock->saved_write_space;
373 }
371 psock->sk_proto = NULL;374 psock->sk_proto = NULL;
375 } else {
376 sk->sk_write_space = psock->saved_write_space;
372 }377 }
373}378}
374 379
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/tnum.h+1−1
@@ -30,7 +30,7 @@ struct tnum tnum_lshift(struct tnum a, u8 shift); · 29 unmodified lines
30/* Shift (rsh) a tnum right (by a fixed shift) */30/* Shift (rsh) a tnum right (by a fixed shift) */
31struct tnum tnum_rshift(struct tnum a, u8 shift);31struct tnum tnum_rshift(struct tnum a, u8 shift);
32/* Shift (arsh) a tnum right (by a fixed min_shift) */32/* Shift (arsh) a tnum right (by a fixed min_shift) */
33struct tnum tnum_arshift(struct tnum a, u8 min_shift);33struct tnum tnum_arshift(struct tnum a, u8 min_shift, u8 insn_bitness);
34/* Add two tnums, return @a + @b */34/* Add two tnums, return @a + @b */
35struct tnum tnum_add(struct tnum a, struct tnum b);35struct tnum tnum_add(struct tnum a, struct tnum b);
36/* Subtract two tnums, return @a - @b */36/* 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
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{