diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ceph/ceph_features.h | 8 | ||||
| -rw-r--r-- | include/linux/compat.h | 6 | ||||
| -rw-r--r-- | include/linux/cpufreq.h | 4 | ||||
| -rw-r--r-- | include/linux/cpuhotplug.h | 1 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 13 | ||||
| -rw-r--r-- | include/linux/dma-direct.h | 3 | ||||
| -rw-r--r-- | include/linux/dma-mapping.h | 5 | ||||
| -rw-r--r-- | include/linux/filter.h | 2 | ||||
| -rw-r--r-- | include/linux/fs.h | 7 | ||||
| -rw-r--r-- | include/linux/irqflags.h | 73 | ||||
| -rw-r--r-- | include/linux/jbd2.h | 2 | ||||
| -rw-r--r-- | include/linux/jhash.h | 26 | ||||
| -rw-r--r-- | include/linux/kernel.h | 2 | ||||
| -rw-r--r-- | include/linux/lockdep.h | 18 | ||||
| -rw-r--r-- | include/linux/mm.h | 11 | ||||
| -rw-r--r-- | include/linux/mmu_context.h | 5 | ||||
| -rw-r--r-- | include/linux/netfilter_ipv6.h | 18 | ||||
| -rw-r--r-- | include/linux/pgtable.h | 2 | ||||
| -rw-r--r-- | include/linux/phylink.h | 3 | ||||
| -rw-r--r-- | include/linux/sched.h | 2 | ||||
| -rw-r--r-- | include/linux/sched/user.h | 3 | ||||
| -rw-r--r-- | include/linux/signal.h | 12 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 12 | ||||
| -rw-r--r-- | include/linux/soc/ti/ti_sci_protocol.h | 13 | 
24 files changed, 139 insertions, 112 deletions
diff --git a/include/linux/ceph/ceph_features.h b/include/linux/ceph/ceph_features.h index fcd84e8d88f4..999636d53cf2 100644 --- a/include/linux/ceph/ceph_features.h +++ b/include/linux/ceph/ceph_features.h @@ -11,14 +11,14 @@  #define CEPH_FEATURE_INCARNATION_2 (1ull<<57) // CEPH_FEATURE_SERVER_JEWEL  #define DEFINE_CEPH_FEATURE(bit, incarnation, name)			\ -	static const uint64_t CEPH_FEATURE_##name = (1ULL<<bit);		\ -	static const uint64_t CEPH_FEATUREMASK_##name =			\ +	static const uint64_t __maybe_unused CEPH_FEATURE_##name = (1ULL<<bit);		\ +	static const uint64_t __maybe_unused CEPH_FEATUREMASK_##name =			\  		(1ULL<<bit | CEPH_FEATURE_INCARNATION_##incarnation);  /* this bit is ignored but still advertised by release *when* */  #define DEFINE_CEPH_FEATURE_DEPRECATED(bit, incarnation, name, when) \ -	static const uint64_t DEPRECATED_CEPH_FEATURE_##name = (1ULL<<bit); \ -	static const uint64_t DEPRECATED_CEPH_FEATUREMASK_##name =		\ +	static const uint64_t __maybe_unused DEPRECATED_CEPH_FEATURE_##name = (1ULL<<bit);	\ +	static const uint64_t __maybe_unused DEPRECATED_CEPH_FEATUREMASK_##name =		\  		(1ULL<<bit | CEPH_FEATURE_INCARNATION_##incarnation);  /* diff --git a/include/linux/compat.h b/include/linux/compat.h index d38c4d7e83bd..b354ce58966e 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h @@ -429,11 +429,11 @@ put_compat_sigset(compat_sigset_t __user *compat, const sigset_t *set,  	compat_sigset_t v;  	switch (_NSIG_WORDS) {  	case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; -		/* fall through */ +		fallthrough;  	case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; -		/* fall through */ +		fallthrough;  	case 2: v.sig[3] = (set->sig[1] >> 32); v.sig[2] = set->sig[1]; -		/* fall through */ +		fallthrough;  	case 1: v.sig[1] = (set->sig[0] >> 32); v.sig[0] = set->sig[0];  	}  	return copy_to_user(compat, &v, size) ? -EFAULT : 0; diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 8f141d4c859c..a911e5d06845 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -956,8 +956,8 @@ static inline int cpufreq_frequency_table_target(struct cpufreq_policy *policy,  	case CPUFREQ_RELATION_C:  		return cpufreq_table_find_index_c(policy, target_freq);  	default: -		pr_err("%s: Invalid relation: %d\n", __func__, relation); -		return -EINVAL; +		WARN_ON_ONCE(1); +		return 0;  	}  } diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h index a2710e654b64..3215023d4852 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -132,6 +132,7 @@ enum cpuhp_state {  	CPUHP_AP_MIPS_GIC_TIMER_STARTING,  	CPUHP_AP_ARC_TIMER_STARTING,  	CPUHP_AP_RISCV_TIMER_STARTING, +	CPUHP_AP_CLINT_TIMER_STARTING,  	CPUHP_AP_CSKY_TIMER_STARTING,  	CPUHP_AP_HYPERV_TIMER_STARTING,  	CPUHP_AP_KVM_STARTING, diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index b65909ae4e20..75895e6363b8 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h @@ -75,12 +75,13 @@ struct cpuidle_state {  };  /* Idle State Flags */ -#define CPUIDLE_FLAG_NONE       (0x00) -#define CPUIDLE_FLAG_POLLING	BIT(0) /* polling state */ -#define CPUIDLE_FLAG_COUPLED	BIT(1) /* state applies to multiple cpus */ -#define CPUIDLE_FLAG_TIMER_STOP BIT(2) /* timer is stopped on this state */ -#define CPUIDLE_FLAG_UNUSABLE	BIT(3) /* avoid using this state */ -#define CPUIDLE_FLAG_OFF	BIT(4) /* disable this state by default */ +#define CPUIDLE_FLAG_NONE       	(0x00) +#define CPUIDLE_FLAG_POLLING		BIT(0) /* polling state */ +#define CPUIDLE_FLAG_COUPLED		BIT(1) /* state applies to multiple cpus */ +#define CPUIDLE_FLAG_TIMER_STOP 	BIT(2) /* timer is stopped on this state */ +#define CPUIDLE_FLAG_UNUSABLE		BIT(3) /* avoid using this state */ +#define CPUIDLE_FLAG_OFF		BIT(4) /* disable this state by default */ +#define CPUIDLE_FLAG_TLB_FLUSHED	BIT(5) /* idle-state flushes TLBs */  struct cpuidle_device_kobj;  struct cpuidle_state_kobj; diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h index 5a3ce2a24794..6e87225600ae 100644 --- a/include/linux/dma-direct.h +++ b/include/linux/dma-direct.h @@ -73,9 +73,6 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size,  }  u64 dma_direct_get_required_mask(struct device *dev); -gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask, -				  u64 *phys_mask); -bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size);  void *dma_direct_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,  		gfp_t gfp, unsigned long attrs);  void dma_direct_free(struct device *dev, size_t size, void *cpu_addr, diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 016b96b384bd..52635e91143b 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -522,8 +522,9 @@ void *dma_common_pages_remap(struct page **pages, size_t size,  			pgprot_t prot, const void *caller);  void dma_common_free_remap(void *cpu_addr, size_t size); -void *dma_alloc_from_pool(struct device *dev, size_t size, -			  struct page **ret_page, gfp_t flags); +struct page *dma_alloc_from_pool(struct device *dev, size_t size, +		void **cpu_addr, gfp_t flags, +		bool (*phys_addr_ok)(struct device *, phys_addr_t, size_t));  bool dma_free_from_pool(struct device *dev, void *start, size_t size);  int diff --git a/include/linux/filter.h b/include/linux/filter.h index 0a355b005bf4..ebfb7cfb65f1 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -1200,7 +1200,7 @@ static inline u16 bpf_anc_helper(const struct sock_filter *ftest)  		BPF_ANCILLARY(RANDOM);  		BPF_ANCILLARY(VLAN_TPID);  		} -		/* Fallthrough. */ +		fallthrough;  	default:  		return ftest->code;  	} diff --git a/include/linux/fs.h b/include/linux/fs.h index e019ea2f1347..7519ae003a08 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2132,6 +2132,10 @@ static inline void kiocb_clone(struct kiocb *kiocb, struct kiocb *kiocb_src,   *   * I_DONTCACHE		Evict inode as soon as it is not used anymore.   * + * I_SYNC_QUEUED	Inode is queued in b_io or b_more_io writeback lists. + *			Used to detect that mark_inode_dirty() should not move + * 			inode between dirty lists. + *   * Q: What is the difference between I_WILL_FREE and I_FREEING?   */  #define I_DIRTY_SYNC		(1 << 0) @@ -2149,12 +2153,11 @@ static inline void kiocb_clone(struct kiocb *kiocb, struct kiocb *kiocb_src,  #define I_DIO_WAKEUP		(1 << __I_DIO_WAKEUP)  #define I_LINKABLE		(1 << 10)  #define I_DIRTY_TIME		(1 << 11) -#define __I_DIRTY_TIME_EXPIRED	12 -#define I_DIRTY_TIME_EXPIRED	(1 << __I_DIRTY_TIME_EXPIRED)  #define I_WB_SWITCH		(1 << 13)  #define I_OVL_INUSE		(1 << 14)  #define I_CREATING		(1 << 15)  #define I_DONTCACHE		(1 << 16) +#define I_SYNC_QUEUED		(1 << 17)  #define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)  #define I_DIRTY (I_DIRTY_INODE | I_DIRTY_PAGES) diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h index bd5c55755447..3ed4e8771b64 100644 --- a/include/linux/irqflags.h +++ b/include/linux/irqflags.h @@ -49,17 +49,18 @@ struct irqtrace_events {  DECLARE_PER_CPU(int, hardirqs_enabled);  DECLARE_PER_CPU(int, hardirq_context); -  extern void trace_hardirqs_on_prepare(void); -  extern void trace_hardirqs_off_finish(void); -  extern void trace_hardirqs_on(void); -  extern void trace_hardirqs_off(void); -# define lockdep_hardirq_context()	(this_cpu_read(hardirq_context)) +extern void trace_hardirqs_on_prepare(void); +extern void trace_hardirqs_off_finish(void); +extern void trace_hardirqs_on(void); +extern void trace_hardirqs_off(void); + +# define lockdep_hardirq_context()	(raw_cpu_read(hardirq_context))  # define lockdep_softirq_context(p)	((p)->softirq_context)  # define lockdep_hardirqs_enabled()	(this_cpu_read(hardirqs_enabled))  # define lockdep_softirqs_enabled(p)	((p)->softirqs_enabled)  # define lockdep_hardirq_enter()			\  do {							\ -	if (this_cpu_inc_return(hardirq_context) == 1)	\ +	if (__this_cpu_inc_return(hardirq_context) == 1)\  		current->hardirq_threaded = 0;		\  } while (0)  # define lockdep_hardirq_threaded()		\ @@ -68,7 +69,7 @@ do {						\  } while (0)  # define lockdep_hardirq_exit()			\  do {						\ -	this_cpu_dec(hardirq_context);		\ +	__this_cpu_dec(hardirq_context);	\  } while (0)  # define lockdep_softirq_enter()		\  do {						\ @@ -120,17 +121,17 @@ do {						\  #else  # define trace_hardirqs_on_prepare()		do { } while (0)  # define trace_hardirqs_off_finish()		do { } while (0) -# define trace_hardirqs_on()		do { } while (0) -# define trace_hardirqs_off()		do { } while (0) -# define lockdep_hardirq_context()	0 -# define lockdep_softirq_context(p)	0 -# define lockdep_hardirqs_enabled()	0 -# define lockdep_softirqs_enabled(p)	0 -# define lockdep_hardirq_enter()	do { } while (0) -# define lockdep_hardirq_threaded()	do { } while (0) -# define lockdep_hardirq_exit()		do { } while (0) -# define lockdep_softirq_enter()	do { } while (0) -# define lockdep_softirq_exit()		do { } while (0) +# define trace_hardirqs_on()			do { } while (0) +# define trace_hardirqs_off()			do { } while (0) +# define lockdep_hardirq_context()		0 +# define lockdep_softirq_context(p)		0 +# define lockdep_hardirqs_enabled()		0 +# define lockdep_softirqs_enabled(p)		0 +# define lockdep_hardirq_enter()		do { } while (0) +# define lockdep_hardirq_threaded()		do { } while (0) +# define lockdep_hardirq_exit()			do { } while (0) +# define lockdep_softirq_enter()		do { } while (0) +# define lockdep_softirq_exit()			do { } while (0)  # define lockdep_hrtimer_enter(__hrtimer)	false  # define lockdep_hrtimer_exit(__context)	do { } while (0)  # define lockdep_posixtimer_enter()		do { } while (0) @@ -181,26 +182,33 @@ do {						\   * if !TRACE_IRQFLAGS.   */  #ifdef CONFIG_TRACE_IRQFLAGS -#define local_irq_enable() \ -	do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0) -#define local_irq_disable() \ -	do { raw_local_irq_disable(); trace_hardirqs_off(); } while (0) + +#define local_irq_enable()				\ +	do {						\ +		trace_hardirqs_on();			\ +		raw_local_irq_enable();			\ +	} while (0) + +#define local_irq_disable()				\ +	do {						\ +		bool was_disabled = raw_irqs_disabled();\ +		raw_local_irq_disable();		\ +		if (!was_disabled)			\ +			trace_hardirqs_off();		\ +	} while (0) +  #define local_irq_save(flags)				\  	do {						\  		raw_local_irq_save(flags);		\ -		trace_hardirqs_off();			\ +		if (!raw_irqs_disabled_flags(flags))	\ +			trace_hardirqs_off();		\  	} while (0) -  #define local_irq_restore(flags)			\  	do {						\ -		if (raw_irqs_disabled_flags(flags)) {	\ -			raw_local_irq_restore(flags);	\ -			trace_hardirqs_off();		\ -		} else {				\ +		if (!raw_irqs_disabled_flags(flags))	\  			trace_hardirqs_on();		\ -			raw_local_irq_restore(flags);	\ -		}					\ +		raw_local_irq_restore(flags);		\  	} while (0)  #define safe_halt()				\ @@ -214,10 +222,7 @@ do {						\  #define local_irq_enable()	do { raw_local_irq_enable(); } while (0)  #define local_irq_disable()	do { raw_local_irq_disable(); } while (0) -#define local_irq_save(flags)					\ -	do {							\ -		raw_local_irq_save(flags);			\ -	} while (0) +#define local_irq_save(flags)	do { raw_local_irq_save(flags); } while (0)  #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)  #define safe_halt()		do { raw_safe_halt(); } while (0) diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 4aaa29772bb0..08f904943ab2 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h @@ -1381,7 +1381,7 @@ extern int	 jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *);  extern int	 jbd2_journal_forget (handle_t *, struct buffer_head *);  extern int	 jbd2_journal_invalidatepage(journal_t *,  				struct page *, unsigned int, unsigned int); -extern int	 jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); +extern int	 jbd2_journal_try_to_free_buffers(journal_t *journal, struct page *page);  extern int	 jbd2_journal_stop(handle_t *);  extern int	 jbd2_journal_flush (journal_t *);  extern void	 jbd2_journal_lock_updates (journal_t *); diff --git a/include/linux/jhash.h b/include/linux/jhash.h index 19ddd43aee68..cfb62e9f37be 100644 --- a/include/linux/jhash.h +++ b/include/linux/jhash.h @@ -86,17 +86,17 @@ static inline u32 jhash(const void *key, u32 length, u32 initval)  	}  	/* Last block: affect all 32 bits of (c) */  	switch (length) { -	case 12: c += (u32)k[11]<<24;	/* fall through */ -	case 11: c += (u32)k[10]<<16;	/* fall through */ -	case 10: c += (u32)k[9]<<8;	/* fall through */ -	case 9:  c += k[8];		/* fall through */ -	case 8:  b += (u32)k[7]<<24;	/* fall through */ -	case 7:  b += (u32)k[6]<<16;	/* fall through */ -	case 6:  b += (u32)k[5]<<8;	/* fall through */ -	case 5:  b += k[4];		/* fall through */ -	case 4:  a += (u32)k[3]<<24;	/* fall through */ -	case 3:  a += (u32)k[2]<<16;	/* fall through */ -	case 2:  a += (u32)k[1]<<8;	/* fall through */ +	case 12: c += (u32)k[11]<<24;	fallthrough; +	case 11: c += (u32)k[10]<<16;	fallthrough; +	case 10: c += (u32)k[9]<<8;	fallthrough; +	case 9:  c += k[8];		fallthrough; +	case 8:  b += (u32)k[7]<<24;	fallthrough; +	case 7:  b += (u32)k[6]<<16;	fallthrough; +	case 6:  b += (u32)k[5]<<8;	fallthrough; +	case 5:  b += k[4];		fallthrough; +	case 4:  a += (u32)k[3]<<24;	fallthrough; +	case 3:  a += (u32)k[2]<<16;	fallthrough; +	case 2:  a += (u32)k[1]<<8;	fallthrough;  	case 1:  a += k[0];  		 __jhash_final(a, b, c);  	case 0: /* Nothing left to add */ @@ -132,8 +132,8 @@ static inline u32 jhash2(const u32 *k, u32 length, u32 initval)  	/* Handle the last 3 u32's */  	switch (length) { -	case 3: c += k[2];	/* fall through */ -	case 2: b += k[1];	/* fall through */ +	case 3: c += k[2];	fallthrough; +	case 2: b += k[1];	fallthrough;  	case 1: a += k[0];  		__jhash_final(a, b, c);  	case 0:	/* Nothing left to add */ diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 500def620d8f..c25b8e41c0ea 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -186,7 +186,7 @@   * lower_32_bits - return bits 0-31 of a number   * @n: the number we're accessing   */ -#define lower_32_bits(n) ((u32)(n)) +#define lower_32_bits(n) ((u32)((n) & 0xffffffff))  struct completion;  struct pt_regs; diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 62a382d1845b..6a584b3e5c74 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h @@ -535,19 +535,27 @@ do {									\  DECLARE_PER_CPU(int, hardirqs_enabled);  DECLARE_PER_CPU(int, hardirq_context); +/* + * The below lockdep_assert_*() macros use raw_cpu_read() to access the above + * per-cpu variables. This is required because this_cpu_read() will potentially + * call into preempt/irq-disable and that obviously isn't right. This is also + * correct because when IRQs are enabled, it doesn't matter if we accidentally + * read the value from our previous CPU. + */ +  #define lockdep_assert_irqs_enabled()					\  do {									\ -	WARN_ON_ONCE(debug_locks && !this_cpu_read(hardirqs_enabled));	\ +	WARN_ON_ONCE(debug_locks && !raw_cpu_read(hardirqs_enabled));	\  } while (0)  #define lockdep_assert_irqs_disabled()					\  do {									\ -	WARN_ON_ONCE(debug_locks && this_cpu_read(hardirqs_enabled));	\ +	WARN_ON_ONCE(debug_locks && raw_cpu_read(hardirqs_enabled));	\  } while (0)  #define lockdep_assert_in_irq()						\  do {									\ -	WARN_ON_ONCE(debug_locks && !this_cpu_read(hardirq_context));	\ +	WARN_ON_ONCE(debug_locks && !raw_cpu_read(hardirq_context));	\  } while (0)  #define lockdep_assert_preemption_enabled()				\ @@ -555,7 +563,7 @@ do {									\  	WARN_ON_ONCE(IS_ENABLED(CONFIG_PREEMPT_COUNT)	&&		\  		     debug_locks			&&		\  		     (preempt_count() != 0		||		\ -		      !this_cpu_read(hardirqs_enabled)));		\ +		      !raw_cpu_read(hardirqs_enabled)));		\  } while (0)  #define lockdep_assert_preemption_disabled()				\ @@ -563,7 +571,7 @@ do {									\  	WARN_ON_ONCE(IS_ENABLED(CONFIG_PREEMPT_COUNT)	&&		\  		     debug_locks			&&		\  		     (preempt_count() == 0		&&		\ -		      this_cpu_read(hardirqs_enabled)));		\ +		      raw_cpu_read(hardirqs_enabled)));			\  } while (0)  #else diff --git a/include/linux/mm.h b/include/linux/mm.h index 1983e08f5906..ca6e6a81576b 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -157,11 +157,14 @@ static inline void __mm_zero_struct_page(struct page *page)  	switch (sizeof(struct page)) {  	case 80: -		_pp[9] = 0;	/* fallthrough */ +		_pp[9] = 0; +		fallthrough;  	case 72: -		_pp[8] = 0;	/* fallthrough */ +		_pp[8] = 0; +		fallthrough;  	case 64: -		_pp[7] = 0;	/* fallthrough */ +		_pp[7] = 0; +		fallthrough;  	case 56:  		_pp[6] = 0;  		_pp[5] = 0; @@ -321,6 +324,8 @@ extern unsigned int kobjsize(const void *objp);  #if defined(CONFIG_X86)  # define VM_PAT		VM_ARCH_1	/* PAT reserves whole VMA at once (x86) */ +#elif defined(CONFIG_PPC) +# define VM_SAO		VM_ARCH_1	/* Strong Access Ordering (powerpc) */  #elif defined(CONFIG_PARISC)  # define VM_GROWSUP	VM_ARCH_1  #elif defined(CONFIG_IA64) diff --git a/include/linux/mmu_context.h b/include/linux/mmu_context.h index c51a84132d7c..03dee12d2b61 100644 --- a/include/linux/mmu_context.h +++ b/include/linux/mmu_context.h @@ -3,10 +3,15 @@  #define _LINUX_MMU_CONTEXT_H  #include <asm/mmu_context.h> +#include <asm/mmu.h>  /* Architectures that care about IRQ state in switch_mm can override this. */  #ifndef switch_mm_irqs_off  # define switch_mm_irqs_off switch_mm  #endif +#ifndef leave_mm +static inline void leave_mm(int cpu) { } +#endif +  #endif diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index aac42c28fe62..9b67394471e1 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h @@ -58,7 +58,6 @@ struct nf_ipv6_ops {  			int (*output)(struct net *, struct sock *, struct sk_buff *));  	int (*reroute)(struct sk_buff *skb, const struct nf_queue_entry *entry);  #if IS_MODULE(CONFIG_IPV6) -	int (*br_defrag)(struct net *net, struct sk_buff *skb, u32 user);  	int (*br_fragment)(struct net *net, struct sock *sk,  			   struct sk_buff *skb,  			   struct nf_bridge_frag_data *data, @@ -117,23 +116,6 @@ static inline int nf_ip6_route(struct net *net, struct dst_entry **dst,  #include <net/netfilter/ipv6/nf_defrag_ipv6.h> -static inline int nf_ipv6_br_defrag(struct net *net, struct sk_buff *skb, -				    u32 user) -{ -#if IS_MODULE(CONFIG_IPV6) -	const struct nf_ipv6_ops *v6_ops = nf_get_ipv6_ops(); - -	if (!v6_ops) -		return 1; - -	return v6_ops->br_defrag(net, skb, user); -#elif IS_BUILTIN(CONFIG_IPV6) -	return nf_ct_frag6_gather(net, skb, user); -#else -	return 1; -#endif -} -  int br_ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,  		    struct nf_bridge_frag_data *data,  		    int (*output)(struct net *, struct sock *sk, diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index a124c21e3204..e8cbc2e795d5 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -117,7 +117,9 @@ static inline pgd_t *pgd_offset_pgd(pgd_t *pgd, unsigned long address)   * a shortcut which implies the use of the kernel's pgd, instead   * of a process's   */ +#ifndef pgd_offset_k  #define pgd_offset_k(address)		pgd_offset(&init_mm, (address)) +#endif  /*   * In many cases it is known that a virtual address is mapped at PMD or PTE diff --git a/include/linux/phylink.h b/include/linux/phylink.h index a8e876317e25..c36fb41a7d90 100644 --- a/include/linux/phylink.h +++ b/include/linux/phylink.h @@ -402,7 +402,8 @@ void pcs_get_state(struct phylink_pcs *pcs,   * For most 10GBASE-R, there is no advertisement.   */  int pcs_config(struct phylink_pcs *pcs, unsigned int mode, -	       phy_interface_t interface, const unsigned long *advertising); +	       phy_interface_t interface, const unsigned long *advertising, +	       bool permit_pause_to_mac);  /**   * pcs_an_restart() - restart 802.3z BaseX autonegotiation diff --git a/include/linux/sched.h b/include/linux/sched.h index 93ecd930efd3..afe01e232935 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1666,7 +1666,7 @@ extern struct task_struct *idle_task(int cpu);   *   * Return: 1 if @p is an idle task. 0 otherwise.   */ -static inline bool is_idle_task(const struct task_struct *p) +static __always_inline bool is_idle_task(const struct task_struct *p)  {  	return !!(p->flags & PF_IDLE);  } diff --git a/include/linux/sched/user.h b/include/linux/sched/user.h index 917d88edb7b9..a8ec3b6093fc 100644 --- a/include/linux/sched/user.h +++ b/include/linux/sched/user.h @@ -36,6 +36,9 @@ struct user_struct {      defined(CONFIG_NET) || defined(CONFIG_IO_URING)  	atomic_long_t locked_vm;  #endif +#ifdef CONFIG_WATCH_QUEUE +	atomic_t nr_watches;	/* The number of watches this user currently has */ +#endif  	/* Miscellaneous per-user rate limit */  	struct ratelimit_state ratelimit; diff --git a/include/linux/signal.h b/include/linux/signal.h index 6bb1a3f0258c..7bbc0e9cf084 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -137,11 +137,11 @@ static inline void name(sigset_t *r, const sigset_t *a, const sigset_t *b) \  		b3 = b->sig[3]; b2 = b->sig[2];				\  		r->sig[3] = op(a3, b3);					\  		r->sig[2] = op(a2, b2);					\ -		/* fall through */					\ +		fallthrough;						\  	case 2:								\  		a1 = a->sig[1]; b1 = b->sig[1];				\  		r->sig[1] = op(a1, b1);					\ -		/* fall through */					\ +		fallthrough;						\  	case 1:								\  		a0 = a->sig[0]; b0 = b->sig[0];				\  		r->sig[0] = op(a0, b0);					\ @@ -171,9 +171,9 @@ static inline void name(sigset_t *set)					\  	switch (_NSIG_WORDS) {						\  	case 4:	set->sig[3] = op(set->sig[3]);				\  		set->sig[2] = op(set->sig[2]);				\ -		/* fall through */					\ +		fallthrough;						\  	case 2:	set->sig[1] = op(set->sig[1]);				\ -		/* fall through */					\ +		fallthrough;						\  	case 1:	set->sig[0] = op(set->sig[0]);				\  		    break;						\  	default:							\ @@ -194,7 +194,7 @@ static inline void sigemptyset(sigset_t *set)  		memset(set, 0, sizeof(sigset_t));  		break;  	case 2: set->sig[1] = 0; -		/* fall through */ +		fallthrough;  	case 1:	set->sig[0] = 0;  		break;  	} @@ -207,7 +207,7 @@ static inline void sigfillset(sigset_t *set)  		memset(set, -1, sizeof(sigset_t));  		break;  	case 2: set->sig[1] = -1; -		/* fall through */ +		fallthrough;  	case 1:	set->sig[0] = -1;  		break;  	} diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 46881d902124..ab57cf787c1f 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -3745,19 +3745,19 @@ static inline bool __skb_metadata_differs(const struct sk_buff *skb_a,  #define __it(x, op) (x -= sizeof(u##op))  #define __it_diff(a, b, op) (*(u##op *)__it(a, op)) ^ (*(u##op *)__it(b, op))  	case 32: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case 24: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case 16: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case  8: diffs |= __it_diff(a, b, 64);  		break;  	case 28: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case 20: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case 12: diffs |= __it_diff(a, b, 64); -		 /* fall through */ +		fallthrough;  	case  4: diffs |= __it_diff(a, b, 32);  		break;  	} diff --git a/include/linux/soc/ti/ti_sci_protocol.h b/include/linux/soc/ti/ti_sci_protocol.h index 49c5d29cd33c..cf27b080e148 100644 --- a/include/linux/soc/ti/ti_sci_protocol.h +++ b/include/linux/soc/ti/ti_sci_protocol.h @@ -220,6 +220,9 @@ struct ti_sci_rm_core_ops {  				    u16 *range_start, u16 *range_num);  }; +#define TI_SCI_RESASG_SUBTYPE_IR_OUTPUT		0 +#define TI_SCI_RESASG_SUBTYPE_IA_VINT		0xa +#define TI_SCI_RESASG_SUBTYPE_GLOBAL_EVENT_SEVT	0xd  /**   * struct ti_sci_rm_irq_ops: IRQ management operations   * @set_irq:		Set an IRQ route between the requested source @@ -556,6 +559,9 @@ u32 ti_sci_get_num_resources(struct ti_sci_resource *res);  struct ti_sci_resource *  devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,  			    struct device *dev, u32 dev_id, char *of_prop); +struct ti_sci_resource * +devm_ti_sci_get_resource(const struct ti_sci_handle *handle, struct device *dev, +			 u32 dev_id, u32 sub_type);  #else	/* CONFIG_TI_SCI_PROTOCOL */ @@ -609,6 +615,13 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,  {  	return ERR_PTR(-EINVAL);  } + +static inline struct ti_sci_resource * +devm_ti_sci_get_resource(const struct ti_sci_handle *handle, struct device *dev, +			 u32 dev_id, u32 sub_type); +{ +	return ERR_PTR(-EINVAL); +}  #endif	/* CONFIG_TI_SCI_PROTOCOL */  #endif	/* __TISCI_PROTOCOL_H */  |