Kernel
  Threads by month 
                
            - ----- 2025 -----
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2024 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2023 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2022 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2021 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2020 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2019 -----
 - December
 
- 29 participants
 - 21062 discussions
 
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1425/1425] kernel/sched/debug.c:990:17: error: no member named 'nr_wakeups_preferred_cpus' in 'struct dyn_affinity_stats'
                        
                        
by kernel test robot 31 Mar '25
                    by kernel test robot 31 Mar '25
31 Mar '25
                    
                        Hi Hui,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5b56c883c34a890a3f9ca7baa8aea426538c88a8
commit: ebca52abe099caa97d7669d0acc71209ea80cfec [1425/1425] sched: Add statistics for scheduler dynamic affinity
config: x86_64-randconfig-103-20250219 (https://download.01.org/0day-ci/archive/20250331/202503310934.WNROVBec-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250331/202503310934.WNROVBec-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503310934.WNROVBec-lkp@intel.com/
All errors (new ones prefixed by >>):
   kernel/sched/debug.c:815:6: warning: no previous prototype for function 'sysrq_sched_debug_tidy' [-Wmissing-prototypes]
     815 | void sysrq_sched_debug_tidy(void)
         |      ^
   kernel/sched/debug.c:815:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     815 | void sysrq_sched_debug_tidy(void)
         | ^
         | static 
>> kernel/sched/debug.c:990:17: error: no member named 'nr_wakeups_preferred_cpus' in 'struct dyn_affinity_stats'
     990 |                 __P(dyn_affi->nr_wakeups_preferred_cpus);
         |                     ~~~~~~~~  ^
   kernel/sched/debug.c:939:48: note: expanded from macro '__P'
     939 |         SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)F)
         |                                                       ^
   kernel/sched/debug.c:21:17: note: expanded from macro 'SEQ_printf'
      21 |                 seq_printf(m, x);               \
         |                               ^
>> kernel/sched/debug.c:990:17: error: no member named 'nr_wakeups_preferred_cpus' in 'struct dyn_affinity_stats'
     990 |                 __P(dyn_affi->nr_wakeups_preferred_cpus);
         |                     ~~~~~~~~  ^
   kernel/sched/debug.c:939:48: note: expanded from macro '__P'
     939 |         SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)F)
         |                                                       ^
   kernel/sched/debug.c:23:11: note: expanded from macro 'SEQ_printf'
      23 |                 pr_cont(x);                     \
         |                         ^
   include/linux/printk.h:362:26: note: expanded from macro 'pr_cont'
     362 |         printk(KERN_CONT fmt, ##__VA_ARGS__)
         |                                 ^~~~~~~~~~~
>> kernel/sched/debug.c:991:17: error: no member named 'nr_wakeups_force_preferred_cpus' in 'struct dyn_affinity_stats'
     991 |                 __P(dyn_affi->nr_wakeups_force_preferred_cpus);
         |                     ~~~~~~~~  ^
   kernel/sched/debug.c:939:48: note: expanded from macro '__P'
     939 |         SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)F)
         |                                                       ^
   kernel/sched/debug.c:21:17: note: expanded from macro 'SEQ_printf'
      21 |                 seq_printf(m, x);               \
         |                               ^
