diff options
Diffstat (limited to 'include')
31 files changed, 225 insertions, 74 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index da0be9a8d1de..9623d78f8494 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -60,6 +60,22 @@ | |||
60 | #define ALIGN_FUNCTION() . = ALIGN(8) | 60 | #define ALIGN_FUNCTION() . = ALIGN(8) |
61 | 61 | ||
62 | /* | 62 | /* |
63 | * LD_DEAD_CODE_DATA_ELIMINATION option enables -fdata-sections, which | ||
64 | * generates .data.identifier sections, which need to be pulled in with | ||
65 | * .data. We don't want to pull in .data..other sections, which Linux | ||
66 | * has defined. Same for text and bss. | ||
67 | */ | ||
68 | #ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION | ||
69 | #define TEXT_MAIN .text .text.[0-9a-zA-Z_]* | ||
70 | #define DATA_MAIN .data .data.[0-9a-zA-Z_]* | ||
71 | #define BSS_MAIN .bss .bss.[0-9a-zA-Z_]* | ||
72 | #else | ||
73 | #define TEXT_MAIN .text | ||
74 | #define DATA_MAIN .data | ||
75 | #define BSS_MAIN .bss | ||
76 | #endif | ||
77 | |||
78 | /* | ||
63 | * Align to a 32 byte boundary equal to the | 79 | * Align to a 32 byte boundary equal to the |
64 | * alignment gcc 4.5 uses for a struct | 80 | * alignment gcc 4.5 uses for a struct |
65 | */ | 81 | */ |
@@ -198,12 +214,9 @@ | |||
198 | 214 | ||
199 | /* | 215 | /* |
200 | * .data section | 216 | * .data section |
201 | * LD_DEAD_CODE_DATA_ELIMINATION option enables -fdata-sections generates | ||
202 | * .data.identifier which needs to be pulled in with .data, but don't want to | ||
203 | * pull in .data..stuff which has its own requirements. Same for bss. | ||
204 | */ | 217 | */ |
205 | #define DATA_DATA \ | 218 | #define DATA_DATA \ |
206 | *(.data .data.[0-9a-zA-Z_]*) \ | 219 | *(DATA_MAIN) \ |
207 | *(.ref.data) \ | 220 | *(.ref.data) \ |
208 | *(.data..shared_aligned) /* percpu related */ \ | 221 | *(.data..shared_aligned) /* percpu related */ \ |
209 | MEM_KEEP(init.data) \ | 222 | MEM_KEEP(init.data) \ |
@@ -434,16 +447,17 @@ | |||
434 | VMLINUX_SYMBOL(__security_initcall_end) = .; \ | 447 | VMLINUX_SYMBOL(__security_initcall_end) = .; \ |
435 | } | 448 | } |
436 | 449 | ||
437 | /* .text section. Map to function alignment to avoid address changes | 450 | /* |
451 | * .text section. Map to function alignment to avoid address changes | ||
438 | * during second ld run in second ld pass when generating System.map | 452 | * during second ld run in second ld pass when generating System.map |
439 | * LD_DEAD_CODE_DATA_ELIMINATION option enables -ffunction-sections generates | 453 | * |
440 | * .text.identifier which needs to be pulled in with .text , but some | 454 | * TEXT_MAIN here will match .text.fixup and .text.unlikely if dead |
441 | * architectures define .text.foo which is not intended to be pulled in here. | 455 | * code elimination is enabled, so these sections should be converted |
442 | * Those enabling LD_DEAD_CODE_DATA_ELIMINATION must ensure they don't have | 456 | * to use ".." first. |
443 | * conflicting section names, and must pull in .text.[0-9a-zA-Z_]* */ | 457 | */ |
444 | #define TEXT_TEXT \ | 458 | #define TEXT_TEXT \ |
445 | ALIGN_FUNCTION(); \ | 459 | ALIGN_FUNCTION(); \ |
446 | *(.text.hot .text .text.fixup .text.unlikely) \ | 460 | *(.text.hot TEXT_MAIN .text.fixup .text.unlikely) \ |
447 | *(.ref.text) \ | 461 | *(.ref.text) \ |
448 | MEM_KEEP(init.text) \ | 462 | MEM_KEEP(init.text) \ |
449 | MEM_KEEP(exit.text) \ | 463 | MEM_KEEP(exit.text) \ |
@@ -613,7 +627,7 @@ | |||
613 | BSS_FIRST_SECTIONS \ | 627 | BSS_FIRST_SECTIONS \ |
614 | *(.bss..page_aligned) \ | 628 | *(.bss..page_aligned) \ |
615 | *(.dynbss) \ | 629 | *(.dynbss) \ |
616 | *(.bss .bss.[0-9a-zA-Z_]*) \ | 630 | *(BSS_MAIN) \ |
617 | *(COMMON) \ | 631 | *(COMMON) \ |
618 | } | 632 | } |
619 | 633 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 25f6a0cb27d3..2a5d52fa90f5 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -568,7 +568,6 @@ struct request_queue { | |||
568 | 568 | ||
569 | #if defined(CONFIG_BLK_DEV_BSG) | 569 | #if defined(CONFIG_BLK_DEV_BSG) |
570 | bsg_job_fn *bsg_job_fn; | 570 | bsg_job_fn *bsg_job_fn; |
571 | int bsg_job_size; | ||
572 | struct bsg_class_device bsg_dev; | 571 | struct bsg_class_device bsg_dev; |
573 | #endif | 572 | #endif |
574 | 573 | ||
diff --git a/include/linux/bsg-lib.h b/include/linux/bsg-lib.h index e34dde2da0ef..637a20cfb237 100644 --- a/include/linux/bsg-lib.h +++ b/include/linux/bsg-lib.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #define _BLK_BSG_ | 24 | #define _BLK_BSG_ |
25 | 25 | ||
26 | #include <linux/blkdev.h> | 26 | #include <linux/blkdev.h> |
27 | #include <scsi/scsi_request.h> | ||
27 | 28 | ||
28 | struct request; | 29 | struct request; |
29 | struct device; | 30 | struct device; |
@@ -37,6 +38,7 @@ struct bsg_buffer { | |||
37 | }; | 38 | }; |
38 | 39 | ||
39 | struct bsg_job { | 40 | struct bsg_job { |
41 | struct scsi_request sreq; | ||
40 | struct device *dev; | 42 | struct device *dev; |
41 | struct request *req; | 43 | struct request *req; |
42 | 44 | ||
diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h index 277ab9af9ac2..100cb4343763 100644 --- a/include/linux/devpts_fs.h +++ b/include/linux/devpts_fs.h | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | struct pts_fs_info; | 20 | struct pts_fs_info; |
21 | 21 | ||
22 | struct vfsmount *devpts_mntget(struct file *, struct pts_fs_info *); | ||
22 | struct pts_fs_info *devpts_acquire(struct file *); | 23 | struct pts_fs_info *devpts_acquire(struct file *); |
23 | void devpts_release(struct pts_fs_info *); | 24 | void devpts_release(struct pts_fs_info *); |
24 | 25 | ||
@@ -32,6 +33,15 @@ void *devpts_get_priv(struct dentry *); | |||
32 | /* unlink */ | 33 | /* unlink */ |
33 | void devpts_pty_kill(struct dentry *); | 34 | void devpts_pty_kill(struct dentry *); |
34 | 35 | ||
36 | /* in pty.c */ | ||
37 | int ptm_open_peer(struct file *master, struct tty_struct *tty, int flags); | ||
38 | |||
39 | #else | ||
40 | static inline int | ||
41 | ptm_open_peer(struct file *master, struct tty_struct *tty, int flags) | ||
42 | { | ||
43 | return -EIO; | ||
44 | } | ||
35 | #endif | 45 | #endif |
36 | 46 | ||
37 | 47 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 64fa15dafbc1..cdb18f358aee 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -907,9 +907,9 @@ static inline struct file *get_file(struct file *f) | |||
907 | /* Page cache limit. The filesystems should put that into their s_maxbytes | 907 | /* Page cache limit. The filesystems should put that into their s_maxbytes |
908 | limits, otherwise bad things can happen in VM. */ | 908 | limits, otherwise bad things can happen in VM. */ |
909 | #if BITS_PER_LONG==32 | 909 | #if BITS_PER_LONG==32 |
910 | #define MAX_LFS_FILESIZE (((loff_t)PAGE_SIZE << (BITS_PER_LONG-1))-1) | 910 | #define MAX_LFS_FILESIZE ((loff_t)ULONG_MAX << PAGE_SHIFT) |
911 | #elif BITS_PER_LONG==64 | 911 | #elif BITS_PER_LONG==64 |
912 | #define MAX_LFS_FILESIZE ((loff_t)0x7fffffffffffffffLL) | 912 | #define MAX_LFS_FILESIZE ((loff_t)LLONG_MAX) |
913 | #endif | 913 | #endif |
914 | 914 | ||
915 | #define FL_POSIX 1 | 915 | #define FL_POSIX 1 |
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h index d68bec297a45..c380daa40c0e 100644 --- a/include/linux/iio/iio.h +++ b/include/linux/iio/iio.h | |||
@@ -535,7 +535,7 @@ struct iio_buffer_setup_ops { | |||
535 | * @scan_timestamp: [INTERN] set if any buffers have requested timestamp | 535 | * @scan_timestamp: [INTERN] set if any buffers have requested timestamp |
536 | * @scan_index_timestamp:[INTERN] cache of the index to the timestamp | 536 | * @scan_index_timestamp:[INTERN] cache of the index to the timestamp |
537 | * @trig: [INTERN] current device trigger (buffer modes) | 537 | * @trig: [INTERN] current device trigger (buffer modes) |
538 | * @trig_readonly [INTERN] mark the current trigger immutable | 538 | * @trig_readonly: [INTERN] mark the current trigger immutable |
539 | * @pollfunc: [DRIVER] function run on trigger being received | 539 | * @pollfunc: [DRIVER] function run on trigger being received |
540 | * @pollfunc_event: [DRIVER] function run on events trigger being received | 540 | * @pollfunc_event: [DRIVER] function run on events trigger being received |
541 | * @channels: [DRIVER] channel specification structure table | 541 | * @channels: [DRIVER] channel specification structure table |
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h index ea08302f2d7b..7142d8d6e470 100644 --- a/include/linux/iio/trigger.h +++ b/include/linux/iio/trigger.h | |||
@@ -144,8 +144,8 @@ void devm_iio_trigger_unregister(struct device *dev, | |||
144 | /** | 144 | /** |
145 | * iio_trigger_set_immutable() - set an immutable trigger on destination | 145 | * iio_trigger_set_immutable() - set an immutable trigger on destination |
146 | * | 146 | * |
147 | * @indio_dev - IIO device structure containing the device | 147 | * @indio_dev: IIO device structure containing the device |
148 | * @trig - trigger to assign to device | 148 | * @trig: trigger to assign to device |
149 | * | 149 | * |
150 | **/ | 150 | **/ |
151 | int iio_trigger_set_immutable(struct iio_dev *indio_dev, struct iio_trigger *trig); | 151 | int iio_trigger_set_immutable(struct iio_dev *indio_dev, struct iio_trigger *trig); |
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 2cb54adc4a33..176f7569d874 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h | |||
@@ -240,7 +240,7 @@ struct iommu_device { | |||
240 | struct list_head list; | 240 | struct list_head list; |
241 | const struct iommu_ops *ops; | 241 | const struct iommu_ops *ops; |
242 | struct fwnode_handle *fwnode; | 242 | struct fwnode_handle *fwnode; |
243 | struct device dev; | 243 | struct device *dev; |
244 | }; | 244 | }; |
245 | 245 | ||
246 | int iommu_device_register(struct iommu_device *iommu); | 246 | int iommu_device_register(struct iommu_device *iommu); |
@@ -265,6 +265,11 @@ static inline void iommu_device_set_fwnode(struct iommu_device *iommu, | |||
265 | iommu->fwnode = fwnode; | 265 | iommu->fwnode = fwnode; |
266 | } | 266 | } |
267 | 267 | ||
268 | static inline struct iommu_device *dev_to_iommu_device(struct device *dev) | ||
269 | { | ||
270 | return (struct iommu_device *)dev_get_drvdata(dev); | ||
271 | } | ||
272 | |||
268 | #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */ | 273 | #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */ |
269 | #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */ | 274 | #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */ |
270 | #define IOMMU_GROUP_NOTIFY_BIND_DRIVER 3 /* Pre Driver bind */ | 275 | #define IOMMU_GROUP_NOTIFY_BIND_DRIVER 3 /* Pre Driver bind */ |
@@ -589,6 +594,11 @@ static inline void iommu_device_set_fwnode(struct iommu_device *iommu, | |||
589 | { | 594 | { |
590 | } | 595 | } |
591 | 596 | ||
597 | static inline struct iommu_device *dev_to_iommu_device(struct device *dev) | ||
598 | { | ||
599 | return NULL; | ||
600 | } | ||
601 | |||
592 | static inline void iommu_device_unregister(struct iommu_device *iommu) | 602 | static inline void iommu_device_unregister(struct iommu_device *iommu) |
593 | { | 603 | { |
594 | } | 604 | } |
diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 77d427974f57..bae11c7e7bf3 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h | |||
@@ -61,6 +61,7 @@ extern int memblock_debug; | |||
61 | #ifdef CONFIG_ARCH_DISCARD_MEMBLOCK | 61 | #ifdef CONFIG_ARCH_DISCARD_MEMBLOCK |
62 | #define __init_memblock __meminit | 62 | #define __init_memblock __meminit |
63 | #define __initdata_memblock __meminitdata | 63 | #define __initdata_memblock __meminitdata |
64 | void memblock_discard(void); | ||
64 | #else | 65 | #else |
65 | #define __init_memblock | 66 | #define __init_memblock |
66 | #define __initdata_memblock | 67 | #define __initdata_memblock |
@@ -74,8 +75,6 @@ phys_addr_t memblock_find_in_range_node(phys_addr_t size, phys_addr_t align, | |||
74 | int nid, ulong flags); | 75 | int nid, ulong flags); |
75 | phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end, | 76 | phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end, |
76 | phys_addr_t size, phys_addr_t align); | 77 | phys_addr_t size, phys_addr_t align); |
77 | phys_addr_t get_allocated_memblock_reserved_regions_info(phys_addr_t *addr); | ||
78 | phys_addr_t get_allocated_memblock_memory_regions_info(phys_addr_t *addr); | ||
79 | void memblock_allow_resize(void); | 78 | void memblock_allow_resize(void); |
80 | int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid); | 79 | int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid); |
81 | int memblock_add(phys_addr_t base, phys_addr_t size); | 80 | int memblock_add(phys_addr_t base, phys_addr_t size); |
@@ -110,6 +109,9 @@ void __next_mem_range_rev(u64 *idx, int nid, ulong flags, | |||
110 | void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start, | 109 | void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start, |
111 | phys_addr_t *out_end); | 110 | phys_addr_t *out_end); |
112 | 111 | ||
112 | void __memblock_free_early(phys_addr_t base, phys_addr_t size); | ||
113 | void __memblock_free_late(phys_addr_t base, phys_addr_t size); | ||
114 | |||
113 | /** | 115 | /** |
114 | * for_each_mem_range - iterate through memblock areas from type_a and not | 116 | * for_each_mem_range - iterate through memblock areas from type_a and not |
115 | * included in type_b. Or just type_a if type_b is NULL. | 117 | * included in type_b. Or just type_a if type_b is NULL. |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 3914e3dd6168..9b15a4bcfa77 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -484,7 +484,8 @@ bool mem_cgroup_oom_synchronize(bool wait); | |||
484 | extern int do_swap_account; | 484 | extern int do_swap_account; |
485 | #endif | 485 | #endif |
486 | 486 | ||
487 | void lock_page_memcg(struct page *page); | 487 | struct mem_cgroup *lock_page_memcg(struct page *page); |
488 | void __unlock_page_memcg(struct mem_cgroup *memcg); | ||
488 | void unlock_page_memcg(struct page *page); | 489 | void unlock_page_memcg(struct page *page); |
489 | 490 | ||
490 | static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, | 491 | static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, |
@@ -809,7 +810,12 @@ mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) | |||
809 | { | 810 | { |
810 | } | 811 | } |
811 | 812 | ||
812 | static inline void lock_page_memcg(struct page *page) | 813 | static inline struct mem_cgroup *lock_page_memcg(struct page *page) |
814 | { | ||
815 | return NULL; | ||
816 | } | ||
817 | |||
818 | static inline void __unlock_page_memcg(struct mem_cgroup *memcg) | ||
813 | { | 819 | { |
814 | } | 820 | } |
815 | 821 | ||
diff --git a/include/linux/net.h b/include/linux/net.h index dda2cc939a53..ebeb48c92005 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
@@ -37,7 +37,7 @@ struct net; | |||
37 | 37 | ||
38 | /* Historically, SOCKWQ_ASYNC_NOSPACE & SOCKWQ_ASYNC_WAITDATA were located | 38 | /* Historically, SOCKWQ_ASYNC_NOSPACE & SOCKWQ_ASYNC_WAITDATA were located |
39 | * in sock->flags, but moved into sk->sk_wq->flags to be RCU protected. | 39 | * in sock->flags, but moved into sk->sk_wq->flags to be RCU protected. |
40 | * Eventually all flags will be in sk->sk_wq_flags. | 40 | * Eventually all flags will be in sk->sk_wq->flags. |
41 | */ | 41 | */ |
42 | #define SOCKWQ_ASYNC_NOSPACE 0 | 42 | #define SOCKWQ_ASYNC_NOSPACE 0 |
43 | #define SOCKWQ_ASYNC_WAITDATA 1 | 43 | #define SOCKWQ_ASYNC_WAITDATA 1 |
diff --git a/include/linux/nmi.h b/include/linux/nmi.h index 8aa01fd859fb..a36abe2da13e 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h | |||
@@ -168,6 +168,14 @@ extern int sysctl_hardlockup_all_cpu_backtrace; | |||
168 | #define sysctl_softlockup_all_cpu_backtrace 0 | 168 | #define sysctl_softlockup_all_cpu_backtrace 0 |
169 | #define sysctl_hardlockup_all_cpu_backtrace 0 | 169 | #define sysctl_hardlockup_all_cpu_backtrace 0 |
170 | #endif | 170 | #endif |
171 | |||
172 | #if defined(CONFIG_HARDLOCKUP_CHECK_TIMESTAMP) && \ | ||
173 | defined(CONFIG_HARDLOCKUP_DETECTOR) | ||
174 | void watchdog_update_hrtimer_threshold(u64 period); | ||
175 | #else | ||
176 | static inline void watchdog_update_hrtimer_threshold(u64 period) { } | ||
177 | #endif | ||
178 | |||
171 | extern bool is_hardlockup(void); | 179 | extern bool is_hardlockup(void); |
172 | struct ctl_table; | 180 | struct ctl_table; |
173 | extern int proc_watchdog(struct ctl_table *, int , | 181 | extern int proc_watchdog(struct ctl_table *, int , |
diff --git a/include/linux/oom.h b/include/linux/oom.h index 8a266e2be5a6..76aac4ce39bc 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h | |||
@@ -6,6 +6,8 @@ | |||
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/nodemask.h> | 7 | #include <linux/nodemask.h> |
8 | #include <uapi/linux/oom.h> | 8 | #include <uapi/linux/oom.h> |
9 | #include <linux/sched/coredump.h> /* MMF_* */ | ||
10 | #include <linux/mm.h> /* VM_FAULT* */ | ||
9 | 11 | ||
10 | struct zonelist; | 12 | struct zonelist; |
11 | struct notifier_block; | 13 | struct notifier_block; |
@@ -63,6 +65,26 @@ static inline bool tsk_is_oom_victim(struct task_struct * tsk) | |||
63 | return tsk->signal->oom_mm; | 65 | return tsk->signal->oom_mm; |
64 | } | 66 | } |
65 | 67 | ||
68 | /* | ||
69 | * Checks whether a page fault on the given mm is still reliable. | ||
70 | * This is no longer true if the oom reaper started to reap the | ||
71 | * address space which is reflected by MMF_UNSTABLE flag set in | ||
72 | * the mm. At that moment any !shared mapping would lose the content | ||
73 | * and could cause a memory corruption (zero pages instead of the | ||
74 | * original content). | ||
75 | * | ||
76 | * User should call this before establishing a page table entry for | ||
77 | * a !shared mapping and under the proper page table lock. | ||
78 | * | ||
79 | * Return 0 when the PF is safe VM_FAULT_SIGBUS otherwise. | ||
80 | */ | ||
81 | static inline int check_stable_address_space(struct mm_struct *mm) | ||
82 | { | ||
83 | if (unlikely(test_bit(MMF_UNSTABLE, &mm->flags))) | ||
84 | return VM_FAULT_SIGBUS; | ||
85 | return 0; | ||
86 | } | ||
87 | |||
66 | extern unsigned long oom_badness(struct task_struct *p, | 88 | extern unsigned long oom_badness(struct task_struct *p, |
67 | struct mem_cgroup *memcg, const nodemask_t *nodemask, | 89 | struct mem_cgroup *memcg, const nodemask_t *nodemask, |
68 | unsigned long totalpages); | 90 | unsigned long totalpages); |
diff --git a/include/linux/pci.h b/include/linux/pci.h index a75c13673852..f958d0732af6 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -188,6 +188,8 @@ enum pci_dev_flags { | |||
188 | * the direct_complete optimization. | 188 | * the direct_complete optimization. |
189 | */ | 189 | */ |
190 | PCI_DEV_FLAGS_NEEDS_RESUME = (__force pci_dev_flags_t) (1 << 11), | 190 | PCI_DEV_FLAGS_NEEDS_RESUME = (__force pci_dev_flags_t) (1 << 11), |
191 | /* Don't use Relaxed Ordering for TLPs directed at this device */ | ||
192 | PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 12), | ||
191 | }; | 193 | }; |
192 | 194 | ||
193 | enum pci_irq_reroute_variant { | 195 | enum pci_irq_reroute_variant { |
@@ -1126,6 +1128,7 @@ bool pci_check_pme_status(struct pci_dev *dev); | |||
1126 | void pci_pme_wakeup_bus(struct pci_bus *bus); | 1128 | void pci_pme_wakeup_bus(struct pci_bus *bus); |
1127 | void pci_d3cold_enable(struct pci_dev *dev); | 1129 | void pci_d3cold_enable(struct pci_dev *dev); |
1128 | void pci_d3cold_disable(struct pci_dev *dev); | 1130 | void pci_d3cold_disable(struct pci_dev *dev); |
1131 | bool pcie_relaxed_ordering_enabled(struct pci_dev *dev); | ||
1129 | 1132 | ||
1130 | /* PCI Virtual Channel */ | 1133 | /* PCI Virtual Channel */ |
1131 | int pci_save_vc_state(struct pci_dev *dev); | 1134 | int pci_save_vc_state(struct pci_dev *dev); |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index a3b873fc59e4..b14095bcf4bb 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -310,8 +310,8 @@ struct pmu { | |||
310 | * Notification that the event was mapped or unmapped. Called | 310 | * Notification that the event was mapped or unmapped. Called |
311 | * in the context of the mapping task. | 311 | * in the context of the mapping task. |
312 | */ | 312 | */ |
313 | void (*event_mapped) (struct perf_event *event); /*optional*/ | 313 | void (*event_mapped) (struct perf_event *event, struct mm_struct *mm); /* optional */ |
314 | void (*event_unmapped) (struct perf_event *event); /*optional*/ | 314 | void (*event_unmapped) (struct perf_event *event, struct mm_struct *mm); /* optional */ |
315 | 315 | ||
316 | /* | 316 | /* |
317 | * Flags for ->add()/->del()/ ->start()/->stop(). There are | 317 | * Flags for ->add()/->del()/ ->start()/->stop(). There are |
diff --git a/include/linux/pid.h b/include/linux/pid.h index 4d179316e431..719582744a2e 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h | |||
@@ -8,7 +8,9 @@ enum pid_type | |||
8 | PIDTYPE_PID, | 8 | PIDTYPE_PID, |
9 | PIDTYPE_PGID, | 9 | PIDTYPE_PGID, |
10 | PIDTYPE_SID, | 10 | PIDTYPE_SID, |
11 | PIDTYPE_MAX | 11 | PIDTYPE_MAX, |
12 | /* only valid to __task_pid_nr_ns() */ | ||
13 | __PIDTYPE_TGID | ||
12 | }; | 14 | }; |
13 | 15 | ||
14 | /* | 16 | /* |
diff --git a/include/linux/ptr_ring.h b/include/linux/ptr_ring.h index d8c97ec8a8e6..37b4bb2545b3 100644 --- a/include/linux/ptr_ring.h +++ b/include/linux/ptr_ring.h | |||
@@ -436,9 +436,9 @@ static inline int ptr_ring_consume_batched_bh(struct ptr_ring *r, | |||
436 | __PTR_RING_PEEK_CALL_v; \ | 436 | __PTR_RING_PEEK_CALL_v; \ |
437 | }) | 437 | }) |
438 | 438 | ||
439 | static inline void **__ptr_ring_init_queue_alloc(int size, gfp_t gfp) | 439 | static inline void **__ptr_ring_init_queue_alloc(unsigned int size, gfp_t gfp) |
440 | { | 440 | { |
441 | return kzalloc(ALIGN(size * sizeof(void *), SMP_CACHE_BYTES), gfp); | 441 | return kcalloc(size, sizeof(void *), gfp); |
442 | } | 442 | } |
443 | 443 | ||
444 | static inline void __ptr_ring_set_size(struct ptr_ring *r, int size) | 444 | static inline void __ptr_ring_set_size(struct ptr_ring *r, int size) |
@@ -582,7 +582,8 @@ static inline int ptr_ring_resize(struct ptr_ring *r, int size, gfp_t gfp, | |||
582 | * In particular if you consume ring in interrupt or BH context, you must | 582 | * In particular if you consume ring in interrupt or BH context, you must |
583 | * disable interrupts/BH when doing so. | 583 | * disable interrupts/BH when doing so. |
584 | */ | 584 | */ |
585 | static inline int ptr_ring_resize_multiple(struct ptr_ring **rings, int nrings, | 585 | static inline int ptr_ring_resize_multiple(struct ptr_ring **rings, |
586 | unsigned int nrings, | ||
586 | int size, | 587 | int size, |
587 | gfp_t gfp, void (*destroy)(void *)) | 588 | gfp_t gfp, void (*destroy)(void *)) |
588 | { | 589 | { |
@@ -590,7 +591,7 @@ static inline int ptr_ring_resize_multiple(struct ptr_ring **rings, int nrings, | |||
590 | void ***queues; | 591 | void ***queues; |
591 | int i; | 592 | int i; |
592 | 593 | ||
593 | queues = kmalloc(nrings * sizeof *queues, gfp); | 594 | queues = kmalloc_array(nrings, sizeof(*queues), gfp); |
594 | if (!queues) | 595 | if (!queues) |
595 | goto noqueues; | 596 | goto noqueues; |
596 | 597 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 8337e2db0bb2..c05ac5f5aa03 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1163,13 +1163,6 @@ static inline pid_t task_tgid_nr(struct task_struct *tsk) | |||
1163 | return tsk->tgid; | 1163 | return tsk->tgid; |
1164 | } | 1164 | } |
1165 | 1165 | ||
1166 | extern pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns); | ||
1167 | |||
1168 | static inline pid_t task_tgid_vnr(struct task_struct *tsk) | ||
1169 | { | ||
1170 | return pid_vnr(task_tgid(tsk)); | ||
1171 | } | ||
1172 | |||
1173 | /** | 1166 | /** |
1174 | * pid_alive - check that a task structure is not stale | 1167 | * pid_alive - check that a task structure is not stale |
1175 | * @p: Task structure to be checked. | 1168 | * @p: Task structure to be checked. |
@@ -1185,23 +1178,6 @@ static inline int pid_alive(const struct task_struct *p) | |||
1185 | return p->pids[PIDTYPE_PID].pid != NULL; | 1178 | return p->pids[PIDTYPE_PID].pid != NULL; |
1186 | } | 1179 | } |
1187 | 1180 | ||
1188 | static inline pid_t task_ppid_nr_ns(const struct task_struct *tsk, struct pid_namespace *ns) | ||
1189 | { | ||
1190 | pid_t pid = 0; | ||
1191 | |||
1192 | rcu_read_lock(); | ||
1193 | if (pid_alive(tsk)) | ||
1194 | pid = task_tgid_nr_ns(rcu_dereference(tsk->real_parent), ns); | ||
1195 | rcu_read_unlock(); | ||
1196 | |||
1197 | return pid; | ||
1198 | } | ||
1199 | |||
1200 | static inline pid_t task_ppid_nr(const struct task_struct *tsk) | ||
1201 | { | ||
1202 | return task_ppid_nr_ns(tsk, &init_pid_ns); | ||
1203 | } | ||
1204 | |||
1205 | static inline pid_t task_pgrp_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) | 1181 | static inline pid_t task_pgrp_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) |
1206 | { | 1182 | { |
1207 | return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns); | 1183 | return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns); |
@@ -1223,6 +1199,33 @@ static inline pid_t task_session_vnr(struct task_struct *tsk) | |||
1223 | return __task_pid_nr_ns(tsk, PIDTYPE_SID, NULL); | 1199 | return __task_pid_nr_ns(tsk, PIDTYPE_SID, NULL); |
1224 | } | 1200 | } |
1225 | 1201 | ||
1202 | static inline pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) | ||
1203 | { | ||
1204 | return __task_pid_nr_ns(tsk, __PIDTYPE_TGID, ns); | ||
1205 | } | ||
1206 | |||
1207 | static inline pid_t task_tgid_vnr(struct task_struct *tsk) | ||
1208 | { | ||
1209 | return __task_pid_nr_ns(tsk, __PIDTYPE_TGID, NULL); | ||
1210 | } | ||
1211 | |||
1212 | static inline pid_t task_ppid_nr_ns(const struct task_struct *tsk, struct pid_namespace *ns) | ||
1213 | { | ||
1214 | pid_t pid = 0; | ||
1215 | |||
1216 | rcu_read_lock(); | ||
1217 | if (pid_alive(tsk)) | ||
1218 | pid = task_tgid_nr_ns(rcu_dereference(tsk->real_parent), ns); | ||
1219 | rcu_read_unlock(); | ||
1220 | |||
1221 | return pid; | ||
1222 | } | ||
1223 | |||
1224 | static inline pid_t task_ppid_nr(const struct task_struct *tsk) | ||
1225 | { | ||
1226 | return task_ppid_nr_ns(tsk, &init_pid_ns); | ||
1227 | } | ||
1228 | |||
1226 | /* Obsolete, do not use: */ | 1229 | /* Obsolete, do not use: */ |
1227 | static inline pid_t task_pgrp_nr(struct task_struct *tsk) | 1230 | static inline pid_t task_pgrp_nr(struct task_struct *tsk) |
1228 | { | 1231 | { |
diff --git a/include/linux/skb_array.h b/include/linux/skb_array.h index 35226cd4efb0..8621ffdeecbf 100644 --- a/include/linux/skb_array.h +++ b/include/linux/skb_array.h | |||
@@ -193,7 +193,8 @@ static inline int skb_array_resize(struct skb_array *a, int size, gfp_t gfp) | |||
193 | } | 193 | } |
194 | 194 | ||
195 | static inline int skb_array_resize_multiple(struct skb_array **rings, | 195 | static inline int skb_array_resize_multiple(struct skb_array **rings, |
196 | int nrings, int size, gfp_t gfp) | 196 | int nrings, unsigned int size, |
197 | gfp_t gfp) | ||
197 | { | 198 | { |
198 | BUILD_BUG_ON(offsetof(struct skb_array, ring)); | 199 | BUILD_BUG_ON(offsetof(struct skb_array, ring)); |
199 | return ptr_ring_resize_multiple((struct ptr_ring **)rings, | 200 | return ptr_ring_resize_multiple((struct ptr_ring **)rings, |
diff --git a/include/linux/wait.h b/include/linux/wait.h index 5b74e36c0ca8..dc19880c02f5 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
@@ -757,6 +757,43 @@ extern int do_wait_intr_irq(wait_queue_head_t *, wait_queue_entry_t *); | |||
757 | __ret; \ | 757 | __ret; \ |
758 | }) | 758 | }) |
759 | 759 | ||
760 | #define __wait_event_killable_timeout(wq_head, condition, timeout) \ | ||
761 | ___wait_event(wq_head, ___wait_cond_timeout(condition), \ | ||
762 | TASK_KILLABLE, 0, timeout, \ | ||
763 | __ret = schedule_timeout(__ret)) | ||
764 | |||
765 | /** | ||
766 | * wait_event_killable_timeout - sleep until a condition gets true or a timeout elapses | ||
767 | * @wq_head: the waitqueue to wait on | ||
768 | * @condition: a C expression for the event to wait for | ||
769 | * @timeout: timeout, in jiffies | ||
770 | * | ||
771 | * The process is put to sleep (TASK_KILLABLE) until the | ||
772 | * @condition evaluates to true or a kill signal is received. | ||
773 | * The @condition is checked each time the waitqueue @wq_head is woken up. | ||
774 | * | ||
775 | * wake_up() has to be called after changing any variable that could | ||
776 | * change the result of the wait condition. | ||
777 | * | ||
778 | * Returns: | ||
779 | * 0 if the @condition evaluated to %false after the @timeout elapsed, | ||
780 | * 1 if the @condition evaluated to %true after the @timeout elapsed, | ||
781 | * the remaining jiffies (at least 1) if the @condition evaluated | ||
782 | * to %true before the @timeout elapsed, or -%ERESTARTSYS if it was | ||
783 | * interrupted by a kill signal. | ||
784 | * | ||
785 | * Only kill signals interrupt this process. | ||
786 | */ | ||
787 | #define wait_event_killable_timeout(wq_head, condition, timeout) \ | ||
788 | ({ \ | ||
789 | long __ret = timeout; \ | ||
790 | might_sleep(); \ | ||
791 | if (!___wait_cond_timeout(condition)) \ | ||
792 | __ret = __wait_event_killable_timeout(wq_head, \ | ||
793 | condition, timeout); \ | ||
794 | __ret; \ | ||
795 | }) | ||
796 | |||
760 | 797 | ||
761 | #define __wait_event_lock_irq(wq_head, condition, lock, cmd) \ | 798 | #define __wait_event_lock_irq(wq_head, condition, lock, cmd) \ |
762 | (void)___wait_event(wq_head, condition, TASK_UNINTERRUPTIBLE, 0, 0, \ | 799 | (void)___wait_event(wq_head, condition, TASK_UNINTERRUPTIBLE, 0, 0, \ |
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 6df79e96a780..f44ff2476758 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h | |||
@@ -336,6 +336,16 @@ static inline void in6_dev_put(struct inet6_dev *idev) | |||
336 | in6_dev_finish_destroy(idev); | 336 | in6_dev_finish_destroy(idev); |
337 | } | 337 | } |
338 | 338 | ||
339 | static inline void in6_dev_put_clear(struct inet6_dev **pidev) | ||
340 | { | ||
341 | struct inet6_dev *idev = *pidev; | ||
342 | |||
343 | if (idev) { | ||
344 | in6_dev_put(idev); | ||
345 | *pidev = NULL; | ||
346 | } | ||
347 | } | ||
348 | |||
339 | static inline void __in6_dev_put(struct inet6_dev *idev) | 349 | static inline void __in6_dev_put(struct inet6_dev *idev) |
340 | { | 350 | { |
341 | refcount_dec(&idev->refcnt); | 351 | refcount_dec(&idev->refcnt); |
diff --git a/include/net/bonding.h b/include/net/bonding.h index b00508d22e0a..b2e68657a216 100644 --- a/include/net/bonding.h +++ b/include/net/bonding.h | |||
@@ -277,6 +277,11 @@ static inline bool bond_is_lb(const struct bonding *bond) | |||
277 | BOND_MODE(bond) == BOND_MODE_ALB; | 277 | BOND_MODE(bond) == BOND_MODE_ALB; |
278 | } | 278 | } |
279 | 279 | ||
280 | static inline bool bond_needs_speed_duplex(const struct bonding *bond) | ||
281 | { | ||
282 | return BOND_MODE(bond) == BOND_MODE_8023AD || bond_is_lb(bond); | ||
283 | } | ||
284 | |||
280 | static inline bool bond_is_nondyn_tlb(const struct bonding *bond) | 285 | static inline bool bond_is_nondyn_tlb(const struct bonding *bond) |
281 | { | 286 | { |
282 | return (BOND_MODE(bond) == BOND_MODE_TLB) && | 287 | return (BOND_MODE(bond) == BOND_MODE_TLB) && |
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h index 8ffd434676b7..71c72a939bf8 100644 --- a/include/net/busy_poll.h +++ b/include/net/busy_poll.h | |||
@@ -29,18 +29,18 @@ | |||
29 | #include <linux/sched/signal.h> | 29 | #include <linux/sched/signal.h> |
30 | #include <net/ip.h> | 30 | #include <net/ip.h> |
31 | 31 | ||
32 | #ifdef CONFIG_NET_RX_BUSY_POLL | ||
33 | |||
34 | struct napi_struct; | ||
35 | extern unsigned int sysctl_net_busy_read __read_mostly; | ||
36 | extern unsigned int sysctl_net_busy_poll __read_mostly; | ||
37 | |||
38 | /* 0 - Reserved to indicate value not set | 32 | /* 0 - Reserved to indicate value not set |
39 | * 1..NR_CPUS - Reserved for sender_cpu | 33 | * 1..NR_CPUS - Reserved for sender_cpu |
40 | * NR_CPUS+1..~0 - Region available for NAPI IDs | 34 | * NR_CPUS+1..~0 - Region available for NAPI IDs |
41 | */ | 35 | */ |
42 | #define MIN_NAPI_ID ((unsigned int)(NR_CPUS + 1)) | 36 | #define MIN_NAPI_ID ((unsigned int)(NR_CPUS + 1)) |
43 | 37 | ||
38 | #ifdef CONFIG_NET_RX_BUSY_POLL | ||
39 | |||
40 | struct napi_struct; | ||
41 | extern unsigned int sysctl_net_busy_read __read_mostly; | ||
42 | extern unsigned int sysctl_net_busy_poll __read_mostly; | ||
43 | |||
44 | static inline bool net_busy_loop_on(void) | 44 | static inline bool net_busy_loop_on(void) |
45 | { | 45 | { |
46 | return sysctl_net_busy_poll; | 46 | return sysctl_net_busy_poll; |
diff --git a/include/net/ip.h b/include/net/ip.h index 821cedcc8e73..0cf7f5a65fe6 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -352,7 +352,7 @@ static inline unsigned int ip_dst_mtu_maybe_forward(const struct dst_entry *dst, | |||
352 | !forwarding) | 352 | !forwarding) |
353 | return dst_mtu(dst); | 353 | return dst_mtu(dst); |
354 | 354 | ||
355 | return min(dst->dev->mtu, IP_MAX_MTU); | 355 | return min(READ_ONCE(dst->dev->mtu), IP_MAX_MTU); |
356 | } | 356 | } |
357 | 357 | ||
358 | static inline unsigned int ip_skb_dst_mtu(struct sock *sk, | 358 | static inline unsigned int ip_skb_dst_mtu(struct sock *sk, |
@@ -364,7 +364,7 @@ static inline unsigned int ip_skb_dst_mtu(struct sock *sk, | |||
364 | return ip_dst_mtu_maybe_forward(skb_dst(skb), forwarding); | 364 | return ip_dst_mtu_maybe_forward(skb_dst(skb), forwarding); |
365 | } | 365 | } |
366 | 366 | ||
367 | return min(skb_dst(skb)->dev->mtu, IP_MAX_MTU); | 367 | return min(READ_ONCE(skb_dst(skb)->dev->mtu), IP_MAX_MTU); |
368 | } | 368 | } |
369 | 369 | ||
370 | u32 ip_idents_reserve(u32 hash, int segs); | 370 | u32 ip_idents_reserve(u32 hash, int segs); |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index b2b5419467cc..f8149ca192b4 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -5499,6 +5499,21 @@ static inline void ieee80211_stop_rx_ba_session_offl(struct ieee80211_vif *vif, | |||
5499 | ieee80211_manage_rx_ba_offl(vif, addr, tid + IEEE80211_NUM_TIDS); | 5499 | ieee80211_manage_rx_ba_offl(vif, addr, tid + IEEE80211_NUM_TIDS); |
5500 | } | 5500 | } |
5501 | 5501 | ||
5502 | /** | ||
5503 | * ieee80211_rx_ba_timer_expired - stop a Rx BA session due to timeout | ||
5504 | * | ||
5505 | * Some device drivers do not offload AddBa/DelBa negotiation, but handle rx | ||
5506 | * buffer reording internally, and therefore also handle the session timer. | ||
5507 | * | ||
5508 | * Trigger the timeout flow, which sends a DelBa. | ||
5509 | * | ||
5510 | * @vif: &struct ieee80211_vif pointer from the add_interface callback | ||
5511 | * @addr: station mac address | ||
5512 | * @tid: the rx tid | ||
5513 | */ | ||
5514 | void ieee80211_rx_ba_timer_expired(struct ieee80211_vif *vif, | ||
5515 | const u8 *addr, unsigned int tid); | ||
5516 | |||
5502 | /* Rate control API */ | 5517 | /* Rate control API */ |
5503 | 5518 | ||
5504 | /** | 5519 | /** |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 1c123e2b2415..67f815e5d525 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -806,8 +806,11 @@ static inline struct Qdisc *qdisc_replace(struct Qdisc *sch, struct Qdisc *new, | |||
806 | old = *pold; | 806 | old = *pold; |
807 | *pold = new; | 807 | *pold = new; |
808 | if (old != NULL) { | 808 | if (old != NULL) { |
809 | qdisc_tree_reduce_backlog(old, old->q.qlen, old->qstats.backlog); | 809 | unsigned int qlen = old->q.qlen; |
810 | unsigned int backlog = old->qstats.backlog; | ||
811 | |||
810 | qdisc_reset(old); | 812 | qdisc_reset(old); |
813 | qdisc_tree_reduce_backlog(old, qlen, backlog); | ||
811 | } | 814 | } |
812 | sch_tree_unlock(sch); | 815 | sch_tree_unlock(sch); |
813 | 816 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index 7c0632c7e870..aeeec62992ca 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -507,9 +507,7 @@ int sk_set_peek_off(struct sock *sk, int val); | |||
507 | static inline int sk_peek_offset(struct sock *sk, int flags) | 507 | static inline int sk_peek_offset(struct sock *sk, int flags) |
508 | { | 508 | { |
509 | if (unlikely(flags & MSG_PEEK)) { | 509 | if (unlikely(flags & MSG_PEEK)) { |
510 | s32 off = READ_ONCE(sk->sk_peek_off); | 510 | return READ_ONCE(sk->sk_peek_off); |
511 | if (off >= 0) | ||
512 | return off; | ||
513 | } | 511 | } |
514 | 512 | ||
515 | return 0; | 513 | return 0; |
diff --git a/include/net/udp.h b/include/net/udp.h index cc8036987dcb..586de4b811b5 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -366,12 +366,13 @@ static inline bool udp_skb_is_linear(struct sk_buff *skb) | |||
366 | static inline int copy_linear_skb(struct sk_buff *skb, int len, int off, | 366 | static inline int copy_linear_skb(struct sk_buff *skb, int len, int off, |
367 | struct iov_iter *to) | 367 | struct iov_iter *to) |
368 | { | 368 | { |
369 | int n, copy = len - off; | 369 | int n; |
370 | 370 | ||
371 | n = copy_to_iter(skb->data + off, copy, to); | 371 | n = copy_to_iter(skb->data + off, len, to); |
372 | if (n == copy) | 372 | if (n == len) |
373 | return 0; | 373 | return 0; |
374 | 374 | ||
375 | iov_iter_revert(to, n); | ||
375 | return -EFAULT; | 376 | return -EFAULT; |
376 | } | 377 | } |
377 | 378 | ||
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index b5732432bb29..88c32aba32f7 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -1683,6 +1683,7 @@ struct ib_qp { | |||
1683 | enum ib_qp_type qp_type; | 1683 | enum ib_qp_type qp_type; |
1684 | struct ib_rwq_ind_table *rwq_ind_tbl; | 1684 | struct ib_rwq_ind_table *rwq_ind_tbl; |
1685 | struct ib_qp_security *qp_sec; | 1685 | struct ib_qp_security *qp_sec; |
1686 | u8 port; | ||
1686 | }; | 1687 | }; |
1687 | 1688 | ||
1688 | struct ib_mr { | 1689 | struct ib_mr { |
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index a1266d318c85..6af198d8120b 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h | |||
@@ -57,6 +57,7 @@ struct scsi_pointer { | |||
57 | /* for scmd->flags */ | 57 | /* for scmd->flags */ |
58 | #define SCMD_TAGGED (1 << 0) | 58 | #define SCMD_TAGGED (1 << 0) |
59 | #define SCMD_UNCHECKED_ISA_DMA (1 << 1) | 59 | #define SCMD_UNCHECKED_ISA_DMA (1 << 1) |
60 | #define SCMD_ZONE_WRITE_LOCK (1 << 2) | ||
60 | 61 | ||
61 | struct scsi_cmnd { | 62 | struct scsi_cmnd { |
62 | struct scsi_request req; | 63 | struct scsi_request req; |
diff --git a/include/uapi/linux/loop.h b/include/uapi/linux/loop.h index a3960f98679c..c8125ec1f4f2 100644 --- a/include/uapi/linux/loop.h +++ b/include/uapi/linux/loop.h | |||
@@ -22,7 +22,6 @@ enum { | |||
22 | LO_FLAGS_AUTOCLEAR = 4, | 22 | LO_FLAGS_AUTOCLEAR = 4, |
23 | LO_FLAGS_PARTSCAN = 8, | 23 | LO_FLAGS_PARTSCAN = 8, |
24 | LO_FLAGS_DIRECT_IO = 16, | 24 | LO_FLAGS_DIRECT_IO = 16, |
25 | LO_FLAGS_BLOCKSIZE = 32, | ||
26 | }; | 25 | }; |
27 | 26 | ||
28 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ | 27 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ |
@@ -60,8 +59,6 @@ struct loop_info64 { | |||
60 | __u64 lo_init[2]; | 59 | __u64 lo_init[2]; |
61 | }; | 60 | }; |
62 | 61 | ||
63 | #define LO_INFO_BLOCKSIZE(l) (l)->lo_init[0] | ||
64 | |||
65 | /* | 62 | /* |
66 | * Loop filter types | 63 | * Loop filter types |
67 | */ | 64 | */ |