aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/debugfs.h2
-rw-r--r--include/linux/dma-mapping.h2
-rw-r--r--include/linux/fs.h19
-rw-r--r--include/linux/hugetlb.h8
-rw-r--r--include/linux/hyperv.h1
-rw-r--r--include/linux/iio/timer/stm32-lptim-trigger.h5
-rw-r--r--include/linux/irqdesc.h6
-rw-r--r--include/linux/kallsyms.h6
-rw-r--r--include/linux/kmemcheck.h1
-rw-r--r--include/linux/kvm_host.h5
-rw-r--r--include/linux/libgcc.h43
-rw-r--r--include/linux/migrate.h2
-rw-r--r--include/linux/mm.h14
-rw-r--r--include/linux/perf_event.h6
-rw-r--r--include/linux/rculist_nulls.h38
-rw-r--r--include/linux/serdev.h2
-rw-r--r--include/linux/skbuff.h3
-rw-r--r--include/linux/sunrpc/cache.h2
-rw-r--r--include/linux/sysfs.h6
-rw-r--r--include/linux/tcp.h3
-rw-r--r--include/linux/usb/usbnet.h1
21 files changed, 106 insertions, 69 deletions
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index f36ecc2a5712..3b0ba54cc4d5 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -216,6 +216,8 @@ static inline void debugfs_remove(struct dentry *dentry)
216static inline void debugfs_remove_recursive(struct dentry *dentry) 216static inline void debugfs_remove_recursive(struct dentry *dentry)
217{ } 217{ }
218 218
219const struct file_operations *debugfs_real_fops(const struct file *filp);
220
219static inline int debugfs_file_get(struct dentry *dentry) 221static inline int debugfs_file_get(struct dentry *dentry)
220{ 222{
221 return 0; 223 return 0;
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index e8f8e8fb244d..81ed9b2d84dc 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -704,7 +704,6 @@ static inline void *dma_zalloc_coherent(struct device *dev, size_t size,
704 return ret; 704 return ret;
705} 705}
706 706
707#ifdef CONFIG_HAS_DMA
708static inline int dma_get_cache_alignment(void) 707static inline int dma_get_cache_alignment(void)
709{ 708{
710#ifdef ARCH_DMA_MINALIGN 709#ifdef ARCH_DMA_MINALIGN
@@ -712,7 +711,6 @@ static inline int dma_get_cache_alignment(void)
712#endif 711#endif
713 return 1; 712 return 1;
714} 713}
715#endif
716 714
717/* flags for the coherent memory api */ 715/* flags for the coherent memory api */
718#define DMA_MEMORY_EXCLUSIVE 0x01 716#define DMA_MEMORY_EXCLUSIVE 0x01
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 2995a271ec46..511fbaabf624 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1872,7 +1872,7 @@ struct super_operations {
1872 */ 1872 */
1873#define __IS_FLG(inode, flg) ((inode)->i_sb->s_flags & (flg)) 1873#define __IS_FLG(inode, flg) ((inode)->i_sb->s_flags & (flg))
1874 1874
1875static inline bool sb_rdonly(const struct super_block *sb) { return sb->s_flags & MS_RDONLY; } 1875static inline bool sb_rdonly(const struct super_block *sb) { return sb->s_flags & SB_RDONLY; }
1876#define IS_RDONLY(inode) sb_rdonly((inode)->i_sb) 1876#define IS_RDONLY(inode) sb_rdonly((inode)->i_sb)
1877#define IS_SYNC(inode) (__IS_FLG(inode, SB_SYNCHRONOUS) || \ 1877#define IS_SYNC(inode) (__IS_FLG(inode, SB_SYNCHRONOUS) || \
1878 ((inode)->i_flags & S_SYNC)) 1878 ((inode)->i_flags & S_SYNC))
@@ -3088,7 +3088,8 @@ static inline int vfs_lstat(const char __user *name, struct kstat *stat)
3088static inline int vfs_fstatat(int dfd, const char __user *filename, 3088static inline int vfs_fstatat(int dfd, const char __user *filename,
3089 struct kstat *stat, int flags) 3089 struct kstat *stat, int flags)
3090{ 3090{
3091 return vfs_statx(dfd, filename, flags, stat, STATX_BASIC_STATS); 3091 return vfs_statx(dfd, filename, flags | AT_NO_AUTOMOUNT,
3092 stat, STATX_BASIC_STATS);
3092} 3093}
3093static inline int vfs_fstat(int fd, struct kstat *stat) 3094static inline int vfs_fstat(int fd, struct kstat *stat)
3094{ 3095{
@@ -3194,6 +3195,20 @@ static inline bool vma_is_dax(struct vm_area_struct *vma)
3194 return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host); 3195 return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host);
3195} 3196}
3196 3197
3198static inline bool vma_is_fsdax(struct vm_area_struct *vma)
3199{
3200 struct inode *inode;
3201
3202 if (!vma->vm_file)
3203 return false;
3204 if (!vma_is_dax(vma))
3205 return false;
3206 inode = file_inode(vma->vm_file);
3207 if (inode->i_mode == S_IFCHR)
3208 return false; /* device-dax */
3209 return true;
3210}
3211
3197static inline int iocb_flags(struct file *file) 3212static inline int iocb_flags(struct file *file)
3198{ 3213{
3199 int res = 0; 3214 int res = 0;
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index fbf5b31d47ee..82a25880714a 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -239,14 +239,6 @@ static inline int pgd_write(pgd_t pgd)
239} 239}
240#endif 240#endif
241 241
242#ifndef pud_write
243static inline int pud_write(pud_t pud)
244{
245 BUG();
246 return 0;
247}
248#endif
249
250#define HUGETLB_ANON_FILE "anon_hugepage" 242#define HUGETLB_ANON_FILE "anon_hugepage"
251 243
252enum { 244enum {
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index f3e97c5f94c9..6c9336626592 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -708,6 +708,7 @@ struct vmbus_channel {
708 u8 monitor_bit; 708 u8 monitor_bit;
709 709
710 bool rescind; /* got rescind msg */ 710 bool rescind; /* got rescind msg */
711 struct completion rescind_event;
711 712
712 u32 ringbuffer_gpadlhandle; 713 u32 ringbuffer_gpadlhandle;
713 714
diff --git a/include/linux/iio/timer/stm32-lptim-trigger.h b/include/linux/iio/timer/stm32-lptim-trigger.h
index 34d59bfdce2d..464458d20b16 100644
--- a/include/linux/iio/timer/stm32-lptim-trigger.h
+++ b/include/linux/iio/timer/stm32-lptim-trigger.h
@@ -16,11 +16,14 @@
16#define LPTIM2_OUT "lptim2_out" 16#define LPTIM2_OUT "lptim2_out"
17#define LPTIM3_OUT "lptim3_out" 17#define LPTIM3_OUT "lptim3_out"
18 18
19#if IS_ENABLED(CONFIG_IIO_STM32_LPTIMER_TRIGGER) 19#if IS_REACHABLE(CONFIG_IIO_STM32_LPTIMER_TRIGGER)
20bool is_stm32_lptim_trigger(struct iio_trigger *trig); 20bool is_stm32_lptim_trigger(struct iio_trigger *trig);
21#else 21#else
22static inline bool is_stm32_lptim_trigger(struct iio_trigger *trig) 22static inline bool is_stm32_lptim_trigger(struct iio_trigger *trig)
23{ 23{
24#if IS_ENABLED(CONFIG_IIO_STM32_LPTIMER_TRIGGER)
25 pr_warn_once("stm32 lptim_trigger not linked in\n");
26#endif
24 return false; 27 return false;
25} 28}
26#endif 29#endif
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
index dd418955962b..39fb3700f7a9 100644
--- a/include/linux/irqdesc.h
+++ b/include/linux/irqdesc.h
@@ -230,7 +230,7 @@ irq_set_chip_handler_name_locked(struct irq_data *data, struct irq_chip *chip,
230 data->chip = chip; 230 data->chip = chip;
231} 231}
232 232
233static inline int irq_balancing_disabled(unsigned int irq) 233static inline bool irq_balancing_disabled(unsigned int irq)
234{ 234{
235 struct irq_desc *desc; 235 struct irq_desc *desc;
236 236
@@ -238,7 +238,7 @@ static inline int irq_balancing_disabled(unsigned int irq)
238 return desc->status_use_accessors & IRQ_NO_BALANCING_MASK; 238 return desc->status_use_accessors & IRQ_NO_BALANCING_MASK;
239} 239}
240 240
241static inline int irq_is_percpu(unsigned int irq) 241static inline bool irq_is_percpu(unsigned int irq)
242{ 242{
243 struct irq_desc *desc; 243 struct irq_desc *desc;
244 244
@@ -246,7 +246,7 @@ static inline int irq_is_percpu(unsigned int irq)
246 return desc->status_use_accessors & IRQ_PER_CPU; 246 return desc->status_use_accessors & IRQ_PER_CPU;
247} 247}
248 248
249static inline int irq_is_percpu_devid(unsigned int irq) 249static inline bool irq_is_percpu_devid(unsigned int irq)
250{ 250{
251 struct irq_desc *desc; 251 struct irq_desc *desc;
252 252
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 708f337d780b..bd118a6c60cb 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -14,12 +14,6 @@
14#define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ 14#define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
15 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1) 15 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)
16 16
17#ifndef CONFIG_64BIT
18# define KALLSYM_FMT "%08lx"
19#else
20# define KALLSYM_FMT "%016lx"
21#endif
22
23struct module; 17struct module;
24 18
25#ifdef CONFIG_KALLSYMS 19#ifdef CONFIG_KALLSYMS
diff --git a/include/linux/kmemcheck.h b/include/linux/kmemcheck.h
deleted file mode 100644
index ea32a7d3cf1b..000000000000
--- a/include/linux/kmemcheck.h
+++ /dev/null
@@ -1 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 */
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 2e754b7c282c..6bdd4b9f6611 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -232,7 +232,7 @@ struct kvm_vcpu {
232 struct mutex mutex; 232 struct mutex mutex;
233 struct kvm_run *run; 233 struct kvm_run *run;
234 234
235 int guest_fpu_loaded, guest_xcr0_loaded; 235 int guest_xcr0_loaded;
236 struct swait_queue_head wq; 236 struct swait_queue_head wq;
237 struct pid __rcu *pid; 237 struct pid __rcu *pid;
238 int sigset_active; 238 int sigset_active;
@@ -715,6 +715,9 @@ int kvm_vcpu_write_guest(struct kvm_vcpu *vcpu, gpa_t gpa, const void *data,
715 unsigned long len); 715 unsigned long len);
716void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn); 716void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn);
717 717
718void kvm_sigset_activate(struct kvm_vcpu *vcpu);
719void kvm_sigset_deactivate(struct kvm_vcpu *vcpu);
720
718void kvm_vcpu_block(struct kvm_vcpu *vcpu); 721void kvm_vcpu_block(struct kvm_vcpu *vcpu);
719void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu); 722void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu);
720void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu); 723void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu);
diff --git a/include/linux/libgcc.h b/include/linux/libgcc.h
new file mode 100644
index 000000000000..32e1e0f4b2d0
--- /dev/null
+++ b/include/linux/libgcc.h
@@ -0,0 +1,43 @@
1/*
2 * include/lib/libgcc.h
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, see the file COPYING, or write
16 * to the Free Software Foundation, Inc.
17 */
18
19#ifndef __LIB_LIBGCC_H
20#define __LIB_LIBGCC_H
21
22#include <asm/byteorder.h>
23
24typedef int word_type __attribute__ ((mode (__word__)));
25
26#ifdef __BIG_ENDIAN
27struct DWstruct {
28 int high, low;
29};
30#elif defined(__LITTLE_ENDIAN)
31struct DWstruct {
32 int low, high;
33};
34#else
35#error I feel sick.
36#endif
37
38typedef union {
39 struct DWstruct s;
40 long long ll;
41} DWunion;
42
43#endif /* __ASM_LIBGCC_H */
diff --git a/include/linux/migrate.h b/include/linux/migrate.h
index 895ec0c4942e..a2246cf670ba 100644
--- a/include/linux/migrate.h
+++ b/include/linux/migrate.h
@@ -54,7 +54,7 @@ static inline struct page *new_page_nodemask(struct page *page,
54 new_page = __alloc_pages_nodemask(gfp_mask, order, 54 new_page = __alloc_pages_nodemask(gfp_mask, order,
55 preferred_nid, nodemask); 55 preferred_nid, nodemask);
56 56
57 if (new_page && PageTransHuge(page)) 57 if (new_page && PageTransHuge(new_page))
58 prep_transhuge_page(new_page); 58 prep_transhuge_page(new_page);
59 59
60 return new_page; 60 return new_page;
diff --git a/include/linux/mm.h b/include/linux/mm.h
index ee073146aaa7..ea818ff739cd 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -377,6 +377,7 @@ enum page_entry_size {
377struct vm_operations_struct { 377struct vm_operations_struct {
378 void (*open)(struct vm_area_struct * area); 378 void (*open)(struct vm_area_struct * area);
379 void (*close)(struct vm_area_struct * area); 379 void (*close)(struct vm_area_struct * area);
380 int (*split)(struct vm_area_struct * area, unsigned long addr);
380 int (*mremap)(struct vm_area_struct * area); 381 int (*mremap)(struct vm_area_struct * area);
381 int (*fault)(struct vm_fault *vmf); 382 int (*fault)(struct vm_fault *vmf);
382 int (*huge_fault)(struct vm_fault *vmf, enum page_entry_size pe_size); 383 int (*huge_fault)(struct vm_fault *vmf, enum page_entry_size pe_size);
@@ -1379,6 +1380,19 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages,
1379 unsigned int gup_flags, struct page **pages, int *locked); 1380 unsigned int gup_flags, struct page **pages, int *locked);
1380long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages, 1381long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
1381 struct page **pages, unsigned int gup_flags); 1382 struct page **pages, unsigned int gup_flags);
1383#ifdef CONFIG_FS_DAX
1384long get_user_pages_longterm(unsigned long start, unsigned long nr_pages,
1385 unsigned int gup_flags, struct page **pages,
1386 struct vm_area_struct **vmas);
1387#else
1388static inline long get_user_pages_longterm(unsigned long start,
1389 unsigned long nr_pages, unsigned int gup_flags,
1390 struct page **pages, struct vm_area_struct **vmas)
1391{
1392 return get_user_pages(start, nr_pages, gup_flags, pages, vmas);
1393}
1394#endif /* CONFIG_FS_DAX */
1395
1382int get_user_pages_fast(unsigned long start, int nr_pages, int write, 1396int get_user_pages_fast(unsigned long start, int nr_pages, int write,
1383 struct page **pages); 1397 struct page **pages);
1384 1398
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 2c9c87d8a0c1..7546822a1d74 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -15,6 +15,7 @@
15#define _LINUX_PERF_EVENT_H 15#define _LINUX_PERF_EVENT_H
16 16
17#include <uapi/linux/perf_event.h> 17#include <uapi/linux/perf_event.h>
18#include <uapi/linux/bpf_perf_event.h>
18 19
19/* 20/*
20 * Kernel-internal data types and definitions: 21 * Kernel-internal data types and definitions:
@@ -787,7 +788,7 @@ struct perf_output_handle {
787}; 788};
788 789
789struct bpf_perf_event_data_kern { 790struct bpf_perf_event_data_kern {
790 struct pt_regs *regs; 791 bpf_user_pt_regs_t *regs;
791 struct perf_sample_data *data; 792 struct perf_sample_data *data;
792 struct perf_event *event; 793 struct perf_event *event;
793}; 794};
@@ -1177,6 +1178,9 @@ extern void perf_bp_event(struct perf_event *event, void *data);
1177 (user_mode(regs) ? PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL) 1178 (user_mode(regs) ? PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL)
1178# define perf_instruction_pointer(regs) instruction_pointer(regs) 1179# define perf_instruction_pointer(regs) instruction_pointer(regs)
1179#endif 1180#endif
1181#ifndef perf_arch_bpf_user_pt_regs
1182# define perf_arch_bpf_user_pt_regs(regs) regs
1183#endif
1180 1184
1181static inline bool has_branch_stack(struct perf_event *event) 1185static inline bool has_branch_stack(struct perf_event *event)
1182{ 1186{
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h
index a328e8181e49..e4b257ff881b 100644
--- a/include/linux/rculist_nulls.h
+++ b/include/linux/rculist_nulls.h
@@ -101,44 +101,6 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n,
101} 101}
102 102
103/** 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 end of the specified hlist_nulls,
110 * while permitting racing traversals. NOTE: tail insertion requires
111 * list traversal.
112 *
113 * The caller must take whatever precautions are necessary
114 * (such as holding appropriate locks) to avoid racing
115 * with another list-mutation primitive, such as hlist_nulls_add_head_rcu()
116 * or hlist_nulls_del_rcu(), running on this same list.
117 * However, it is perfectly legal to run concurrently with
118 * the _rcu list-traversal primitives, such as
119 * hlist_nulls_for_each_entry_rcu(), used to prevent memory-consistency
120 * problems on Alpha CPUs. Regardless of the type of CPU, the
121 * list-traversal primitive must be guarded by rcu_read_lock().
122 */
123static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
124 struct hlist_nulls_head *h)
125{
126 struct hlist_nulls_node *i, *last = NULL;
127
128 for (i = hlist_nulls_first_rcu(h); !is_a_nulls(i);
129 i = hlist_nulls_next_rcu(i))
130 last = i;
131
132 if (last) {
133 n->next = last->next;
134 n->pprev = &last->next;
135 rcu_assign_pointer(hlist_nulls_next_rcu(last), n);
136 } else {
137 hlist_nulls_add_head_rcu(n, h);
138 }
139}
140
141/**
142 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type 104 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
143 * @tpos: the type * to use as a loop cursor. 105 * @tpos: the type * to use as a loop cursor.
144 * @pos: the &struct hlist_nulls_node to use as a loop cursor. 106 * @pos: the &struct hlist_nulls_node to use as a loop cursor.
diff --git a/include/linux/serdev.h b/include/linux/serdev.h
index e69402d4a8ae..d609e6dc5bad 100644
--- a/include/linux/serdev.h
+++ b/include/linux/serdev.h
@@ -184,7 +184,7 @@ static inline int serdev_controller_receive_buf(struct serdev_controller *ctrl,
184 struct serdev_device *serdev = ctrl->serdev; 184 struct serdev_device *serdev = ctrl->serdev;
185 185
186 if (!serdev || !serdev->ops->receive_buf) 186 if (!serdev || !serdev->ops->receive_buf)
187 return -EINVAL; 187 return 0;
188 188
189 return serdev->ops->receive_buf(serdev, data, count); 189 return serdev->ops->receive_buf(serdev, data, count);
190} 190}
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index bc486ef23f20..a38c80e9f91e 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1406,8 +1406,7 @@ static inline struct sk_buff *skb_get(struct sk_buff *skb)
1406} 1406}
1407 1407
1408/* 1408/*
1409 * If users == 1, we are the only owner and are can avoid redundant 1409 * If users == 1, we are the only owner and can avoid redundant atomic changes.
1410 * atomic change.
1411 */ 1410 */
1412 1411
1413/** 1412/**
diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h
index 270bad0e1bed..40d2822f0e2f 100644
--- a/include/linux/sunrpc/cache.h
+++ b/include/linux/sunrpc/cache.h
@@ -213,7 +213,7 @@ extern void __init cache_initialize(void);
213extern int cache_register_net(struct cache_detail *cd, struct net *net); 213extern int cache_register_net(struct cache_detail *cd, struct net *net);
214extern void cache_unregister_net(struct cache_detail *cd, struct net *net); 214extern void cache_unregister_net(struct cache_detail *cd, struct net *net);
215 215
216extern struct cache_detail *cache_create_net(struct cache_detail *tmpl, struct net *net); 216extern struct cache_detail *cache_create_net(const struct cache_detail *tmpl, struct net *net);
217extern void cache_destroy_net(struct cache_detail *cd, struct net *net); 217extern void cache_destroy_net(struct cache_detail *cd, struct net *net);
218 218
219extern void sunrpc_init_cache_detail(struct cache_detail *cd); 219extern void sunrpc_init_cache_detail(struct cache_detail *cd);
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index e32dfe098e82..40839c02d28c 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -117,6 +117,12 @@ struct attribute_group {
117 .show = _name##_show, \ 117 .show = _name##_show, \
118} 118}
119 119
120#define __ATTR_RO_MODE(_name, _mode) { \
121 .attr = { .name = __stringify(_name), \
122 .mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
123 .show = _name##_show, \
124}
125
120#define __ATTR_WO(_name) { \ 126#define __ATTR_WO(_name) { \
121 .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \ 127 .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \
122 .store = _name##_store, \ 128 .store = _name##_store, \
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index df5d97a85e1a..ca4a6361389b 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -224,7 +224,8 @@ struct tcp_sock {
224 rate_app_limited:1, /* rate_{delivered,interval_us} limited? */ 224 rate_app_limited:1, /* rate_{delivered,interval_us} limited? */
225 fastopen_connect:1, /* FASTOPEN_CONNECT sockopt */ 225 fastopen_connect:1, /* FASTOPEN_CONNECT sockopt */
226 fastopen_no_cookie:1, /* Allow send/recv SYN+data without a cookie */ 226 fastopen_no_cookie:1, /* Allow send/recv SYN+data without a cookie */
227 unused:3; 227 is_sack_reneg:1, /* in recovery from loss with SACK reneg? */
228 unused:2;
228 u8 nonagle : 4,/* Disable Nagle algorithm? */ 229 u8 nonagle : 4,/* Disable Nagle algorithm? */
229 thin_lto : 1,/* Use linear timeouts for thin streams */ 230 thin_lto : 1,/* Use linear timeouts for thin streams */
230 unused1 : 1, 231 unused1 : 1,
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index a69877734c4e..e2ec3582e549 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -82,6 +82,7 @@ struct usbnet {
82# define EVENT_RX_KILL 10 82# define EVENT_RX_KILL 10
83# define EVENT_LINK_CHANGE 11 83# define EVENT_LINK_CHANGE 11
84# define EVENT_SET_RX_MODE 12 84# define EVENT_SET_RX_MODE 12
85# define EVENT_NO_IP_ALIGN 13
85}; 86};
86 87
87static inline struct usb_driver *driver_of(struct usb_interface *intf) 88static inline struct usb_driver *driver_of(struct usb_interface *intf)