>> kernel/sched/debug.c:991:17: error: no member named 'nr_wakeups_force_preferred_cpus' in 'struct dyn_affinity_stats'
     991 |                 __P(dyn_affi->nr_wakeups_force_preferred_cpus);
         |                     ~~~~~~~~  ^
   kernel/sched/debug.c:939:48: note: expanded from macro '__P'
     939 |         SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)F)
         |                                                       ^
   kernel/sched/debug.c:23:11: note: expanded from macro 'SEQ_printf'
      23 |                 pr_cont(x);                     \
         |                         ^
   include/linux/printk.h:362:26: note: expanded from macro 'pr_cont'
     362 |         printk(KERN_CONT fmt, ##__VA_ARGS__)
         |                                 ^~~~~~~~~~~
   1 warning and 4 errors generated.
vim +990 kernel/sched/debug.c
   814	
 > 815	void sysrq_sched_debug_tidy(void)
   816	{
   817		int cpu;
   818	
   819		SEQ_printf(NULL, "Sched Debug Version: v0.11, %s %.*s\n",
   820			init_utsname()->release,
   821			(int)strcspn(init_utsname()->version, " "),
   822			init_utsname()->version);
   823	
   824		for_each_online_cpu(cpu)
   825			print_cpu_tidy(NULL, cpu);
   826	}
   827	
   828	/*
   829	 * This itererator needs some explanation.
   830	 * It returns 1 for the header position.
   831	 * This means 2 is CPU 0.
   832	 * In a hotplugged system some CPUs, including CPU 0, may be missing so we have
   833	 * to use cpumask_* to iterate over the CPUs.
   834	 */
   835	static void *sched_debug_start(struct seq_file *file, loff_t *offset)
   836	{
   837		unsigned long n = *offset;
   838	
   839		if (n == 0)
   840			return (void *) 1;
   841	
   842		n--;
   843	
   844		if (n > 0)
   845			n = cpumask_next(n - 1, cpu_online_mask);
   846		else
   847			n = cpumask_first(cpu_online_mask);
   848	
   849		*offset = n + 1;
   850	
   851		if (n < nr_cpu_ids)
   852			return (void *)(unsigned long)(n + 2);
   853	
   854		return NULL;
   855	}
   856	
   857	static void *sched_debug_next(struct seq_file *file, void *data, loff_t *offset)
   858	{
   859		(*offset)++;
   860		return sched_debug_start(file, offset);
   861	}
   862	
   863	static void sched_debug_stop(struct seq_file *file, void *data)
   864	{
   865	}
   866	
   867	static const struct seq_operations sched_debug_sops = {
   868		.start		= sched_debug_start,
   869		.next		= sched_debug_next,
   870		.stop		= sched_debug_stop,
   871		.show		= sched_debug_show,
   872	};
   873	
   874	static int __init init_sched_debug_procfs(void)
   875	{
   876		if (!proc_create_seq("sched_debug", 0444, NULL, &sched_debug_sops))
   877			return -ENOMEM;
   878		return 0;
   879	}
   880	
   881	__initcall(init_sched_debug_procfs);
   882	
   883	#define __P(F)	SEQ_printf(m, "%-45s:%21Ld\n",	     #F, (long long)F)
   884	#define   P(F)	SEQ_printf(m, "%-45s:%21Ld\n",	     #F, (long long)p->F)
   885	#define __PN(F)	SEQ_printf(m, "%-45s:%14Ld.%06ld\n", #F, SPLIT_NS((long long)F))
   886	#define   PN(F)	SEQ_printf(m, "%-45s:%14Ld.%06ld\n", #F, SPLIT_NS((long long)p->F))
   887	
   888	
   889	#ifdef CONFIG_NUMA_BALANCING
   890	void print_numa_stats(struct seq_file *m, int node, unsigned long tsf,
   891			unsigned long tpf, unsigned long gsf, unsigned long gpf)
   892	{
   893		SEQ_printf(m, "numa_faults node=%d ", node);
   894		SEQ_printf(m, "task_private=%lu task_shared=%lu ", tpf, tsf);
   895		SEQ_printf(m, "group_private=%lu group_shared=%lu\n", gpf, gsf);
   896	}
   897	#endif
   898	
   899	
   900	static void sched_show_numa(struct task_struct *p, struct seq_file *m)
   901	{
   902	#ifdef CONFIG_NUMA_BALANCING
   903		struct mempolicy *pol;
   904	
   905		if (p->mm)
   906			P(mm->numa_scan_seq);
   907	
   908		task_lock(p);
   909		pol = p->mempolicy;
   910		if (pol && !(pol->flags & MPOL_F_MORON))
   911			pol = NULL;
   912		mpol_get(pol);
   913		task_unlock(p);
   914	
   915		P(numa_pages_migrated);
   916		P(numa_preferred_nid);
   917		P(total_numa_faults);
   918		SEQ_printf(m, "current_node=%d, numa_group_id=%d\n",
   919				task_node(p), task_numa_group_id(p));
   920		show_numa_stats(p, m);
   921		mpol_put(pol);
   922	#endif
   923	}
   924	
   925	void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns,
   926							  struct seq_file *m)
   927	{
   928	#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
   929		struct dyn_affinity_stats	*dyn_affi = p->se.dyn_affi_stats;
   930	#endif
   931		unsigned long nr_switches;
   932	
   933		SEQ_printf(m, "%s (%d, #threads: %d)\n", p->comm, task_pid_nr_ns(p, ns),
   934							get_nr_threads(p));
   935		SEQ_printf(m,
   936			"---------------------------------------------------------"
   937			"----------\n");
   938	#define __P(F) \
 > 939		SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)F)
   940	#define P(F) \
   941		SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)p->F)
   942	#define P_SCHEDSTAT(F) \
   943		SEQ_printf(m, "%-45s:%21Ld\n", #F, (long long)schedstat_val(p->F))
   944	#define __PN(F) \
   945		SEQ_printf(m, "%-45s:%14Ld.%06ld\n", #F, SPLIT_NS((long long)F))
   946	#define PN(F) \
   947		SEQ_printf(m, "%-45s:%14Ld.%06ld\n", #F, SPLIT_NS((long long)p->F))
   948	#define PN_SCHEDSTAT(F) \
   949		SEQ_printf(m, "%-45s:%14Ld.%06ld\n", #F, SPLIT_NS((long long)schedstat_val(p->F)))
   950	
   951		PN(se.exec_start);
   952		PN(se.vruntime);
   953		PN(se.sum_exec_runtime);
   954	
   955		nr_switches = p->nvcsw + p->nivcsw;
   956	
   957		P(se.nr_migrations);
   958	
   959		if (schedstat_enabled()) {
   960			u64 avg_atom, avg_per_cpu;
   961	
   962			PN_SCHEDSTAT(se.statistics.sum_sleep_runtime);
   963			PN_SCHEDSTAT(se.statistics.wait_start);
   964			PN_SCHEDSTAT(se.statistics.sleep_start);
   965			PN_SCHEDSTAT(se.statistics.block_start);
   966			PN_SCHEDSTAT(se.statistics.sleep_max);
   967			PN_SCHEDSTAT(se.statistics.block_max);
   968			PN_SCHEDSTAT(se.statistics.exec_max);
   969			PN_SCHEDSTAT(se.statistics.slice_max);
   970			PN_SCHEDSTAT(se.statistics.wait_max);
   971			PN_SCHEDSTAT(se.statistics.wait_sum);
   972			P_SCHEDSTAT(se.statistics.wait_count);
   973			PN_SCHEDSTAT(se.statistics.iowait_sum);
   974			P_SCHEDSTAT(se.statistics.iowait_count);
   975			P_SCHEDSTAT(se.statistics.nr_migrations_cold);
   976			P_SCHEDSTAT(se.statistics.nr_failed_migrations_affine);
   977			P_SCHEDSTAT(se.statistics.nr_failed_migrations_running);
   978			P_SCHEDSTAT(se.statistics.nr_failed_migrations_hot);
   979			P_SCHEDSTAT(se.statistics.nr_forced_migrations);
   980			P_SCHEDSTAT(se.statistics.nr_wakeups);
   981			P_SCHEDSTAT(se.statistics.nr_wakeups_sync);
   982			P_SCHEDSTAT(se.statistics.nr_wakeups_migrate);
   983			P_SCHEDSTAT(se.statistics.nr_wakeups_local);
   984			P_SCHEDSTAT(se.statistics.nr_wakeups_remote);
   985			P_SCHEDSTAT(se.statistics.nr_wakeups_affine);
   986			P_SCHEDSTAT(se.statistics.nr_wakeups_affine_attempts);
   987			P_SCHEDSTAT(se.statistics.nr_wakeups_passive);
   988			P_SCHEDSTAT(se.statistics.nr_wakeups_idle);
   989	#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
 > 990			__P(dyn_affi->nr_wakeups_preferred_cpus);
 > 991			__P(dyn_affi->nr_wakeups_force_preferred_cpus);
   992	#endif
   993	
   994			avg_atom = p->se.sum_exec_runtime;
   995			if (nr_switches)
   996				avg_atom = div64_ul(avg_atom, nr_switches);
   997			else
   998				avg_atom = -1LL;
   999	
  1000			avg_per_cpu = p->se.sum_exec_runtime;
  1001			if (p->se.nr_migrations) {
  1002				avg_per_cpu = div64_u64(avg_per_cpu,
  1003							p->se.nr_migrations);
  1004			} else {
  1005				avg_per_cpu = -1LL;
  1006			}
  1007	
  1008			__PN(avg_atom);
  1009			__PN(avg_per_cpu);
  1010		}
  1011	
  1012		__P(nr_switches);
  1013		SEQ_printf(m, "%-45s:%21Ld\n",
  1014			   "nr_voluntary_switches", (long long)p->nvcsw);
  1015		SEQ_printf(m, "%-45s:%21Ld\n",
  1016			   "nr_involuntary_switches", (long long)p->nivcsw);
  1017	
  1018		P(se.load.weight);
  1019		P(se.runnable_weight);
  1020	#ifdef CONFIG_SMP
  1021		P(se.avg.load_sum);
  1022		P(se.avg.runnable_load_sum);
  1023		P(se.avg.util_sum);
  1024		P(se.avg.load_avg);
  1025		P(se.avg.runnable_load_avg);
  1026		P(se.avg.util_avg);
  1027		P(se.avg.last_update_time);
  1028		P(se.avg.util_est.ewma);
  1029		P(se.avg.util_est.enqueued);
  1030	#endif
  1031		P(policy);
  1032		P(prio);
  1033		if (task_has_dl_policy(p)) {
  1034			P(dl.runtime);
  1035			P(dl.deadline);
  1036		}
  1037	#undef PN_SCHEDSTAT
  1038	#undef PN
  1039	#undef __PN
  1040	#undef P_SCHEDSTAT
  1041	#undef P
  1042	#undef __P
  1043	
  1044		{
  1045			unsigned int this_cpu = raw_smp_processor_id();
  1046			u64 t0, t1;
  1047	
  1048			t0 = cpu_clock(this_cpu);
  1049			t1 = cpu_clock(this_cpu);
  1050			SEQ_printf(m, "%-45s:%21Ld\n",
  1051				   "clock-delta", (long long)(t1-t0));
  1052		}
  1053	
  1054		sched_show_numa(p, m);
  1055	}
  1056	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [PATCH openEuler-1.0-LTS] f2fs: fix dereference of stale list iterator after loop body
                        
                        
by Wupeng Ma 31 Mar '25
                    by Wupeng Ma 31 Mar '25
31 Mar '25
                    
                        From: Jakob Koschel <jakobkoschel(a)gmail.com>
stable inclusion
from stable-v4.19.247
commit 385edd3ce5b4b1e9d31f474a5e35a39779ec1110
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBP3SH
CVE: CVE-2022-49425
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 2aaf51dd39afb6d01d13f1e6fe20b684733b37d5 ]
The list iterator variable will be a bogus pointer if no break was hit.
Dereferencing it (cur->page in this case) could load an out-of-bounds/undefined
value making it unsafe to use that in the comparision to determine if the
specific element was found.
Since 'cur->page' *can* be out-ouf-bounds it cannot be guaranteed that
by chance (or intention of an attacker) it matches the value of 'page'
even though the correct element was not found.
This is fixed by using a separate list iterator variable for the loop
and only setting the original variable if a suitable element was found.
Then determing if the element was found is simply checking if the
variable is set.
Fixes: 8c242db9b8c0 ("f2fs: fix stale ATOMIC_WRITTEN_PAGE private pointer")
Signed-off-by: Jakob Koschel <jakobkoschel(a)gmail.com>
Reviewed-by: Chao Yu <chao(a)kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Wupeng Ma <mawupeng1(a)huawei.com>
---
 fs/f2fs/segment.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 0e3e590a250f..6fbf0471323e 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -354,16 +354,19 @@ void f2fs_drop_inmem_page(struct inode *inode, struct page *page)
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct list_head *head = &fi->inmem_pages;
 	struct inmem_pages *cur = NULL;
+	struct inmem_pages *tmp;
 
 	f2fs_bug_on(sbi, !IS_ATOMIC_WRITTEN_PAGE(page));
 
 	mutex_lock(&fi->inmem_lock);
-	list_for_each_entry(cur, head, list) {
-		if (cur->page == page)
+	list_for_each_entry(tmp, head, list) {
+		if (tmp->page == page) {
+			cur = tmp;
 			break;
+		}
 	}
 
-	f2fs_bug_on(sbi, list_empty(head) || cur->page != page);
+	f2fs_bug_on(sbi, !cur);
 	list_del(&cur->list);
 	mutex_unlock(&fi->inmem_lock);
 
-- 
2.43.0
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 2829/2829] drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2340: multiple definition of `fmgr_cmd_op'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2854: first defined here
                        
                        
by kernel test robot 31 Mar '25
                    by kernel test robot 31 Mar '25
31 Mar '25
                    
                        Hi DuanqiangWen,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   0e7e8faca7062a439fd0a56574c2c3860ceb2088
commit: 3ddd74dceeba1f4ea8b20db59276ea3c6eded3d5 [2829/2829] openeuler: net: txgbe: Fix some known bugs, merge net-swift txgbe-1.2.3 out-of-tree
config: x86_64-randconfig-122-20250330 (https://download.01.org/0day-ci/archive/20250331/202503310959.wgczfMA5-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250331/202503310959.wgczfMA5-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503310959.wgczfMA5-lkp@intel.com/
All errors (new ones prefixed by >>):
   ld: drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: in function `fmgr_cmd_op':
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2340: multiple definition of `fmgr_cmd_op'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2854: first defined here
   ld: drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: in function `fmgr_usr_cmd_op':
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2361: multiple definition of `fmgr_usr_cmd_op'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2875: first defined here
   ld: drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: in function `flash_erase_chip':
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2371: multiple definition of `flash_erase_chip'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2885: first defined here
   ld: drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: in function `flash_erase_sector':
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2377: multiple definition of `flash_erase_sector'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2891: first defined here
   ld: drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: in function `flash_write_dword':
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2393: multiple definition of `flash_write_dword'; drivers/net/ethernet/netswift/txgbe/txgbe_hw.o:drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2908: first defined here
sparse warnings: (new ones prefixed by >>)
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:625:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:625:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:625:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:1004:6: sparse: sparse: symbol 'txgbe_add_uc_addr' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:1138:6: sparse: sparse: symbol 'txgbe_set_mta' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2604:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2604:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2604:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2707:5: sparse: sparse: symbol 'txgbe_setup_mac_link_hostif' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2744:5: sparse: sparse: symbol 'txgbe_crc16_ccitt' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2897:5: sparse: sparse: symbol 'flash_read_dword' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2922:5: sparse: sparse: symbol 'txgbe_flash_write_cab' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2944:5: sparse: sparse: symbol 'txgbe_flash_read_cab' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2975:5: sparse: sparse: symbol 'txgbe_flash_write_unlock' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2998:5: sparse: sparse: symbol 'txgbe_flash_write_lock' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3451:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3451:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3451:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3496:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3496:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3496:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4396:5: sparse: sparse: symbol 'txgbe_enable_rx_adapter' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4417:5: sparse: sparse: symbol 'txgbe_set_sgmii_an37_ability' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4972:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4972:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4972:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:5345:5: sparse: sparse: symbol 'txgbe_reset_misc' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6426:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6426:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6426:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6428:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6428:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6428:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6593:5: sparse: sparse: symbol 'txgbe_read_ee_hostif_data' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6642:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6642:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6642:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6724:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6724:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6724:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6737:5: sparse: sparse: symbol 'txgbe_write_ee_hostif_data' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6847:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6847:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6847:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6890:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6890:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6890:9: sparse:    int
--
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:132:5: sparse: sparse: symbol 'txgbe_poll_for_msg' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:162:5: sparse: sparse: symbol 'txgbe_poll_for_ack' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:263:5: sparse: sparse: symbol 'txgbe_read_v2p_mailbox' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:284:5: sparse: sparse: symbol 'txgbe_check_for_bit_vf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:300:5: sparse: sparse: symbol 'txgbe_check_for_msg_vf' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:320:5: sparse: sparse: symbol 'txgbe_check_for_ack_vf' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:340:5: sparse: sparse: symbol 'txgbe_check_for_rst_vf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:359:5: sparse: sparse: symbol 'txgbe_obtain_mbx_lock_vf' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:387:5: sparse: sparse: symbol 'txgbe_write_mbx_vf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:425:5: sparse: sparse: symbol 'txgbe_read_mbx_vf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:483:5: sparse: sparse: symbol 'txgbe_check_for_bit_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:503:5: sparse: sparse: symbol 'txgbe_check_for_msg_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:525:5: sparse: sparse: symbol 'txgbe_check_for_ack_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:547:5: sparse: sparse: symbol 'txgbe_check_for_rst_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:572:5: sparse: sparse: symbol 'txgbe_obtain_mbx_lock_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:601:5: sparse: sparse: symbol 'txgbe_write_mbx_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:644:5: sparse: sparse: symbol 'txgbe_read_mbx_pf' was not declared. Should it be static?
vim +2340 drivers/net/ethernet/netswift/ngbe/ngbe_hw.c
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2333  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2334  /**
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2335   * cmd_addr is used for some special command:
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2336   * 1. to be sector address, when implemented erase sector command
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2337   * 2. to be flash address when implemented read, write flash address
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2338   **/
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2339  u8 fmgr_cmd_op(struct ngbe_hw *hw, u32 cmd, u32 cmd_addr)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01 @2340  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2341  	u32 cmd_val = 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2342  	u32 time_out = 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2343  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2344  	cmd_val = (cmd << SPI_CLK_CMD_OFFSET) | (SPI_CLK_DIV << SPI_CLK_DIV_OFFSET) | cmd_addr;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2345  	wr32(hw, SPI_H_CMD_REG_ADDR, cmd_val);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2346  	while (1) {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2347  		if (rd32(hw, SPI_H_STA_REG_ADDR) & 0x1)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2348  			break;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2349  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2350  		if (time_out == SPI_TIME_OUT_VALUE)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2351  			return 1;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2352  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2353  		time_out = time_out + 1;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2354  		udelay(10);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2355  	}
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2356  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2357  	return 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2358  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2359  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2360  u8 fmgr_usr_cmd_op(struct ngbe_hw *hw, u32 usr_cmd)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01 @2361  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2362  	u8 status = 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2363  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2364  	wr32(hw, SPI_H_USR_CMD_REG_ADDR, usr_cmd);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2365  	status = fmgr_cmd_op(hw, SPI_CMD_USER_CMD, 0);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2366  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2367  	return status;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2368  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2369  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2370  u8 flash_erase_chip(struct ngbe_hw *hw)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01 @2371  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2372  	u8 status = fmgr_cmd_op(hw, SPI_CMD_ERASE_CHIP, 0);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2373  	return status;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2374  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2375  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2376  u8 flash_erase_sector(struct ngbe_hw *hw, u32 sec_addr)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01 @2377  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2378  	u8 status = fmgr_cmd_op(hw, SPI_CMD_ERASE_SECTOR, sec_addr);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2379  	return status;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2380  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2381  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2382  u32 ngbe_flash_read_dword(struct ngbe_hw *hw, u32 addr)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2383  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2384  	u8 status = fmgr_cmd_op(hw, SPI_CMD_READ_DWORD, addr);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2385  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2386  	if (status)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2387  		return (u32)status;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2388  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2389  	return rd32(hw, SPI_H_DAT_REG_ADDR);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2390  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2391  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2392  u8 flash_write_dword(struct ngbe_hw *hw, u32 addr, u32 dword)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01 @2393  {
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2394  	u8 status = 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2395  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2396  	wr32(hw, SPI_H_DAT_REG_ADDR, dword);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2397  	status = fmgr_cmd_op(hw, SPI_CMD_WRITE_DWORD, addr);
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2398  	if (status)
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2399  		return status;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2400  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2401  	if (dword != ngbe_flash_read_dword(hw, addr))
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2402  		return 1;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2403  
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2404  	return 0;
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2405  }
a5961b4bc6ce09 Duanqiang Wen 2022-12-01  2406  
:::::: The code at line 2340 was first introduced by commit
:::::: a5961b4bc6ce09a70902686ecc848a47493a9251 openeuler: net: ngbe: add ngbe module support
:::::: TO: Duanqiang Wen <duanqiangwen(a)net-swift.com>
:::::: CC: Duanqiang Wen <duanqiangwen(a)net-swift.com>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1327/1327] mm/vmscan.c:3257:21: error: implicit declaration of function 'kernel_swap_enabled'
                        
                        
by kernel test robot 31 Mar '25
                    by kernel test robot 31 Mar '25
31 Mar '25
                    
                        Hi liubo,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5b56c883c34a890a3f9ca7baa8aea426538c88a8
commit: 44983705e56ab22fda801d66e2a6bd0d1be7ca0b [1327/1327] etmem: add original kernel swap enabled options
config: x86_64-buildonly-randconfig-005-20241216 (https://download.01.org/0day-ci/archive/20250331/202503310818.VmXexZb9-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250331/202503310818.VmXexZb9-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503310818.VmXexZb9-lkp@intel.com/
All errors (new ones prefixed by >>):
   mm/vmscan.c:2734:17: warning: variable 'node_lru_pages' set but not used [-Wunused-but-set-variable]
    2734 |                 unsigned long node_lru_pages = 0;
         |                               ^
>> mm/vmscan.c:3257:21: error: implicit declaration of function 'kernel_swap_enabled' [-Werror,-Wimplicit-function-declaration]
    3257 |         if (sc != NULL && !kernel_swap_enabled())
         |                            ^
   mm/vmscan.c:3257:21: note: did you mean 'kernfs_ns_enabled'?
   include/linux/kernfs.h:309:20: note: 'kernfs_ns_enabled' declared here
     309 | static inline bool kernfs_ns_enabled(struct kernfs_node *kn)
         |                    ^
   1 warning and 1 error generated.
vim +/kernel_swap_enabled +3257 mm/vmscan.c
  3250	
  3251	/*
  3252	 * Check if original kernel swap is enabled
  3253	 * turn off kernel swap,but leave page cache reclaim on
  3254	 */
  3255	static inline void kernel_swap_check(struct scan_control *sc)
  3256	{
> 3257		if (sc != NULL && !kernel_swap_enabled())
  3258			sc->may_swap = 0;
  3259	}
  3260	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 2829/2829] drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:177:5: sparse: sparse: symbol 'txgbe_get_link_ksettings' was not declared. Should it be static?
                        
                        
by kernel test robot 30 Mar '25
                    by kernel test robot 30 Mar '25
30 Mar '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   0e7e8faca7062a439fd0a56574c2c3860ceb2088
commit: 96c897d3a6cb76928d7981f60f832afba1bcc01b [2829/2829] openeuler: configs: delete txgbe/Kconfig, add txgbe_config to netswift/Kconfig
config: x86_64-randconfig-122-20250330 (https://download.01.org/0day-ci/archive/20250330/202503302242.szHIIxdv-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250330/202503302242.szHIIxdv-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503302242.szHIIxdv-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:177:5: sparse: sparse: symbol 'txgbe_get_link_ksettings' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:447:33: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:447:33: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:447:33: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1674:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1674:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1674:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1696:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1696:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1696:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1732:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1732:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1732:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1736:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1736:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:1736:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2089:25: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2089:25: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2089:25: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2424:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] psrc @@     got unsigned short [usertype] src_port @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2424:36: sparse:     expected restricted __be16 [usertype] psrc
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2424:36: sparse:     got unsigned short [usertype] src_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2425:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] psrc @@     got unsigned short [usertype] src_port @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2425:36: sparse:     expected restricted __be16 [usertype] psrc
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2425:36: sparse:     got unsigned short [usertype] src_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2426:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] pdst @@     got unsigned short [usertype] dst_port @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2426:36: sparse:     expected restricted __be16 [usertype] pdst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2426:36: sparse:     got unsigned short [usertype] dst_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2427:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] pdst @@     got unsigned short [usertype] dst_port @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2427:36: sparse:     expected restricted __be16 [usertype] pdst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2427:36: sparse:     got unsigned short [usertype] dst_port
>> drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2428:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4src @@     got unsigned int @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2428:38: sparse:     expected restricted __be32 [usertype] ip4src
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2428:38: sparse:     got unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2429:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4src @@     got unsigned int @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2429:38: sparse:     expected restricted __be32 [usertype] ip4src
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2429:38: sparse:     got unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2430:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4dst @@     got unsigned int @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2430:38: sparse:     expected restricted __be32 [usertype] ip4dst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2430:38: sparse:     got unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2431:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4dst @@     got unsigned int @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2431:38: sparse:     expected restricted __be32 [usertype] ip4dst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2431:38: sparse:     got unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2432:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] vlan_etype @@     got unsigned short [usertype] flex_bytes @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2432:31: sparse:     expected restricted __be16 [usertype] vlan_etype
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2432:31: sparse:     got unsigned short [usertype] flex_bytes
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2433:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] vlan_etype @@     got unsigned short [usertype] flex_bytes @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2433:31: sparse:     expected restricted __be16 [usertype] vlan_etype
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2433:31: sparse:     got unsigned short [usertype] flex_bytes
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2434:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 @@     got unsigned int [usertype] @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2434:28: sparse:     expected restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2434:28: sparse:     got unsigned int [usertype]
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2435:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 @@     got unsigned int [usertype] @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2435:28: sparse:     expected restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2435:28: sparse:     got unsigned int [usertype]
>> drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2703:43: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int @@     got restricted __be32 [usertype] ip4src @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2703:43: sparse:     expected unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2703:43: sparse:     got restricted __be32 [usertype] ip4src
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2704:34: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int @@     got restricted __be32 [usertype] ip4src @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2704:34: sparse:     expected unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2704:34: sparse:     got restricted __be32 [usertype] ip4src
>> drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2705:43: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int @@     got restricted __be32 [usertype] ip4dst @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2705:43: sparse:     expected unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2705:43: sparse:     got restricted __be32 [usertype] ip4dst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2706:34: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int @@     got restricted __be32 [usertype] ip4dst @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2706:34: sparse:     expected unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2706:34: sparse:     got restricted __be32 [usertype] ip4dst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2707:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] src_port @@     got restricted __be16 [usertype] psrc @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2707:42: sparse:     expected unsigned short [usertype] src_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2707:42: sparse:     got restricted __be16 [usertype] psrc
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2708:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] src_port @@     got restricted __be16 [usertype] psrc @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2708:33: sparse:     expected unsigned short [addressable] [assigned] [usertype] src_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2708:33: sparse:     got restricted __be16 [usertype] psrc
>> drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2709:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] dst_port @@     got restricted __be16 [usertype] pdst @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2709:42: sparse:     expected unsigned short [usertype] dst_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2709:42: sparse:     got restricted __be16 [usertype] pdst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2710:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] dst_port @@     got restricted __be16 [usertype] pdst @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2710:33: sparse:     expected unsigned short [addressable] [assigned] [usertype] dst_port
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2710:33: sparse:     got restricted __be16 [usertype] pdst
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2714:48: sparse: sparse: cast from restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2716:48: sparse: sparse: cast from restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2717:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] flex_bytes @@     got restricted __be16 [usertype] vlan_etype @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2717:52: sparse:     expected unsigned short [usertype] flex_bytes
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2717:52: sparse:     got restricted __be16 [usertype] vlan_etype
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2719:43: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] flex_bytes @@     got restricted __be16 [usertype] vlan_etype @@
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2719:43: sparse:     expected unsigned short [addressable] [assigned] [usertype] flex_bytes
   drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c:2719:43: sparse:     got restricted __be16 [usertype] vlan_etype
--
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:132:5: sparse: sparse: symbol 'txgbe_poll_for_msg' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:162:5: sparse: sparse: symbol 'txgbe_poll_for_ack' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:185:5: sparse: sparse: symbol 'txgbe_check_for_bit_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:205:5: sparse: sparse: symbol 'txgbe_check_for_msg_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:227:5: sparse: sparse: symbol 'txgbe_check_for_ack_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:249:5: sparse: sparse: symbol 'txgbe_check_for_rst_pf' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:274:5: sparse: sparse: symbol 'txgbe_obtain_mbx_lock_pf' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:303:5: sparse: sparse: symbol 'txgbe_write_mbx_pf' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_mbx.c:346:5: sparse: sparse: symbol 'txgbe_read_mbx_pf' was not declared. Should it be static?
--
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:170:6: sparse: sparse: symbol 'txgbe_service_event_schedule' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:930:40: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be16 [usertype] vlan_proto @@     got unsigned short [usertype] @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:930:40: sparse:     expected restricted __be16 [usertype] vlan_proto
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:930:40: sparse:     got unsigned short [usertype]
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2632:6: sparse: sparse: symbol 'txgbe_disable_tx_queue' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2777:25: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2777:25: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2777:25: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2781:25: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2781:25: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2781:25: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2792:25: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2792:25: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2792:25: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2796:25: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2796:25: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2796:25: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2858:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2858:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2858:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2913:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2913:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:2913:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3297:5: sparse: sparse: symbol 'txgbe_add_cloud_switcher' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3312:5: sparse: sparse: symbol 'txgbe_del_cloud_switcher' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3632:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3632:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3632:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3662:6: sparse: sparse: symbol 'txgbe_configure_isb' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3672:6: sparse: sparse: symbol 'txgbe_configure_port' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3921:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3921:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:3921:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4227:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4227:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4227:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4292:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4292:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4292:17: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4310:5: sparse: sparse: symbol 'txgbe_init_shared_code' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4392:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4392:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4392:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4821:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4821:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4821:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4953:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4953:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:4953:17: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5952:40: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5974:36: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5978:67: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5988:32: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5989:36: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:5993:67: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6007:37: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6031:40: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6643:33: sparse: sparse: invalid assignment: ^=
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6643:33: sparse:    left side has type unsigned short
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6643:33: sparse:    right side has type restricted __be16
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6645:33: sparse: sparse: invalid assignment: ^=
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6645:33: sparse:    left side has type unsigned short
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6645:33: sparse:    right side has type restricted __be16
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6647:38: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6648:25: sparse: sparse: invalid assignment: ^=
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6648:25: sparse:    left side has type unsigned short
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6648:25: sparse:    right side has type restricted __be16
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6652:27: sparse: sparse: invalid assignment: ^=
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6652:27: sparse:    left side has type unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6652:27: sparse:    right side has type restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6662:27: sparse: sparse: invalid assignment: ^=
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6662:27: sparse:    left side has type unsigned int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6662:27: sparse:    right side has type restricted __be32
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6682:5: sparse: sparse: symbol 'txgbe_skb_pad_nonzero' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6724:30: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned short [usertype] protocol @@     got restricted __be16 [usertype] protocol @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6724:30: sparse:     expected unsigned short [usertype] protocol
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6724:30: sparse:     got restricted __be16 [usertype] protocol
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6770:26: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] protocol @@     got restricted __be16 [usertype] h_vlan_encapsulated_proto @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6770:26: sparse:     expected unsigned short [usertype] protocol
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6770:26: sparse:     got restricted __be16 [usertype] h_vlan_encapsulated_proto
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6771:29: sparse: sparse: cast from restricted __be16
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6804:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] h_vlan_TCI @@     got unsigned short [usertype] @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6804:42: sparse:     expected restricted __be16 [usertype] h_vlan_TCI
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:6804:42: sparse:     got unsigned short [usertype]
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7209:25: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned short [usertype] port @@     got restricted __be16 [usertype] port @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7209:25: sparse:     expected unsigned short [usertype] port
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7209:25: sparse:     got restricted __be16 [usertype] port
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7275:46: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7277:37: sparse: sparse: cast from restricted __be16
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7285:47: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7287:37: sparse: sparse: cast from restricted __be16
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7379:26: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned short [usertype] type @@     got restricted __be16 [usertype] protocol @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7379:26: sparse:     expected unsigned short [usertype] type
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7379:26: sparse:     got restricted __be16 [usertype] protocol
>> drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7395:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] type @@     got restricted __be16 [usertype] h_vlan_encapsulated_proto @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7395:22: sparse:     expected unsigned short [usertype] type
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7395:22: sparse:     got restricted __be16 [usertype] h_vlan_encapsulated_proto
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7422:35: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different base types)) @@     expected int ( *ndo_vlan_rx_add_vid )( ... ) @@     got int ( * )( ... ) @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7422:35: sparse:     expected int ( *ndo_vlan_rx_add_vid )( ... )
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7422:35: sparse:     got int ( * )( ... )
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7423:35: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different base types)) @@     expected int ( *ndo_vlan_rx_kill_vid )( ... ) @@     got int ( * )( ... ) @@
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7423:35: sparse:     expected int ( *ndo_vlan_rx_kill_vid )( ... )
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7423:35: sparse:     got int ( * )( ... )
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7583:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7583:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7583:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7786:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7786:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_main.c:7786:17: sparse:    int
--
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:645:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:645:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:645:9: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:1042:6: sparse: sparse: symbol 'txgbe_add_uc_addr' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:1186:6: sparse: sparse: symbol 'txgbe_set_mta' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2699:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2699:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2699:9: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2806:5: sparse: sparse: symbol 'txgbe_setup_mac_link_hostif' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:2845:5: sparse: sparse: symbol 'txgbe_crc16_ccitt' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3297:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3297:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3297:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3342:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3342:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:3342:17: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4238:5: sparse: sparse: symbol 'txgbe_enable_rx_adapter' was not declared. Should it be static?
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4259:5: sparse: sparse: symbol 'txgbe_set_sgmii_an37_ability' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4833:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4833:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:4833:9: sparse:    int
>> drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:5239:5: sparse: sparse: symbol 'txgbe_reset_misc' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6345:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6345:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6345:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6347:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6347:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6347:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6520:5: sparse: sparse: symbol 'txgbe_read_ee_hostif_data' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6572:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6572:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6572:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6656:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6656:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6656:9: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6669:5: sparse: sparse: symbol 'txgbe_write_ee_hostif_data' was not declared. Should it be static?
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6712:17: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6712:17: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6712:17: sparse:    int
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6757:9: sparse: sparse: incompatible types in conditional expression (different base types):
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6757:9: sparse:    void
   drivers/net/ethernet/netswift/txgbe/txgbe_hw.c:6757:9: sparse:    int
vim +/txgbe_get_link_ksettings +177 drivers/net/ethernet/netswift/txgbe/txgbe_ethtool.c
a493f74ade8fe6 zhenpengzheng 2021-07-13  176  
a493f74ade8fe6 zhenpengzheng 2021-07-13 @177  int txgbe_get_link_ksettings(struct net_device *netdev,
a493f74ade8fe6 zhenpengzheng 2021-07-13  178  							 struct ethtool_link_ksettings *cmd)
a493f74ade8fe6 zhenpengzheng 2021-07-13  179  {
a493f74ade8fe6 zhenpengzheng 2021-07-13  180  	struct txgbe_adapter *adapter = netdev_priv(netdev);
a493f74ade8fe6 zhenpengzheng 2021-07-13  181  	struct txgbe_hw *hw = &adapter->hw;
a493f74ade8fe6 zhenpengzheng 2021-07-13  182  	u32 supported_link;
a493f74ade8fe6 zhenpengzheng 2021-07-13  183  	u32 link_speed = 0;
a493f74ade8fe6 zhenpengzheng 2021-07-13  184  	bool autoneg = false;
a493f74ade8fe6 zhenpengzheng 2021-07-13  185  	u32 supported, advertising;
a493f74ade8fe6 zhenpengzheng 2021-07-13  186  	bool link_up;
a493f74ade8fe6 zhenpengzheng 2021-07-13  187  
a493f74ade8fe6 zhenpengzheng 2021-07-13  188  	ethtool_convert_link_mode_to_legacy_u32(&supported,
a493f74ade8fe6 zhenpengzheng 2021-07-13  189  											cmd->link_modes.supported);
a493f74ade8fe6 zhenpengzheng 2021-07-13  190  
a493f74ade8fe6 zhenpengzheng 2021-07-13  191  	TCALL(hw, mac.ops.get_link_capabilities, &supported_link, &autoneg);
a493f74ade8fe6 zhenpengzheng 2021-07-13  192  
a493f74ade8fe6 zhenpengzheng 2021-07-13  193  	if ((hw->subsystem_device_id & 0xF0) == TXGBE_ID_KR_KX_KX4)
a493f74ade8fe6 zhenpengzheng 2021-07-13  194  		autoneg = adapter->backplane_an ? 1:0;
a493f74ade8fe6 zhenpengzheng 2021-07-13  195  	else if ((hw->subsystem_device_id & 0xF0) == TXGBE_ID_MAC_SGMII)
a493f74ade8fe6 zhenpengzheng 2021-07-13  196  		autoneg = adapter->an37?1:0;
a493f74ade8fe6 zhenpengzheng 2021-07-13  197  
a493f74ade8fe6 zhenpengzheng 2021-07-13  198  	/* set the supported link speeds */
a493f74ade8fe6 zhenpengzheng 2021-07-13  199  	if (supported_link & TXGBE_LINK_SPEED_10GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  200  		supported |= (txgbe_isbackplane(hw->phy.media_type)) ?
a493f74ade8fe6 zhenpengzheng 2021-07-13  201  			txgbe_backplane_type(hw) : SUPPORTED_10000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  202  	if (supported_link & TXGBE_LINK_SPEED_1GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  203  		supported |= (txgbe_isbackplane(hw->phy.media_type)) ?
a493f74ade8fe6 zhenpengzheng 2021-07-13  204  			SUPPORTED_1000baseKX_Full : SUPPORTED_1000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  205  	if (supported_link & TXGBE_LINK_SPEED_100_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  206  		supported |= SUPPORTED_100baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  207  	if (supported_link & TXGBE_LINK_SPEED_10_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  208  		supported |= SUPPORTED_10baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  209  
a493f74ade8fe6 zhenpengzheng 2021-07-13  210  	/* default advertised speed if phy.autoneg_advertised isn't set */
a493f74ade8fe6 zhenpengzheng 2021-07-13  211  	advertising = supported;
a493f74ade8fe6 zhenpengzheng 2021-07-13  212  
a493f74ade8fe6 zhenpengzheng 2021-07-13  213  	/* set the advertised speeds */
a493f74ade8fe6 zhenpengzheng 2021-07-13  214  	if (hw->phy.autoneg_advertised) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  215  		if (hw->phy.autoneg_advertised & TXGBE_LINK_SPEED_100_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  216  			advertising |= ADVERTISED_100baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  217  		if (hw->phy.autoneg_advertised & TXGBE_LINK_SPEED_10GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  218  			advertising |= (supported & ADVERTISED_MASK_10G);
a493f74ade8fe6 zhenpengzheng 2021-07-13  219  		if (hw->phy.autoneg_advertised & TXGBE_LINK_SPEED_1GB_FULL) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  220  			if (supported & SUPPORTED_1000baseKX_Full)
a493f74ade8fe6 zhenpengzheng 2021-07-13  221  				advertising |= ADVERTISED_1000baseKX_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  222  			else
a493f74ade8fe6 zhenpengzheng 2021-07-13  223  				advertising |= ADVERTISED_1000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  224  		}
a493f74ade8fe6 zhenpengzheng 2021-07-13  225  		if (hw->phy.autoneg_advertised & TXGBE_LINK_SPEED_10_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  226  			advertising |= ADVERTISED_10baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  227  	} else {
a493f74ade8fe6 zhenpengzheng 2021-07-13  228  		/* default modes in case phy.autoneg_advertised isn't set */
a493f74ade8fe6 zhenpengzheng 2021-07-13  229  		if (supported_link & TXGBE_LINK_SPEED_10GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  230  			advertising |= ADVERTISED_10000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  231  		if (supported_link & TXGBE_LINK_SPEED_1GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  232  			advertising |= ADVERTISED_1000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  233  		if (supported_link & TXGBE_LINK_SPEED_100_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  234  			advertising |= ADVERTISED_100baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  235  		if (hw->phy.multispeed_fiber && !autoneg) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  236  			if (supported_link & TXGBE_LINK_SPEED_10GB_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  237  				advertising = ADVERTISED_10000baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  238  		}
a493f74ade8fe6 zhenpengzheng 2021-07-13  239  		if (supported_link & TXGBE_LINK_SPEED_10_FULL)
a493f74ade8fe6 zhenpengzheng 2021-07-13  240  			advertising |= ADVERTISED_10baseT_Full;
a493f74ade8fe6 zhenpengzheng 2021-07-13  241  	}
a493f74ade8fe6 zhenpengzheng 2021-07-13  242  
a493f74ade8fe6 zhenpengzheng 2021-07-13  243  	if (autoneg) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  244  		supported |= SUPPORTED_Autoneg;
a493f74ade8fe6 zhenpengzheng 2021-07-13  245  		advertising |= ADVERTISED_Autoneg;
a493f74ade8fe6 zhenpengzheng 2021-07-13  246  		cmd->base.autoneg = AUTONEG_ENABLE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  247  	} else
a493f74ade8fe6 zhenpengzheng 2021-07-13  248  		cmd->base.autoneg = AUTONEG_DISABLE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  249  
a493f74ade8fe6 zhenpengzheng 2021-07-13  250  	/* Determine the remaining settings based on the PHY type. */
a493f74ade8fe6 zhenpengzheng 2021-07-13  251  	switch (adapter->hw.phy.type) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  252  	case txgbe_phy_tn:
a493f74ade8fe6 zhenpengzheng 2021-07-13  253  	case txgbe_phy_aq:
a493f74ade8fe6 zhenpengzheng 2021-07-13  254  	case txgbe_phy_cu_unknown:
a493f74ade8fe6 zhenpengzheng 2021-07-13  255  		supported |= SUPPORTED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  256  		advertising |= ADVERTISED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  257  		cmd->base.port = PORT_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  258  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  259  	case txgbe_phy_qt:
a493f74ade8fe6 zhenpengzheng 2021-07-13  260  		supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  261  		advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  262  		cmd->base.port = PORT_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  263  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  264  	case txgbe_phy_nl:
a493f74ade8fe6 zhenpengzheng 2021-07-13  265  	case txgbe_phy_sfp_passive_tyco:
a493f74ade8fe6 zhenpengzheng 2021-07-13  266  	case txgbe_phy_sfp_passive_unknown:
a493f74ade8fe6 zhenpengzheng 2021-07-13  267  	case txgbe_phy_sfp_ftl:
a493f74ade8fe6 zhenpengzheng 2021-07-13  268  	case txgbe_phy_sfp_avago:
a493f74ade8fe6 zhenpengzheng 2021-07-13  269  	case txgbe_phy_sfp_intel:
a493f74ade8fe6 zhenpengzheng 2021-07-13  270  	case txgbe_phy_sfp_unknown:
a493f74ade8fe6 zhenpengzheng 2021-07-13  271  		switch (adapter->hw.phy.sfp_type) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  272  			/* SFP+ devices, further checking needed */
a493f74ade8fe6 zhenpengzheng 2021-07-13  273  		case txgbe_sfp_type_da_cu:
a493f74ade8fe6 zhenpengzheng 2021-07-13  274  		case txgbe_sfp_type_da_cu_core0:
a493f74ade8fe6 zhenpengzheng 2021-07-13  275  		case txgbe_sfp_type_da_cu_core1:
a493f74ade8fe6 zhenpengzheng 2021-07-13  276  			supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  277  			advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  278  			cmd->base.port = PORT_DA;
a493f74ade8fe6 zhenpengzheng 2021-07-13  279  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  280  		case txgbe_sfp_type_sr:
a493f74ade8fe6 zhenpengzheng 2021-07-13  281  		case txgbe_sfp_type_lr:
a493f74ade8fe6 zhenpengzheng 2021-07-13  282  		case txgbe_sfp_type_srlr_core0:
a493f74ade8fe6 zhenpengzheng 2021-07-13  283  		case txgbe_sfp_type_srlr_core1:
a493f74ade8fe6 zhenpengzheng 2021-07-13  284  		case txgbe_sfp_type_1g_sx_core0:
a493f74ade8fe6 zhenpengzheng 2021-07-13  285  		case txgbe_sfp_type_1g_sx_core1:
a493f74ade8fe6 zhenpengzheng 2021-07-13  286  		case txgbe_sfp_type_1g_lx_core0:
a493f74ade8fe6 zhenpengzheng 2021-07-13  287  		case txgbe_sfp_type_1g_lx_core1:
a493f74ade8fe6 zhenpengzheng 2021-07-13  288  			supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  289  			advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  290  			cmd->base.port = PORT_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  291  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  292  		case txgbe_sfp_type_not_present:
a493f74ade8fe6 zhenpengzheng 2021-07-13  293  			supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  294  			advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  295  			cmd->base.port = PORT_NONE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  296  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  297  		case txgbe_sfp_type_1g_cu_core0:
a493f74ade8fe6 zhenpengzheng 2021-07-13  298  		case txgbe_sfp_type_1g_cu_core1:
a493f74ade8fe6 zhenpengzheng 2021-07-13  299  			supported |= SUPPORTED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  300  			advertising |= ADVERTISED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  301  			cmd->base.port = PORT_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  302  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  303  		case txgbe_sfp_type_unknown:
a493f74ade8fe6 zhenpengzheng 2021-07-13  304  		default:
a493f74ade8fe6 zhenpengzheng 2021-07-13  305  			supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  306  			advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  307  			cmd->base.port = PORT_OTHER;
a493f74ade8fe6 zhenpengzheng 2021-07-13  308  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  309  		}
a493f74ade8fe6 zhenpengzheng 2021-07-13  310  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  311  	case txgbe_phy_xaui:
a493f74ade8fe6 zhenpengzheng 2021-07-13  312  		supported |= SUPPORTED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  313  		advertising |= ADVERTISED_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  314  		cmd->base.port = PORT_TP;
a493f74ade8fe6 zhenpengzheng 2021-07-13  315  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  316  	case txgbe_phy_unknown:
a493f74ade8fe6 zhenpengzheng 2021-07-13  317  	case txgbe_phy_generic:
a493f74ade8fe6 zhenpengzheng 2021-07-13  318  	case txgbe_phy_sfp_unsupported:
a493f74ade8fe6 zhenpengzheng 2021-07-13  319  	default:
a493f74ade8fe6 zhenpengzheng 2021-07-13  320  		supported |= SUPPORTED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  321  		advertising |= ADVERTISED_FIBRE;
a493f74ade8fe6 zhenpengzheng 2021-07-13  322  		cmd->base.port = PORT_OTHER;
a493f74ade8fe6 zhenpengzheng 2021-07-13  323  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  324  	}
a493f74ade8fe6 zhenpengzheng 2021-07-13  325  
a493f74ade8fe6 zhenpengzheng 2021-07-13  326  	if (!in_interrupt()) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  327  		TCALL(hw, mac.ops.check_link, &link_speed, &link_up, false);
a493f74ade8fe6 zhenpengzheng 2021-07-13  328  	} else {
a493f74ade8fe6 zhenpengzheng 2021-07-13  329  		/*
a493f74ade8fe6 zhenpengzheng 2021-07-13  330  		 * this case is a special workaround for RHEL5 bonding
a493f74ade8fe6 zhenpengzheng 2021-07-13  331  		 * that calls this routine from interrupt context
a493f74ade8fe6 zhenpengzheng 2021-07-13  332  		 */
a493f74ade8fe6 zhenpengzheng 2021-07-13  333  		link_speed = adapter->link_speed;
a493f74ade8fe6 zhenpengzheng 2021-07-13  334  		link_up = adapter->link_up;
a493f74ade8fe6 zhenpengzheng 2021-07-13  335  	}
a493f74ade8fe6 zhenpengzheng 2021-07-13  336  
a493f74ade8fe6 zhenpengzheng 2021-07-13  337  	supported |= SUPPORTED_Pause;
a493f74ade8fe6 zhenpengzheng 2021-07-13  338  
a493f74ade8fe6 zhenpengzheng 2021-07-13  339  	switch (hw->fc.requested_mode) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  340  	case txgbe_fc_full:
a493f74ade8fe6 zhenpengzheng 2021-07-13  341  		advertising |= ADVERTISED_Pause;
a493f74ade8fe6 zhenpengzheng 2021-07-13  342  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  343  	case txgbe_fc_rx_pause:
a493f74ade8fe6 zhenpengzheng 2021-07-13  344  		advertising |= ADVERTISED_Pause |
a493f74ade8fe6 zhenpengzheng 2021-07-13  345  					   ADVERTISED_Asym_Pause;
a493f74ade8fe6 zhenpengzheng 2021-07-13  346  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  347  	case txgbe_fc_tx_pause:
a493f74ade8fe6 zhenpengzheng 2021-07-13  348  		advertising |= ADVERTISED_Asym_Pause;
a493f74ade8fe6 zhenpengzheng 2021-07-13  349  		break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  350  	default:
a493f74ade8fe6 zhenpengzheng 2021-07-13  351  		advertising &= ~(ADVERTISED_Pause |
a493f74ade8fe6 zhenpengzheng 2021-07-13  352  						 ADVERTISED_Asym_Pause);
a493f74ade8fe6 zhenpengzheng 2021-07-13  353  	}
a493f74ade8fe6 zhenpengzheng 2021-07-13  354  
a493f74ade8fe6 zhenpengzheng 2021-07-13  355  	if (link_up) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  356  		switch (link_speed) {
a493f74ade8fe6 zhenpengzheng 2021-07-13  357  		case TXGBE_LINK_SPEED_10GB_FULL:
a493f74ade8fe6 zhenpengzheng 2021-07-13  358  			cmd->base.speed = SPEED_10000;
a493f74ade8fe6 zhenpengzheng 2021-07-13  359  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  360  		case TXGBE_LINK_SPEED_1GB_FULL:
a493f74ade8fe6 zhenpengzheng 2021-07-13  361  			cmd->base.speed = SPEED_1000;
a493f74ade8fe6 zhenpengzheng 2021-07-13  362  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  363  		case TXGBE_LINK_SPEED_100_FULL:
a493f74ade8fe6 zhenpengzheng 2021-07-13  364  			cmd->base.speed = SPEED_100;
a493f74ade8fe6 zhenpengzheng 2021-07-13  365  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  366  		case TXGBE_LINK_SPEED_10_FULL:
a493f74ade8fe6 zhenpengzheng 2021-07-13  367  			cmd->base.speed = SPEED_10;
a493f74ade8fe6 zhenpengzheng 2021-07-13  368  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  369  		default:
a493f74ade8fe6 zhenpengzheng 2021-07-13  370  			break;
a493f74ade8fe6 zhenpengzheng 2021-07-13  371  		}
a493f74ade8fe6 zhenpengzheng 2021-07-13  372  		cmd->base.duplex = DUPLEX_FULL;
a493f74ade8fe6 zhenpengzheng 2021-07-13  373  	} else {
a493f74ade8fe6 zhenpengzheng 2021-07-13  374  		cmd->base.speed = -1;
a493f74ade8fe6 zhenpengzheng 2021-07-13  375  		cmd->base.duplex = -1;
a493f74ade8fe6 zhenpengzheng 2021-07-13  376  	}
a493f74ade8fe6 zhenpengzheng 2021-07-13  377  
a493f74ade8fe6 zhenpengzheng 2021-07-13  378  	ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
a493f74ade8fe6 zhenpengzheng 2021-07-13  379  						supported);
a493f74ade8fe6 zhenpengzheng 2021-07-13  380  	ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
a493f74ade8fe6 zhenpengzheng 2021-07-13  381  						advertising);
a493f74ade8fe6 zhenpengzheng 2021-07-13  382  	return 0;
a493f74ade8fe6 zhenpengzheng 2021-07-13  383  }
a493f74ade8fe6 zhenpengzheng 2021-07-13  384  
:::::: The code at line 177 was first introduced by commit
:::::: a493f74ade8fe69f3446a65ddf7627fdf34c183c net: txgbe: Add support for Netswift 10G NIC
:::::: TO: zhenpengzheng <zhenpengzheng(a)net-swift.com>
:::::: CC: Zheng Zengkai <zhengzengkai(a)huawei.com>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1531/1531] mm/swapfile.o: warning: objtool: free_swap_and_cache()+0x10f: unreachable instruction
                        
                        
by kernel test robot 30 Mar '25
                    by kernel test robot 30 Mar '25
30 Mar '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5b56c883c34a890a3f9ca7baa8aea426538c88a8
commit: 9b3ba7800bc02ca4f0e62d79b32edc22e24ca926 [1531/1531] mm: swap: fix race between free_swap_and_cache() and swapoff()
config: x86_64-buildonly-randconfig-005-20250329 (https://download.01.org/0day-ci/archive/20250330/202503301931.DQUjzVBe-lkp@…)
compiler: clang version 20.1.1 (https://github.com/llvm/llvm-project 424c2d9b7e4de40d0804dd374721e6411c27d1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250330/202503301931.DQUjzVBe-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503301931.DQUjzVBe-lkp@intel.com/
All warnings (new ones prefixed by >>):
   In file included from mm/swapfile.c:11:
   In file included from include/linux/hugetlb.h:45:
   include/linux/mempolicy.h:329:13: warning: unused function '__do_mbind' [-Wunused-function]
     329 | static long __do_mbind(unsigned long start, unsigned long len,
         |             ^~~~~~~~~~
   1 warning generated.
>> mm/swapfile.o: warning: objtool: free_swap_and_cache()+0x10f: unreachable instruction
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1531/1531] drivers/md/dm.o: warning: objtool: dm_process_bio()+0x2ec: unreachable instruction
                        
                        
by kernel test robot 30 Mar '25
                    by kernel test robot 30 Mar '25
30 Mar '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5b56c883c34a890a3f9ca7baa8aea426538c88a8
commit: 3830dbeebc54a74b56b8253c33857b38fae427fb [1531/1531] dm: revert partial fix for redundant bio-based IO accounting
config: x86_64-buildonly-randconfig-005-20250329 (https://download.01.org/0day-ci/archive/20250330/202503301828.H3xVCQ5Q-lkp@…)
compiler: clang version 20.1.1 (https://github.com/llvm/llvm-project 424c2d9b7e4de40d0804dd374721e6411c27d1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250330/202503301828.H3xVCQ5Q-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503301828.H3xVCQ5Q-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/md/dm.o: warning: objtool: dm_process_bio()+0x2ec: unreachable instruction
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS] BUILD REGRESSION 5b56c883c34a890a3f9ca7baa8aea426538c88a8
                        
                        
by kernel test robot 30 Mar '25
                    by kernel test robot 30 Mar '25
30 Mar '25
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 5b56c883c34a890a3f9ca7baa8aea426538c88a8  !15508  scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
Error/Warning (recently discovered and may have been fixed):
    https://lore.kernel.org/oe-kbuild-all/202503300608.WYcT007F-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202503301024.26J3J3nq-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202503301315.o2E2dF19-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202503301602.HqBUoFWQ-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202503301705.3fAiYws1-lkp@intel.com
    block/blk-mq.o: warning: objtool: blk_mq_unfreeze_queue()+0x75: unreachable instruction
    drivers/dax/bus.o: warning: objtool: __dax_driver_register()+0xd5: unreachable instruction
    drivers/net/dsa/realtek-smi.c:465:34: warning: 'realtek_smi_of_match' defined but not used [-Wunused-const-variable=]
    drivers/nvdimm/claim.o: warning: objtool: nsio_rw_bytes()+0x368: unreachable instruction
    drivers/xen/events/events_base.o: warning: objtool: xen_test_irq_shared()+0xe1: unreachable instruction
    fs/btrfs/file.o: warning: objtool: btrfs_drop_extent_cache()+0x738: unreachable instruction
    kernel/trace/ring_buffer.o: warning: objtool: rb_get_reader_page()+0x4d2: unreachable instruction
Unverified Error/Warning (likely false positive, kindly check if interested):
      789 |                 eprintk("kgdbts: ERROR: beyond end of test on"
      795 |                 eprintk("kgdbts: ERROR: put buffer overflow on"
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-allnoconfig
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-defconfig
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-randconfig-001-20250329
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-tee-optee-core.c:warning:return-makes-integer-from-pointer-without-a-cast
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-randconfig-002-20250329
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-randconfig-003-20250329
|   `-- init-Kconfig:syntax-error
|-- arm64-randconfig-004-20250329
|   `-- init-Kconfig:syntax-error
|-- x86_64-allnoconfig
|   |-- Makefile:include-config-auto.conf.cmd:No-such-file-or-directory
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-allyesconfig
|   |-- drivers-gpu-drm-ttm-ttm_object.c:error:Cannot-parse-struct-or-union
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   |-- mm-page_alloc.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-deferred_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-buildonly-randconfig-001-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- block-blk-mq-debugfs-zoned.o:warning:objtool:missing-symbol-for-section-.text
|   |-- crypto-aegis128.o:warning:objtool:missing-symbol-for-section-.init.text
|   |-- crypto-zstd.o:warning:objtool:missing-symbol-for-section-.init.text
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-regulator-max8973-regulator.o:warning:objtool:max8973_probe:can-t-find-switch-jump-table
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   |-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|   `-- samples-vfio-mdev-mdpy-fb.o:warning:objtool:missing-symbol-for-section-.init.text
|-- x86_64-buildonly-randconfig-002-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- block-blk-mq-debugfs-zoned.o:warning:objtool:missing-symbol-for-section-.text
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-buildonly-randconfig-003-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- block-blk-mq-debugfs-zoned.o:warning:objtool:missing-symbol-for-section-.text
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- eprintk(-kgdbts:ERROR:beyond-end-of-test-on
|   |-- eprintk(-kgdbts:ERROR:put-buffer-overflow-on
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   |-- mm-page_ext.o:warning:objtool:missing-symbol-for-section-.init.text
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-buildonly-randconfig-004-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-gpu-drm-ttm-ttm_object.c:error:Cannot-parse-struct-or-union
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   |-- mm-page_ext.o:warning:objtool:missing-symbol-for-section-.init.text
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-buildonly-randconfig-005-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- block-blk-mq.o:warning:objtool:blk_mq_unfreeze_queue:unreachable-instruction
|   |-- drivers-dax-bus.o:warning:objtool:__dax_driver_register:unreachable-instruction
|   |-- drivers-fpga-dfl.o:warning:objtool:build_info_commit_dev:unreachable-instruction
|   |-- drivers-nvdimm-claim.o:warning:objtool:nsio_rw_bytes:unreachable-instruction
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-xen-events-events_base.o:warning:objtool:xen_test_irq_shared:unreachable-instruction
|   |-- fs-btrfs-file.o:warning:objtool:btrfs_drop_extent_cache:unreachable-instruction
|   |-- kernel-trace-ring_buffer.o:warning:objtool:rb_get_reader_page:unreachable-instruction
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-buildonly-randconfig-006-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-defconfig
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- include-asm-generic-bug.h:warning:mcu_ctrl-may-be-used-uninitialized-in-this-function
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-101-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
|   |-- drivers-gpu-drm-i915-i915_gem.o:warning:objtool:i915_gem_fault-falls-through-to-next-function-i915_gem_object_ggtt_pin()
|   |-- drivers-gpu-drm-i915-intel_display.o:warning:objtool:_intel_adjust_tile_offset-falls-through-to-next-function-rcu_lock_acquire()
|   |-- drivers-gpu-drm-i915-intel_display.o:warning:objtool:_intel_compute_tile_offset-falls-through-to-next-function-skl_format_to_fourcc()
|   |-- drivers-gpu-drm-i915-intel_display.o:warning:objtool:skl_plane_stride-falls-through-to-next-function-skl_plane_ctl()
|   |-- drivers-gpu-drm-i915-vlv_dsi_pll.o:warning:objtool:bxt_dsi_pll_enable-falls-through-to-next-function-bxt_dsi_reset_clocks()
|   |-- drivers-gpu-drm-ttm-ttm_object.c:error:Cannot-parse-struct-or-union
|   |-- drivers-mmc-host-mtk-sd.o:warning:objtool:msdc_set_timeout-falls-through-to-next-function-get_best_delay()
|   |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-102-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-103-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
|   |-- drivers-md-raid5.o:warning:objtool:raid5_compute_sector-falls-through-to-next-function-raid5_compute_blocknr()
|   |-- drivers-mmc-host-mtk-sd.o:warning:objtool:msdc_set_timeout-falls-through-to-next-function-get_best_delay()
|   |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-104-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
|   |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- fs-debugfs-file.o:warning:objtool:full_proxy_open:unreachable-instruction
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-121-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- block-blk-merge.c:sparse:sparse:symbol-blk_try_req_merge-was-not-declared.-Should-it-be-static
|   |-- block-blk-wbt.c:sparse:sparse:symbol-wbt_issue-was-not-declared.-Should-it-be-static
|   |-- block-blk-wbt.c:sparse:sparse:symbol-wbt_requeue-was-not-declared.-Should-it-be-static
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   |-- include-linux-bpf-cgroup.h:sparse:sparse:Using-plain-integer-as-NULL-pointer
|   |-- mm-maccess.c:sparse:sparse:symbol-__probe_user_read-was-not-declared.-Should-it-be-static
|   |-- mm-page_alloc.c:sparse:sparse:invalid-assignment:
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-122-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- block-blk-merge.c:sparse:sparse:symbol-blk_try_req_merge-was-not-declared.-Should-it-be-static
|   |-- block-blk-wbt.c:sparse:sparse:symbol-wbt_issue-was-not-declared.-Should-it-be-static
|   |-- block-blk-wbt.c:sparse:sparse:symbol-wbt_requeue-was-not-declared.-Should-it-be-static
|   |-- drivers-net-wireless-ath-ath9k-htc_drv_txrx.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be16-usertype-rs_datalen-got-unsigned-short-usertype
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-rtc-rtc-ds1685.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   |-- include-linux-bpf-cgroup.h:sparse:sparse:Using-plain-integer-as-NULL-pointer
|   |-- mm-maccess.c:sparse:sparse:symbol-__probe_user_read-was-not-declared.-Should-it-be-static
|   |-- mm-page_alloc.c:sparse:sparse:invalid-assignment:
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-123-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
|   |-- drivers-firewire-core-topology.o:warning:objtool:fw_core_handle_bus_reset:can-t-find-switch-jump-table
|   |-- drivers-input-mouse-elantech.o:warning:objtool:elantech_process_byte:can-t-find-switch-jump-table
|   |-- drivers-leds-leds-lm355x.o:warning:objtool:lm355x_control:can-t-find-switch-jump-table
|   |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- fs-ext4-mballoc.o:warning:objtool:ext4_mb_complex_scan_group:unreachable-instruction
|   |-- fs-gfs2-glock.o:warning:objtool:finish_xmote:can-t-find-switch-jump-table
|   |-- fs-xfs-libxfs-xfs_rmap.o:warning:objtool:xfs_rmap_convert_shared:can-t-find-switch-jump-table
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-161-20250329
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
|   |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
|   |-- drivers-media-tuners-fc2580.o:warning:objtool:fc2580_set_params-falls-through-to-next-function-fc2580_standby()
|   |-- drivers-mmc-host-mtk-sd.o:warning:objtool:msdc_set_timeout-falls-through-to-next-function-get_best_delay()
|   |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   |-- mm-page_alloc.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-deferred_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- x86_64-randconfig-r052-20250330
|   |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
|   |-- drivers-net-dsa-realtek-smi.c:warning:realtek_smi_of_match-defined-but-not-used
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
|   `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
`-- x86_64-randconfig-r053-20250330
    |-- arch-x86-entry-entry_64.o:warning:objtool:.entry.text:unsupported-intra-function-call
    |-- arch-x86-entry-entry_64.o:warning:objtool:If-this-is-a-retpoline-please-patch-it-in-with-alternatives-and-annotate-it-with-ANNOTATE_NOSPEC_ALTERNATIVE.
    |-- drivers-base-regmap-regmap.o:warning:objtool:regmap_raw_read-falls-through-to-next-function-_regmap_raw_read()
    |-- drivers-gpu-drm-ttm-ttm_object.c:error:Cannot-parse-struct-or-union
    |-- drivers-mmc-host-mtk-sd.o:warning:objtool:msdc_set_timeout-falls-through-to-next-function-get_best_delay()
    |-- drivers-net-ethernet-intel-e1000-e1000_main.o:warning:objtool:e1000_watchdog-falls-through-to-next-function-e1000_82547_tx_fifo_stall_task()
    |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
    |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
    `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
elapsed time: 1445m
configs tested: 16
configs skipped: 129
tested configs:
arm64                        allmodconfig    gcc-14.2.0
arm64                         allnoconfig    gcc-14.2.0
arm64                           defconfig    gcc-14.2.0
arm64             randconfig-001-20250329    gcc-7.5.0
arm64             randconfig-002-20250329    gcc-9.5.0
arm64             randconfig-003-20250329    gcc-5.5.0
arm64             randconfig-004-20250329    gcc-5.5.0
x86_64                        allnoconfig    clang-20
x86_64                       allyesconfig    clang-20
x86_64  buildonly-randconfig-001-20250329    clang-20
x86_64  buildonly-randconfig-002-20250329    gcc-12
x86_64  buildonly-randconfig-003-20250329    gcc-12
x86_64  buildonly-randconfig-004-20250329    clang-20
x86_64  buildonly-randconfig-005-20250329    clang-20
x86_64  buildonly-randconfig-006-20250329    gcc-12
x86_64                          defconfig    gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1536/1536] drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse: sparse: incorrect type in assignment (different base types)
                        
                        
by kernel test robot 30 Mar '25
                    by kernel test robot 30 Mar '25
30 Mar '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5b56c883c34a890a3f9ca7baa8aea426538c88a8
commit: c3088bd9bdf90fcfc8a69046692d75c2b04563ba [1536/1536] ath9k_htc: Discard undersized packets
config: x86_64-randconfig-122-20250330 (https://download.01.org/0day-ci/archive/20250330/202503301705.3fAiYws1-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250330/202503301705.3fAiYws1-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503301705.3fAiYws1-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] rs_datalen @@     got unsigned short [usertype] @@
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse:     expected restricted __be16 [usertype] rs_datalen
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse:     got unsigned short [usertype]
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:988:13: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:1001:13: sparse: sparse: restricted __be16 degrades to integer
   In file included from drivers/net/wireless/ath/ath9k/htc.h:23,
                    from drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:17:
   In function '__skb_queue_before',
       inlined from '__skb_queue_tail' at include/linux/skbuff.h:1886:2,
       inlined from 'ath9k_htc_tx_cleanup_queue' at drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:741:4:
   include/linux/skbuff.h:1852:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct sk_buff_head[1]' [-Warray-bounds]
    1852 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c: In function 'ath9k_htc_tx_cleanup_queue':
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:733:29: note: object 'queue' of size 80
     733 |         struct sk_buff_head queue;
         |                             ^~~~~
vim +987 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
   962	
   963	static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
   964				     struct ath9k_htc_rxbuf *rxbuf,
   965				     struct ieee80211_rx_status *rx_status)
   966	
   967	{
   968		struct ieee80211_hdr *hdr;
   969		struct ieee80211_hw *hw = priv->hw;
   970		struct sk_buff *skb = rxbuf->skb;
   971		struct ath_common *common = ath9k_hw_common(priv->ah);
   972		struct ath_hw *ah = common->ah;
   973		struct ath_htc_rx_status *rxstatus;
   974		struct ath_rx_status rx_stats;
   975		bool decrypt_error = false;
   976		__be16 rs_datalen;
   977		bool is_phyerr;
   978	
   979		if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
   980			ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
   981				skb->len);
   982			goto rx_next;
   983		}
   984	
   985		rxstatus = (struct ath_htc_rx_status *)skb->data;
   986	
 > 987		rs_datalen = be16_to_cpu(rxstatus->rs_datalen);
   988		if (unlikely(rs_datalen -
   989		    (skb->len - HTC_RX_FRAME_HEADER_SIZE) != 0)) {
   990			ath_err(common,
   991				"Corrupted RX data len, dropping (dlen: %d, skblen: %d)\n",
   992				rs_datalen, skb->len);
   993			goto rx_next;
   994		}
   995	
   996		is_phyerr = rxstatus->rs_status & ATH9K_RXERR_PHY;
   997		/*
   998		 * Discard zero-length packets and packets smaller than an ACK
   999		 * which are not PHY_ERROR (short radar pulses have a length of 3)
  1000		 */
  1001		if (unlikely(!rs_datalen || (rs_datalen < 10 && !is_phyerr))) {
  1002			ath_warn(common,
  1003				 "Short RX data len, dropping (dlen: %d)\n",
  1004				 rs_datalen);
  1005			goto rx_next;
  1006		}
  1007	
  1008		/* Get the RX status information */
  1009	
  1010		memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
  1011	
  1012		/* Copy everything from ath_htc_rx_status (HTC_RX_FRAME_HEADER).
  1013		 * After this, we can drop this part of skb. */
  1014		rx_status_htc_to_ath(&rx_stats, rxstatus);
  1015		ath9k_htc_err_stat_rx(priv, &rx_stats);
  1016		rx_status->mactime = be64_to_cpu(rxstatus->rs_tstamp);
  1017		skb_pull(skb, HTC_RX_FRAME_HEADER_SIZE);
  1018	
  1019		/*
  1020		 * everything but the rate is checked here, the rate check is done
  1021		 * separately to avoid doing two lookups for a rate for each frame.
  1022		 */
  1023		hdr = (struct ieee80211_hdr *)skb->data;
  1024	
  1025		/*
  1026		 * Process PHY errors and return so that the packet
  1027		 * can be dropped.
  1028		 */
  1029		if (unlikely(is_phyerr)) {
  1030			/* TODO: Not using DFS processing now. */
  1031			if (ath_cmn_process_fft(&priv->spec_priv, hdr,
  1032					    &rx_stats, rx_status->mactime)) {
  1033				/* TODO: Code to collect spectral scan statistics */
  1034			}
  1035			goto rx_next;
  1036		}
  1037	
  1038		if (!ath9k_cmn_rx_accept(common, hdr, rx_status, &rx_stats,
  1039				&decrypt_error, priv->rxfilter))
  1040			goto rx_next;
  1041	
  1042		ath9k_cmn_rx_skb_postprocess(common, skb, &rx_stats,
  1043					     rx_status, decrypt_error);
  1044	
  1045		if (ath9k_cmn_process_rate(common, hw, &rx_stats, rx_status))
  1046			goto rx_next;
  1047	
  1048		rx_stats.is_mybeacon = ath_is_mybeacon(common, hdr);
  1049		ath9k_cmn_process_rssi(common, hw, &rx_stats, rx_status);
  1050	
  1051		rx_status->band = ah->curchan->chan->band;
  1052		rx_status->freq = ah->curchan->chan->center_freq;
  1053		rx_status->antenna = rx_stats.rs_antenna;
  1054		rx_status->flag |= RX_FLAG_MACTIME_END;
  1055	
  1056		return true;
  1057	rx_next:
  1058		return false;
  1059	}
  1060	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    30 Mar '25
                    
                        From: Thomas Gleixner <tglx(a)linutronix.de>
mainline inclusion
from mainline-v6.5-rc1
commit 9841c423164787feb8f1442f922b7d80a70c82f1
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IBXCSJ
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
---------------------------
check_bugs() is about to be phased out. Switch over to the new
arch_cpu_finalize_init() implementation.
No functional change.
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Link: https://lore.kernel.org/r/20230613224545.195288218@linutronix.de
Signed-off-by: Hongchen Zhang <zhanghongchen(a)loongson.cn>
Signed-off-by: Juxin Gao <gaojuxin(a)loongson.cn>
---
 arch/loongarch/Kconfig            |  1 +
 arch/loongarch/include/asm/bugs.h | 15 ---------------
 arch/loongarch/kernel/setup.c     |  4 ++--
 3 files changed, 3 insertions(+), 17 deletions(-)
 delete mode 100644 arch/loongarch/include/asm/bugs.h
diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index 0b608275b4bb..ad5a6365dccb 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -10,6 +10,7 @@ config LOONGARCH
 	select ARCH_ENABLE_MEMORY_HOTPLUG
 	select ARCH_ENABLE_MEMORY_HOTREMOVE
 	select ARCH_HAS_ACPI_TABLE_UPGRADE	if ACPI
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_PHYS_TO_DMA
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
diff --git a/arch/loongarch/include/asm/bugs.h b/arch/loongarch/include/asm/bugs.h
deleted file mode 100644
index 98396535163b..000000000000
--- a/arch/loongarch/include/asm/bugs.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * This is included by init/main.c to check for architecture-dependent bugs.
- *
- * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
- */
-#ifndef _ASM_BUGS_H
-#define _ASM_BUGS_H
-
-#include <asm/cpu.h>
-#include <asm/cpu-info.h>
-
-extern void check_bugs(void);
-
-#endif /* _ASM_BUGS_H */
diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
index 5b6408296786..234bcbec6883 100644
--- a/arch/loongarch/kernel/setup.c
+++ b/arch/loongarch/kernel/setup.c
@@ -12,6 +12,7 @@
  */
 #include <linux/init.h>
 #include <linux/acpi.h>
+#include <linux/cpu.h>
 #include <linux/dmi.h>
 #include <linux/efi.h>
 #include <linux/export.h>
@@ -34,7 +35,6 @@
 #include <asm/addrspace.h>
 #include <asm/alternative.h>
 #include <asm/bootinfo.h>
-#include <asm/bugs.h>
 #include <asm/cache.h>
 #include <asm/cpu.h>
 #include <asm/dma.h>
@@ -87,7 +87,7 @@ const char *get_system_type(void)
 	return "generic-loongson-machine";
 }
 
-void __init check_bugs(void)
+void __init arch_cpu_finalize_init(void)
 {
 	alternative_instructions();
 }
-- 
2.43.0
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1