include/linux/sched/topology.h:237:9: error: implicit declaration of function 'cpu_logical_map'
by kernel test robot
Hi Lukasz,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5
commit: 1bc138c622959979eb547be2d3bbc6442a5c80b0 PM / EM: add support for other devices than CPUs in Energy Model
date: 8 weeks ago
config: mips-randconfig-r001-20200817 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ab9fc8bae805c785066779e76e7846aabad5609e)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
git checkout 1bc138c622959979eb547be2d3bbc6442a5c80b0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from arch/mips/kernel/asm-offsets.c:12:
In file included from include/linux/compat.h:10:
In file included from include/linux/time.h:74:
In file included from include/linux/time32.h:13:
In file included from include/linux/timex.h:65:
In file included from arch/mips/include/asm/timex.h:19:
In file included from arch/mips/include/asm/cpu-type.h:12:
In file included from include/linux/smp.h:15:
include/linux/llist.h:222:9: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
return xchg(&head->first, NULL);
^
arch/mips/include/asm/cmpxchg.h:102:7: note: expanded from macro 'xchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from arch/mips/kernel/asm-offsets.c:12:
In file included from include/linux/compat.h:15:
In file included from include/linux/socket.h:8:
In file included from include/linux/uio.h:10:
In file included from include/crypto/hash.h:11:
In file included from include/linux/crypto.h:19:
In file included from include/linux/slab.h:15:
In file included from include/linux/gfp.h:9:
include/linux/topology.h:119:9: error: implicit declaration of function 'cpu_logical_map' [-Werror,-Wimplicit-function-declaration]
return cpu_to_node(raw_smp_processor_id());
^
arch/mips/include/asm/mach-loongson64/topology.h:7:27: note: expanded from macro 'cpu_to_node'
#define cpu_to_node(cpu) (cpu_logical_map(cpu) >> 2)
^
In file included from arch/mips/kernel/asm-offsets.c:12:
In file included from include/linux/compat.h:15:
In file included from include/linux/socket.h:8:
In file included from include/linux/uio.h:10:
In file included from include/crypto/hash.h:11:
In file included from include/linux/crypto.h:19:
In file included from include/linux/slab.h:15:
In file included from include/linux/gfp.h:9:
include/linux/topology.h:176:9: error: implicit declaration of function 'cpu_logical_map' [-Werror,-Wimplicit-function-declaration]
return cpu_to_node(cpu);
^
arch/mips/include/asm/mach-loongson64/topology.h:7:27: note: expanded from macro 'cpu_to_node'
#define cpu_to_node(cpu) (cpu_logical_map(cpu) >> 2)
^
In file included from arch/mips/kernel/asm-offsets.c:12:
In file included from include/linux/compat.h:15:
In file included from include/linux/socket.h:8:
In file included from include/linux/uio.h:10:
In file included from include/crypto/hash.h:11:
In file included from include/linux/crypto.h:19:
In file included from include/linux/slab.h:15:
In file included from include/linux/gfp.h:9:
include/linux/topology.h:210:25: error: implicit declaration of function 'cpu_logical_map' [-Werror,-Wimplicit-function-declaration]
return cpumask_of_node(cpu_to_node(cpu));
^
arch/mips/include/asm/mach-loongson64/topology.h:7:27: note: expanded from macro 'cpu_to_node'
#define cpu_to_node(cpu) (cpu_logical_map(cpu) >> 2)
^
In file included from arch/mips/kernel/asm-offsets.c:15:
In file included from include/linux/mm.h:32:
In file included from include/linux/pgtable.h:6:
arch/mips/include/asm/pgtable.h:210:3: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
cmpxchg64(&buddy->pte, 0, _PAGE_GLOBAL);
^
arch/mips/include/asm/cmpxchg.h:220:2: note: expanded from macro 'cmpxchg64'
cmpxchg((ptr), (o), (n)); \
^
arch/mips/include/asm/cmpxchg.h:194:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from arch/mips/kernel/asm-offsets.c:15:
In file included from include/linux/mm.h:32:
In file included from include/linux/pgtable.h:6:
arch/mips/include/asm/pgtable.h:210:3: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:220:2: note: expanded from macro 'cmpxchg64'
cmpxchg((ptr), (o), (n)); \
^
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from arch/mips/kernel/asm-offsets.c:17:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:22:
In file included from include/linux/writeback.h:14:
In file included from include/linux/blk-cgroup.h:23:
In file included from include/linux/blkdev.h:11:
In file included from include/linux/genhd.h:36:
In file included from include/linux/device.h:16:
In file included from include/linux/energy_model.h:10:
>> include/linux/sched/topology.h:237:9: error: implicit declaration of function 'cpu_logical_map' [-Werror,-Wimplicit-function-declaration]
return cpu_to_node(task_cpu(p));
^
arch/mips/include/asm/mach-loongson64/topology.h:7:27: note: expanded from macro 'cpu_to_node'
#define cpu_to_node(cpu) (cpu_logical_map(cpu) >> 2)
^
In file included from arch/mips/kernel/asm-offsets.c:24:
include/linux/kvm_host.h:332:9: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
return cmpxchg(&vcpu->mode, IN_GUEST_MODE, EXITING_GUEST_MODE);
^
arch/mips/include/asm/cmpxchg.h:194:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from arch/mips/kernel/asm-offsets.c:24:
include/linux/kvm_host.h:332:9: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for function 'output_ptreg_defines' [-Wmissing-prototypes]
void output_ptreg_defines(void)
^
arch/mips/kernel/asm-offsets.c:26:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_ptreg_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for function 'output_task_defines' [-Wmissing-prototypes]
void output_task_defines(void)
^
arch/mips/kernel/asm-offsets.c:78:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_task_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:93:6: warning: no previous prototype for function 'output_thread_info_defines' [-Wmissing-prototypes]
void output_thread_info_defines(void)
^
arch/mips/kernel/asm-offsets.c:93:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_thread_info_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:110:6: warning: no previous prototype for function 'output_thread_defines' [-Wmissing-prototypes]
void output_thread_defines(void)
^
arch/mips/kernel/asm-offsets.c:110:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_thread_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:181:6: warning: no previous prototype for function 'output_mm_defines' [-Wmissing-prototypes]
void output_mm_defines(void)
^
arch/mips/kernel/asm-offsets.c:181:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_mm_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:242:6: warning: no previous prototype for function 'output_sc_defines' [-Wmissing-prototypes]
void output_sc_defines(void)
^
arch/mips/kernel/asm-offsets.c:242:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_sc_defines(void)
^
static
arch/mips/kernel/asm-offsets.c:255:6: warning: no previous prototype for function 'output_signal_defined' [-Wmissing-prototypes]
void output_signal_defined(void)
^
arch/mips/kernel/asm-offsets.c:255:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_signal_defined(void)
^
static
arch/mips/kernel/asm-offsets.c:322:6: warning: no previous prototype for function 'output_pbe_defines' [-Wmissing-prototypes]
void output_pbe_defines(void)
^
arch/mips/kernel/asm-offsets.c:322:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void output_pbe_defines(void)
^
static
22 warnings and 4 errors generated.
make[2]: *** [scripts/Makefile.build:114: arch/mips/kernel/asm-offsets.s] Error 1
make[2]: Target 'missing-syscalls' not remade because of errors.
make[1]: *** [arch/mips/Makefile:397: archprepare] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:185: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 1bc138c622959979eb547be2d3bbc6442a5c80b0
vim +/cpu_logical_map +237 include/linux/sched/topology.h
36a0df85d2e85e1 Thara Gopinath 2020-02-21 234
ee6a3d19f15b9b1 Ingo Molnar 2017-02-06 235 static inline int task_node(const struct task_struct *p)
ee6a3d19f15b9b1 Ingo Molnar 2017-02-06 236 {
ee6a3d19f15b9b1 Ingo Molnar 2017-02-06 @237 return cpu_to_node(task_cpu(p));
ee6a3d19f15b9b1 Ingo Molnar 2017-02-06 238 }
ee6a3d19f15b9b1 Ingo Molnar 2017-02-06 239
:::::: The code at line 237 was first introduced by commit
:::::: ee6a3d19f15b9b10075481088b8d4537f286d7b4 sched/headers: Remove the <linux/topology.h> include from <linux/sched.h>
:::::: TO: Ingo Molnar <mingo(a)kernel.org>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH 10/16] wireless: intersil: convert tasklets to use new tasklet_setup() API
by kernel test robot
Hi Allen,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on wireless-drivers-next/master]
[also build test WARNING on wireless-drivers/master ath6kl/ath-next v5.9-rc1 next-20200817]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Allen-Pais/wirless-convert-taskl...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/net/wireless/intersil/hostap/hostap_cs.c:196:
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'prism2_tx_80211':
drivers/net/wireless/intersil/hostap/hostap_hw.c:1806:18: warning: variable 'fc' set but not used [-Wunused-but-set-variable]
1806 | u16 tx_control, fc;
| ^~
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'hostap_rx_tasklet':
drivers/net/wireless/intersil/hostap/hostap_hw.c:2088:24: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
2088 | local_info_t *local = from_tasklet(local, t, rx_tasklet);
| ^~~~~~~~~~~~
drivers/net/wireless/intersil/hostap/hostap_hw.c:2088:47: error: 'rx_tasklet' undeclared (first use in this function); did you mean 'rt_task'?
2088 | local_info_t *local = from_tasklet(local, t, rx_tasklet);
| ^~~~~~~~~~
| rt_task
drivers/net/wireless/intersil/hostap/hostap_hw.c:2088:47: note: each undeclared identifier is reported only once for each function it appears in
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'hostap_sta_tx_exc_tasklet':
drivers/net/wireless/intersil/hostap/hostap_hw.c:2293:47: error: 'sta_tx_exc_tasklet' undeclared (first use in this function); did you mean 'hostap_sta_tx_exc_tasklet'?
2293 | local_info_t *local = from_tasklet(local, t, sta_tx_exc_tasklet);
| ^~~~~~~~~~~~~~~~~~
| hostap_sta_tx_exc_tasklet
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'hostap_info_tasklet':
drivers/net/wireless/intersil/hostap/hostap_hw.c:2395:47: error: 'info_tasklet' undeclared (first use in this function)
2395 | local_info_t *local = from_tasklet(local, t, info_tasklet);
| ^~~~~~~~~~~~
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'hostap_bap_tasklet':
drivers/net/wireless/intersil/hostap/hostap_hw.c:2474:47: error: 'bap_tasklet' undeclared (first use in this function)
2474 | local_info_t *local = from_tasklet(local, t, bap_tasklet);
| ^~~~~~~~~~~
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'prism2_init_local_data':
>> drivers/net/wireless/intersil/hostap/hostap_hw.c:3186:48: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
3186 | do { memset((q), 0, sizeof(*(q))); (q)->func = (void(*)(unsigned long))(f); } \
| ^
drivers/net/wireless/intersil/hostap/hostap_hw.c:3188:2: note: in expansion of macro 'HOSTAP_TASKLET_INIT'
3188 | HOSTAP_TASKLET_INIT(&local->bap_tasklet, hostap_bap_tasklet,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intersil/hostap/hostap_hw.c:3186:48: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
3186 | do { memset((q), 0, sizeof(*(q))); (q)->func = (void(*)(unsigned long))(f); } \
| ^
drivers/net/wireless/intersil/hostap/hostap_hw.c:3191:2: note: in expansion of macro 'HOSTAP_TASKLET_INIT'
3191 | HOSTAP_TASKLET_INIT(&local->info_tasklet, hostap_info_tasklet,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intersil/hostap/hostap_hw.c:3186:48: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
3186 | do { memset((q), 0, sizeof(*(q))); (q)->func = (void(*)(unsigned long))(f); } \
| ^
drivers/net/wireless/intersil/hostap/hostap_hw.c:3195:2: note: in expansion of macro 'HOSTAP_TASKLET_INIT'
3195 | HOSTAP_TASKLET_INIT(&local->rx_tasklet,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intersil/hostap/hostap_hw.c:3186:48: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
3186 | do { memset((q), 0, sizeof(*(q))); (q)->func = (void(*)(unsigned long))(f); } \
| ^
drivers/net/wireless/intersil/hostap/hostap_hw.c:3199:2: note: in expansion of macro 'HOSTAP_TASKLET_INIT'
3199 | HOSTAP_TASKLET_INIT(&local->sta_tx_exc_tasklet,
| ^~~~~~~~~~~~~~~~~~~
In file included from drivers/net/wireless/intersil/hostap/hostap_hw.c:50,
from drivers/net/wireless/intersil/hostap/hostap_cs.c:196:
At top level:
drivers/net/wireless/intersil/hostap/hostap.h:11:19: warning: 'freq_list' defined but not used [-Wunused-const-variable=]
11 | static const long freq_list[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442,
| ^~~~~~~~~
cc1: some warnings being treated as errors
# https://github.com/0day-ci/linux/commit/7422b542061c089de37cc0fd975ba08d2...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Allen-Pais/wirless-convert-tasklets-to-use-new-tasklet_setup/20200817-171147
git checkout 7422b542061c089de37cc0fd975ba08d269277ac
vim +3186 drivers/net/wireless/intersil/hostap/hostap_hw.c
3108
3109 local->func = funcs;
3110 local->func->cmd = hfa384x_cmd;
3111 local->func->read_regs = hfa384x_read_regs;
3112 local->func->get_rid = hfa384x_get_rid;
3113 local->func->set_rid = hfa384x_set_rid;
3114 local->func->hw_enable = prism2_hw_enable;
3115 local->func->hw_config = prism2_hw_config;
3116 local->func->hw_reset = prism2_hw_reset;
3117 local->func->hw_shutdown = prism2_hw_shutdown;
3118 local->func->reset_port = prism2_reset_port;
3119 local->func->schedule_reset = prism2_schedule_reset;
3120 #ifdef PRISM2_DOWNLOAD_SUPPORT
3121 local->func->read_aux_proc_ops = &prism2_download_aux_dump_proc_ops;
3122 local->func->download = prism2_download;
3123 #endif /* PRISM2_DOWNLOAD_SUPPORT */
3124 local->func->tx = prism2_tx_80211;
3125 local->func->set_tim = prism2_set_tim;
3126 local->func->need_tx_headroom = 0; /* no need to add txdesc in
3127 * skb->data (FIX: maybe for DMA bus
3128 * mastering? */
3129
3130 local->mtu = mtu;
3131
3132 rwlock_init(&local->iface_lock);
3133 spin_lock_init(&local->txfidlock);
3134 spin_lock_init(&local->cmdlock);
3135 spin_lock_init(&local->baplock);
3136 spin_lock_init(&local->lock);
3137 spin_lock_init(&local->irq_init_lock);
3138 mutex_init(&local->rid_bap_mtx);
3139
3140 if (card_idx < 0 || card_idx >= MAX_PARM_DEVICES)
3141 card_idx = 0;
3142 local->card_idx = card_idx;
3143
3144 len = strlen(essid);
3145 memcpy(local->essid, essid,
3146 len > MAX_SSID_LEN ? MAX_SSID_LEN : len);
3147 local->essid[MAX_SSID_LEN] = '\0';
3148 i = GET_INT_PARM(iw_mode, card_idx);
3149 if ((i >= IW_MODE_ADHOC && i <= IW_MODE_REPEAT) ||
3150 i == IW_MODE_MONITOR) {
3151 local->iw_mode = i;
3152 } else {
3153 printk(KERN_WARNING "prism2: Unknown iw_mode %d; using "
3154 "IW_MODE_MASTER\n", i);
3155 local->iw_mode = IW_MODE_MASTER;
3156 }
3157 local->channel = GET_INT_PARM(channel, card_idx);
3158 local->beacon_int = GET_INT_PARM(beacon_int, card_idx);
3159 local->dtim_period = GET_INT_PARM(dtim_period, card_idx);
3160 local->wds_max_connections = 16;
3161 local->tx_control = HFA384X_TX_CTRL_FLAGS;
3162 local->manual_retry_count = -1;
3163 local->rts_threshold = 2347;
3164 local->fragm_threshold = 2346;
3165 local->rssi_to_dBm = 100; /* default; to be overriden by
3166 * cnfDbmAdjust, if available */
3167 local->auth_algs = PRISM2_AUTH_OPEN | PRISM2_AUTH_SHARED_KEY;
3168 local->sram_type = -1;
3169 local->scan_channel_mask = 0xffff;
3170 local->monitor_type = PRISM2_MONITOR_RADIOTAP;
3171
3172 /* Initialize task queue structures */
3173 INIT_WORK(&local->reset_queue, handle_reset_queue);
3174 INIT_WORK(&local->set_multicast_list_queue,
3175 hostap_set_multicast_list_queue);
3176
3177 INIT_WORK(&local->set_tim_queue, handle_set_tim_queue);
3178 INIT_LIST_HEAD(&local->set_tim_list);
3179 spin_lock_init(&local->set_tim_lock);
3180
3181 INIT_WORK(&local->comms_qual_update, handle_comms_qual_update);
3182
3183 /* Initialize tasklets for handling hardware IRQ related operations
3184 * outside hw IRQ handler */
3185 #define HOSTAP_TASKLET_INIT(q, f, d) \
> 3186 do { memset((q), 0, sizeof(*(q))); (q)->func = (void(*)(unsigned long))(f); } \
3187 while (0)
3188 HOSTAP_TASKLET_INIT(&local->bap_tasklet, hostap_bap_tasklet,
3189 (unsigned long) local);
3190
3191 HOSTAP_TASKLET_INIT(&local->info_tasklet, hostap_info_tasklet,
3192 (unsigned long) local);
3193 hostap_info_init(local);
3194
3195 HOSTAP_TASKLET_INIT(&local->rx_tasklet,
3196 hostap_rx_tasklet, (unsigned long) local);
3197 skb_queue_head_init(&local->rx_list);
3198
3199 HOSTAP_TASKLET_INIT(&local->sta_tx_exc_tasklet,
3200 hostap_sta_tx_exc_tasklet, (unsigned long) local);
3201 skb_queue_head_init(&local->sta_tx_exc_list);
3202
3203 INIT_LIST_HEAD(&local->cmd_queue);
3204 init_waitqueue_head(&local->hostscan_wq);
3205
3206 lib80211_crypt_info_init(&local->crypt_info, dev->name, &local->lock);
3207
3208 timer_setup(&local->passive_scan_timer, hostap_passive_scan, 0);
3209 timer_setup(&local->tick_timer, hostap_tick_timer, 0);
3210 local->tick_timer.expires = jiffies + 2 * HZ;
3211 add_timer(&local->tick_timer);
3212
3213 INIT_LIST_HEAD(&local->bss_list);
3214
3215 hostap_setup_dev(dev, local, HOSTAP_INTERFACE_MASTER);
3216
3217 dev->type = ARPHRD_IEEE80211;
3218 dev->header_ops = &hostap_80211_ops;
3219
3220 rtnl_lock();
3221 ret = dev_alloc_name(dev, "wifi%d");
3222 SET_NETDEV_DEV(dev, sdev);
3223 if (ret >= 0)
3224 ret = register_netdevice(dev);
3225
3226 prism2_set_lockdep_class(dev);
3227 rtnl_unlock();
3228 if (ret < 0) {
3229 printk(KERN_WARNING "%s: register netdevice failed!\n",
3230 dev_info);
3231 goto fail;
3232 }
3233 printk(KERN_INFO "%s: Registered netdevice %s\n", dev_info, dev->name);
3234
3235 hostap_init_data(local);
3236 return dev;
3237
3238 fail:
3239 free_netdev(dev);
3240 return NULL;
3241 }
3242
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
[ti:ti-rt-linux-5.4.y 3080/9316] drivers/pci/endpoint/pci-epf-core.c:133 pci_epf_add_vepf() warn: inconsistent returns 'epf_pf->lock'.
by kernel test robot
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.4.y
head: 1770371bdb34438b6bb83c2a1c90f939c8f9d6ab
commit: 46241066755af938ddbf829f86ae15b2eebaa3f5 [3080/9316] PCI: endpoint: Add support to add virtual function in endpoint core
config: i386-randconfig-m021-20200816 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
smatch warnings:
drivers/pci/endpoint/pci-epf-core.c:133 pci_epf_add_vepf() warn: inconsistent returns 'epf_pf->lock'.
git remote add ti git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
git fetch --no-tags ti ti-rt-linux-5.4.y
git checkout 46241066755af938ddbf829f86ae15b2eebaa3f5
vim +133 drivers/pci/endpoint/pci-epf-core.c
97
98 /**
99 * pci_epf_add_vepf() - associate virtual EP function to physical EP function
100 * @epf_pf: the physical EP function to which the virtual EP function should be
101 * associated
102 * @epf_vf: the virtual EP function to be added
103 *
104 * A physical endpoint function can be associated with multiple virtual
105 * endpoint functions. Invoke pci_epf_add_epf() to add a virtual PCI endpoint
106 * function to a physical PCI endpoint function.
107 */
108 int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf)
109 {
110 u32 vfunc_no;
111
112 if (IS_ERR_OR_NULL(epf_pf) || IS_ERR_OR_NULL(epf_vf))
113 return -EINVAL;
114
115 if (epf_pf->epc || epf_vf->epc || epf_vf->epf_pf)
116 return -EBUSY;
117
118 mutex_lock(&epf_pf->lock);
119 vfunc_no = find_first_zero_bit(&epf_pf->vfunction_num_map,
120 BITS_PER_LONG);
121 if (vfunc_no >= BITS_PER_LONG)
122 return -EINVAL;
123
124 set_bit(vfunc_no, &epf_pf->vfunction_num_map);
125 epf_vf->vfunc_no = vfunc_no;
126
127 epf_vf->epf_pf = epf_pf;
128 epf_vf->is_vf = true;
129
130 list_add_tail(&epf_vf->list, &epf_pf->pci_vepf);
131 mutex_unlock(&epf_pf->lock);
132
> 133 return 0;
134 }
135 EXPORT_SYMBOL_GPL(pci_epf_add_vepf);
136
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH 18/19] crypto: talitos: convert tasklets to use new tasklet_setup() API
by kernel test robot
Hi Allen,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on cryptodev/master]
[also build test ERROR on crypto/master rockchip/for-next v5.9-rc1 next-20200817]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Allen-Pais/crypto-convert-taskle...
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
config: powerpc-mpc83xx_defconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
drivers/crypto/talitos.c: In function 'talitos1_done_4ch':
drivers/crypto/talitos.c:407:33: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
407 | struct talitos_private *priv = from_tasklet(priv, t, \
| ^~~~~~~~~~~~
drivers/crypto/talitos.c:429:1: note: in expansion of macro 'DEF_TALITOS1_DONE'
429 | DEF_TALITOS1_DONE(4ch, TALITOS1_ISR_4CHDONE)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c:408:3: error: 'done_task' undeclared (first use in this function); did you mean 'free_task'?
408 | done_task[0]); \
| ^~~~~~~~~
drivers/crypto/talitos.c:429:1: note: in expansion of macro 'DEF_TALITOS1_DONE'
429 | DEF_TALITOS1_DONE(4ch, TALITOS1_ISR_4CHDONE)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c:408:3: note: each undeclared identifier is reported only once for each function it appears in
408 | done_task[0]); \
| ^~~~~~~~~
drivers/crypto/talitos.c:429:1: note: in expansion of macro 'DEF_TALITOS1_DONE'
429 | DEF_TALITOS1_DONE(4ch, TALITOS1_ISR_4CHDONE)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c: In function 'talitos1_done_ch0':
drivers/crypto/talitos.c:408:3: error: 'done_task' undeclared (first use in this function); did you mean 'free_task'?
408 | done_task[0]); \
| ^~~~~~~~~
drivers/crypto/talitos.c:430:1: note: in expansion of macro 'DEF_TALITOS1_DONE'
430 | DEF_TALITOS1_DONE(ch0, TALITOS1_ISR_CH_0_DONE)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c: In function 'talitos2_done_4ch':
drivers/crypto/talitos.c:436:3: error: 'done_task' undeclared (first use in this function); did you mean 'free_task'?
436 | done_task[tasklet_idx]); \
| ^~~~~~~~~
drivers/crypto/talitos.c:457:1: note: in expansion of macro 'DEF_TALITOS2_DONE'
457 | DEF_TALITOS2_DONE(4ch, TALITOS2_ISR_4CHDONE, 0)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c: At top level:
>> drivers/crypto/talitos.c:458:46: error: macro "DEF_TALITOS2_DONE" requires 3 arguments, but only 2 given
458 | DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE), 0
| ^
drivers/crypto/talitos.c:432: note: macro "DEF_TALITOS2_DONE" defined here
432 | #define DEF_TALITOS2_DONE(name, ch_done_mask, tasklet_idx) \
|
>> drivers/crypto/talitos.c:458:1: warning: data definition has no type or storage class
458 | DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE), 0
| ^~~~~~~~~~~~~~~~~
>> drivers/crypto/talitos.c:458:1: error: type defaults to 'int' in declaration of 'DEF_TALITOS2_DONE' [-Werror=implicit-int]
>> drivers/crypto/talitos.c:458:49: error: expected identifier or '(' before numeric constant
458 | DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE), 0
| ^
drivers/crypto/talitos.c: In function 'talitos2_done_ch1_3':
drivers/crypto/talitos.c:436:3: error: 'done_task' undeclared (first use in this function); did you mean 'free_task'?
436 | done_task[tasklet_idx]); \
| ^~~~~~~~~
drivers/crypto/talitos.c:460:1: note: in expansion of macro 'DEF_TALITOS2_DONE'
460 | DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE, 1)
| ^~~~~~~~~~~~~~~~~
drivers/crypto/talitos.c: In function 'talitos_probe':
drivers/crypto/talitos.c:3390:4: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
3390 | tasklet_setup(&priv->done_task[0], talitos1_done_ch0);
| ^~~~~~~~~~~~~
>> drivers/crypto/talitos.c:3395:39: error: 'talitos2_done_ch0_2' undeclared (first use in this function); did you mean 'talitos2_done_ch1_3'?
3395 | tasklet_setup(&priv->done_task[0], talitos2_done_ch0_2);
| ^~~~~~~~~~~~~~~~~~~
| talitos2_done_ch1_3
>> drivers/crypto/talitos.c:3398:39: error: 'talitos2_done_ch0' undeclared (first use in this function); did you mean 'talitos1_done_ch0'?
3398 | tasklet_setup(&priv->done_task[0], talitos2_done_ch0);
| ^~~~~~~~~~~~~~~~~
| talitos1_done_ch0
cc1: some warnings being treated as errors
# https://github.com/0day-ci/linux/commit/0007edb339f5f9e0882f5503565ec00b1...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Allen-Pais/crypto-convert-tasklets-to-use-new-tasklet_setup/20200817-161307
git checkout 0007edb339f5f9e0882f5503565ec00b1e835c03
vim +/DEF_TALITOS2_DONE +458 drivers/crypto/talitos.c
456
457 DEF_TALITOS2_DONE(4ch, TALITOS2_ISR_4CHDONE, 0)
> 458 DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE), 0
459 DEF_TALITOS2_DONE(ch0_2, TALITOS2_ISR_CH_0_2_DONE, 0)
460 DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE, 1)
461
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH 04/19] crypto: caam: convert tasklets to use new tasklet_setup() API
by kernel test robot
Hi Allen,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on cryptodev/master]
[also build test ERROR on crypto/master rockchip/for-next v5.9-rc1 next-20200817]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Allen-Pais/crypto-convert-taskle...
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/crypto/caam/jr.c: In function 'caam_jr_dequeue':
drivers/crypto/caam/jr.c:207:36: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
207 | struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
| ^~~~~~~~~~~~
drivers/crypto/caam/jr.c:207:57: error: 'irqtask' undeclared (first use in this function); did you mean 'in_task'?
207 | struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
| ^~~~~~~
| in_task
drivers/crypto/caam/jr.c:207:57: note: each undeclared identifier is reported only once for each function it appears in
In file included from drivers/crypto/caam/compat.h:18,
from drivers/crypto/caam/jr.c:13:
>> drivers/crypto/caam/jr.c:232:20: error: 'dev' undeclared (first use in this function); did you mean 'cdev'?
232 | dma_unmap_single(dev,
| ^~~
include/linux/dma-mapping.h:693:61: note: in definition of macro 'dma_unmap_single'
693 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
| ^
drivers/crypto/caam/jr.c: In function 'caam_jr_init':
drivers/crypto/caam/jr.c:485:2: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
485 | tasklet_setup(&jrp->irqtask, caam_jr_dequeue);
| ^~~~~~~~~~~~~
In file included from include/linux/huge_mm.h:8,
from include/linux/mm.h:675,
from include/linux/scatterlist.h:8,
from include/linux/dma-mapping.h:11,
from drivers/crypto/caam/compat.h:18,
from drivers/crypto/caam/jr.c:13:
At top level:
drivers/crypto/caam/intern.h:212:25: warning: 'caam_fops_u64_ro' defined but not used [-Wunused-const-variable=]
212 | DEFINE_SIMPLE_ATTRIBUTE(caam_fops_u64_ro, caam_debugfs_u64_get, NULL, "%llu\n");
| ^~~~~~~~~~~~~~~~
include/linux/fs.h:3519:37: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
3519 | static const struct file_operations __fops = { \
| ^~~~~~
drivers/crypto/caam/intern.h:211:25: warning: 'caam_fops_u32_ro' defined but not used [-Wunused-const-variable=]
211 | DEFINE_SIMPLE_ATTRIBUTE(caam_fops_u32_ro, caam_debugfs_u32_get, NULL, "%llu\n");
| ^~~~~~~~~~~~~~~~
include/linux/fs.h:3519:37: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
3519 | static const struct file_operations __fops = { \
| ^~~~~~
cc1: some warnings being treated as errors
# https://github.com/0day-ci/linux/commit/788de4253aaa43e2340446894f0c6ecd6...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Allen-Pais/crypto-convert-tasklets-to-use-new-tasklet_setup/20200817-161307
git checkout 788de4253aaa43e2340446894f0c6ecd67fa6a49
vim +232 drivers/crypto/caam/jr.c
8e8ec596e6c0144 Kim Phillips 2011-03-13 202
2b163b5bce04546 Horia Geantă 2016-11-09 203 /* Deferred service handler, run as interrupt-fired tasklet */
788de4253aaa43e Allen Pais 2020-08-17 204 static void caam_jr_dequeue(struct tasklet_struct *t)
8e8ec596e6c0144 Kim Phillips 2011-03-13 205 {
8e8ec596e6c0144 Kim Phillips 2011-03-13 206 int hw_idx, sw_idx, i, head, tail;
788de4253aaa43e Allen Pais 2020-08-17 207 struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
8e8ec596e6c0144 Kim Phillips 2011-03-13 208 void (*usercall)(struct device *dev, u32 *desc, u32 status, void *arg);
8e8ec596e6c0144 Kim Phillips 2011-03-13 209 u32 *userdesc, userstatus;
8e8ec596e6c0144 Kim Phillips 2011-03-13 210 void *userarg;
16c4dd83a1b2a23 Vakul Garg 2019-03-05 211 u32 outring_used = 0;
8e8ec596e6c0144 Kim Phillips 2011-03-13 212
16c4dd83a1b2a23 Vakul Garg 2019-03-05 213 while (outring_used ||
16c4dd83a1b2a23 Vakul Garg 2019-03-05 214 (outring_used = rd_reg32(&jrp->rregs->outring_used))) {
8e8ec596e6c0144 Kim Phillips 2011-03-13 215
6aa7de059173a98 Mark Rutland 2017-10-23 216 head = READ_ONCE(jrp->head);
8e8ec596e6c0144 Kim Phillips 2011-03-13 217
a8ea07c21d40cf1 Kim Phillips 2012-06-22 218 sw_idx = tail = jrp->tail;
8e8ec596e6c0144 Kim Phillips 2011-03-13 219 hw_idx = jrp->out_ring_read_index;
a8ea07c21d40cf1 Kim Phillips 2012-06-22 220
8e8ec596e6c0144 Kim Phillips 2011-03-13 221 for (i = 0; CIRC_CNT(head, tail + i, JOBR_DEPTH) >= 1; i++) {
8e8ec596e6c0144 Kim Phillips 2011-03-13 222 sw_idx = (tail + i) & (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips 2011-03-13 223
6c5f898f12a3d65 Andrey Smirnov 2019-08-20 224 if (jr_outentry_desc(jrp->outring, hw_idx) ==
261ea058f016bc0 Horia Geantă 2016-05-19 225 caam_dma_to_cpu(jrp->entinfo[sw_idx].desc_addr_dma))
8e8ec596e6c0144 Kim Phillips 2011-03-13 226 break; /* found */
8e8ec596e6c0144 Kim Phillips 2011-03-13 227 }
8e8ec596e6c0144 Kim Phillips 2011-03-13 228 /* we should never fail to find a matching descriptor */
8e8ec596e6c0144 Kim Phillips 2011-03-13 229 BUG_ON(CIRC_CNT(head, tail + i, JOBR_DEPTH) <= 0);
8e8ec596e6c0144 Kim Phillips 2011-03-13 230
8e8ec596e6c0144 Kim Phillips 2011-03-13 231 /* Unmap just-run descriptor so we can post-process */
cc98963dbaaea93 Horia Geantă 2018-08-06 @232 dma_unmap_single(dev,
6c5f898f12a3d65 Andrey Smirnov 2019-08-20 233 caam_dma_to_cpu(jr_outentry_desc(jrp->outring,
6c5f898f12a3d65 Andrey Smirnov 2019-08-20 234 hw_idx)),
8e8ec596e6c0144 Kim Phillips 2011-03-13 235 jrp->entinfo[sw_idx].desc_size,
8e8ec596e6c0144 Kim Phillips 2011-03-13 236 DMA_TO_DEVICE);
8e8ec596e6c0144 Kim Phillips 2011-03-13 237
8e8ec596e6c0144 Kim Phillips 2011-03-13 238 /* mark completed, avoid matching on a recycled desc addr */
8e8ec596e6c0144 Kim Phillips 2011-03-13 239 jrp->entinfo[sw_idx].desc_addr_dma = 0;
8e8ec596e6c0144 Kim Phillips 2011-03-13 240
a118dfa0dbfcc8e Vakul Garg 2019-03-22 241 /* Stash callback params */
8e8ec596e6c0144 Kim Phillips 2011-03-13 242 usercall = jrp->entinfo[sw_idx].callbk;
8e8ec596e6c0144 Kim Phillips 2011-03-13 243 userarg = jrp->entinfo[sw_idx].cbkarg;
8e8ec596e6c0144 Kim Phillips 2011-03-13 244 userdesc = jrp->entinfo[sw_idx].desc_addr_virt;
6c5f898f12a3d65 Andrey Smirnov 2019-08-20 245 userstatus = caam32_to_cpu(jr_outentry_jrstatus(jrp->outring,
6c5f898f12a3d65 Andrey Smirnov 2019-08-20 246 hw_idx));
8e8ec596e6c0144 Kim Phillips 2011-03-13 247
e7472422392461f Victoria Milhoan 2015-08-05 248 /*
e7472422392461f Victoria Milhoan 2015-08-05 249 * Make sure all information from the job has been obtained
e7472422392461f Victoria Milhoan 2015-08-05 250 * before telling CAAM that the job has been removed from the
e7472422392461f Victoria Milhoan 2015-08-05 251 * output ring.
e7472422392461f Victoria Milhoan 2015-08-05 252 */
e7472422392461f Victoria Milhoan 2015-08-05 253 mb();
e7472422392461f Victoria Milhoan 2015-08-05 254
14a8e29cc201239 Kim Phillips 2012-06-22 255 /* set done */
cbc22b062106993 Herbert Xu 2019-05-09 256 wr_reg32(&jrp->rregs->outring_rmvd, 1);
8e8ec596e6c0144 Kim Phillips 2011-03-13 257
8e8ec596e6c0144 Kim Phillips 2011-03-13 258 jrp->out_ring_read_index = (jrp->out_ring_read_index + 1) &
8e8ec596e6c0144 Kim Phillips 2011-03-13 259 (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips 2011-03-13 260
8e8ec596e6c0144 Kim Phillips 2011-03-13 261 /*
8e8ec596e6c0144 Kim Phillips 2011-03-13 262 * if this job completed out-of-order, do not increment
8e8ec596e6c0144 Kim Phillips 2011-03-13 263 * the tail. Otherwise, increment tail by 1 plus the
8e8ec596e6c0144 Kim Phillips 2011-03-13 264 * number of subsequent jobs already completed out-of-order
8e8ec596e6c0144 Kim Phillips 2011-03-13 265 */
8e8ec596e6c0144 Kim Phillips 2011-03-13 266 if (sw_idx == tail) {
8e8ec596e6c0144 Kim Phillips 2011-03-13 267 do {
8e8ec596e6c0144 Kim Phillips 2011-03-13 268 tail = (tail + 1) & (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips 2011-03-13 269 } while (CIRC_CNT(head, tail, JOBR_DEPTH) >= 1 &&
8e8ec596e6c0144 Kim Phillips 2011-03-13 270 jrp->entinfo[tail].desc_addr_dma == 0);
8e8ec596e6c0144 Kim Phillips 2011-03-13 271
8e8ec596e6c0144 Kim Phillips 2011-03-13 272 jrp->tail = tail;
8e8ec596e6c0144 Kim Phillips 2011-03-13 273 }
8e8ec596e6c0144 Kim Phillips 2011-03-13 274
8e8ec596e6c0144 Kim Phillips 2011-03-13 275 /* Finally, execute user's callback */
8e8ec596e6c0144 Kim Phillips 2011-03-13 276 usercall(dev, userdesc, userstatus, userarg);
16c4dd83a1b2a23 Vakul Garg 2019-03-05 277 outring_used--;
8e8ec596e6c0144 Kim Phillips 2011-03-13 278 }
8e8ec596e6c0144 Kim Phillips 2011-03-13 279
8e8ec596e6c0144 Kim Phillips 2011-03-13 280 /* reenable / unmask IRQs */
261ea058f016bc0 Horia Geantă 2016-05-19 281 clrsetbits_32(&jrp->rregs->rconfig_lo, JRCFG_IMSK, 0);
8e8ec596e6c0144 Kim Phillips 2011-03-13 282 }
8e8ec596e6c0144 Kim Phillips 2011-03-13 283
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH 03/35] dma: at_xdmac: convert tasklets to use new tasklet_setup() API
by kernel test robot
Hi Allen,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on vkoul-dmaengine/next]
[also build test ERROR on shawnguo/for-next v5.9-rc1 next-20200817]
[cannot apply to xlnx/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Allen-Pais/dma-convert-tasklets-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/dma/at_xdmac.c: In function 'at_xdmac_tasklet':
>> drivers/dma/at_xdmac.c:1618:33: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
1618 | struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
| ^~~~~~~~~~~~
>> drivers/dma/at_xdmac.c:1618:54: error: 't' undeclared (first use in this function); did you mean 'tm'?
1618 | struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
| ^
| tm
drivers/dma/at_xdmac.c:1618:54: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/dma/at_xdmac.c:1618:57: error: 'tasklet' undeclared (first use in this function)
1618 | struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
| ^~~~~~~
drivers/dma/at_xdmac.c: In function 'at_xdmac_probe':
>> drivers/dma/at_xdmac.c:2066:3: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
2066 | tasklet_setup(&atchan->tasklet, at_xdmac_tasklet);
| ^~~~~~~~~~~~~
cc1: some warnings being treated as errors
# https://github.com/0day-ci/linux/commit/fecf141cda7ac9d85728b94ac123ecb2a...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Allen-Pais/dma-convert-tasklets-to-use-new-tasklet_setup/20200817-162529
git checkout fecf141cda7ac9d85728b94ac123ecb2a4ff1d7c
vim +/from_tasklet +1618 drivers/dma/at_xdmac.c
1615
1616 static void at_xdmac_tasklet(unsigned long data)
1617 {
> 1618 struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
1619 struct at_xdmac_desc *desc;
1620 u32 error_mask;
1621
1622 dev_dbg(chan2dev(&atchan->chan), "%s: status=0x%08x\n",
1623 __func__, atchan->irq_status);
1624
1625 error_mask = AT_XDMAC_CIS_RBEIS
1626 | AT_XDMAC_CIS_WBEIS
1627 | AT_XDMAC_CIS_ROIS;
1628
1629 if (at_xdmac_chan_is_cyclic(atchan)) {
1630 at_xdmac_handle_cyclic(atchan);
1631 } else if ((atchan->irq_status & AT_XDMAC_CIS_LIS)
1632 || (atchan->irq_status & error_mask)) {
1633 struct dma_async_tx_descriptor *txd;
1634
1635 if (atchan->irq_status & error_mask)
1636 at_xdmac_handle_error(atchan);
1637
1638 spin_lock_irq(&atchan->lock);
1639 desc = list_first_entry(&atchan->xfers_list,
1640 struct at_xdmac_desc,
1641 xfer_node);
1642 dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc);
1643 if (!desc->active_xfer) {
1644 dev_err(chan2dev(&atchan->chan), "Xfer not active: exiting");
1645 spin_unlock_irq(&atchan->lock);
1646 return;
1647 }
1648
1649 txd = &desc->tx_dma_desc;
1650
1651 at_xdmac_remove_xfer(atchan, desc);
1652 spin_unlock_irq(&atchan->lock);
1653
1654 dma_cookie_complete(txd);
1655 if (txd->flags & DMA_PREP_INTERRUPT)
1656 dmaengine_desc_get_callback_invoke(txd, NULL);
1657
1658 dma_run_dependencies(txd);
1659
1660 spin_lock_irq(&atchan->lock);
1661 at_xdmac_advance_work(atchan);
1662 spin_unlock_irq(&atchan->lock);
1663 }
1664 }
1665
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH] PCI: designware-ep: Fix the Header Type check
by kernel test robot
Hi Zhiqiang,
I love your patch! Perhaps something to improve:
[auto build test WARNING on pci/next]
[also build test WARNING on linux/master linus/master v5.9-rc1 next-20200817]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Zhiqiang-Hou/PCI-designware-ep-F...
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: x86_64-randconfig-r013-20200817 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project de71b46a519db014ce906a39f8a0e1b235ef1568)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/pci/controller/dwc/pcie-designware-ep.c:509:15: warning: & has lower precedence than !=; != will be evaluated first [-Wparentheses]
if (hdr_type & 0x7f != PCI_HEADER_TYPE_NORMAL) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pcie-designware-ep.c:509:15: note: place parentheses around the '!=' expression to silence this warning
if (hdr_type & 0x7f != PCI_HEADER_TYPE_NORMAL) {
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pcie-designware-ep.c:509:15: note: place parentheses around the & expression to evaluate it first
if (hdr_type & 0x7f != PCI_HEADER_TYPE_NORMAL) {
^
( )
1 warning generated.
# https://github.com/0day-ci/linux/commit/819b7848e81d962a90377b2988abf5862...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Zhiqiang-Hou/PCI-designware-ep-Fix-the-Header-Type-check/20200814-161623
git checkout 819b7848e81d962a90377b2988abf5862ab35d01
vim +509 drivers/pci/controller/dwc/pcie-designware-ep.c
498
499 int dw_pcie_ep_init_complete(struct dw_pcie_ep *ep)
500 {
501 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
502 unsigned int offset;
503 unsigned int nbars;
504 u8 hdr_type;
505 u32 reg;
506 int i;
507
508 hdr_type = dw_pcie_readb_dbi(pci, PCI_HEADER_TYPE);
> 509 if (hdr_type & 0x7f != PCI_HEADER_TYPE_NORMAL) {
510 dev_err(pci->dev,
511 "PCIe controller is not set to EP mode (hdr_type:0x%x)!\n",
512 hdr_type);
513 return -EIO;
514 }
515
516 ep->msi_cap = dw_pcie_find_capability(pci, PCI_CAP_ID_MSI);
517
518 ep->msix_cap = dw_pcie_find_capability(pci, PCI_CAP_ID_MSIX);
519
520 offset = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_REBAR);
521 if (offset) {
522 reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
523 nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >>
524 PCI_REBAR_CTRL_NBAR_SHIFT;
525
526 dw_pcie_dbi_ro_wr_en(pci);
527 for (i = 0; i < nbars; i++, offset += PCI_REBAR_CTRL)
528 dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, 0x0);
529 dw_pcie_dbi_ro_wr_dis(pci);
530 }
531
532 dw_pcie_setup(pci);
533
534 return 0;
535 }
536 EXPORT_SYMBOL_GPL(dw_pcie_ep_init_complete);
537
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
[linux-review:UPDATE-20200817-172030/Allen-Pais/arch-um-convert-tasklets-to-use-new-tasklet_setup-API/20200817-171829 1/1] drivers/gpu/drm/i915/gt/intel_lrc.c:3897:28: error: cast between incompatible function types from 'void tasklet_struct to 'void unsigned int)'
by kernel test robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20200817-172030/Allen-Pai...
head: 1a2cc480132246aad54202401d7ef4396db47544
commit: 1a2cc480132246aad54202401d7ef4396db47544 [1/1] drm: i915: convert tasklets to use new tasklet_setup() API
config: i386-randconfig-a003-20200817 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
git checkout 1a2cc480132246aad54202401d7ef4396db47544
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'execlists_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:2878:42: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
2878 | struct intel_engine_cs * const engine = from_tasklet(engine, t,
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/gt/intel_lrc.c:2879:12: error: 'execlists' undeclared (first use in this function); did you mean 'execlists_hold'?
2879 | execlists.tasklet);
| ^~~~~~~~~
| execlists_hold
drivers/gpu/drm/i915/gt/intel_lrc.c:2879:12: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/gt/intel_lrc.c: In function '__submit_queue_imm':
drivers/gpu/drm/i915/gt/intel_lrc.c:2938:30: error: comparison of distinct pointer types lacks a cast [-Werror]
2938 | if (execlists->tasklet.func == execlists_submission_tasklet)
| ^~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'nop_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:3814:12: error: 'execlists' undeclared (first use in this function); did you mean 'execlists_hold'?
3814 | execlists.tasklet);
| ^~~~~~~~~
| execlists_hold
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'execlists_reset_cancel':
>> drivers/gpu/drm/i915/gt/intel_lrc.c:3897:28: error: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Werror=cast-function-type]
3897 | execlists->tasklet.func = (void (*)(unsigned long))
| ^
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_set_default_submission':
drivers/gpu/drm/i915/gt/intel_lrc.c:4395:35: error: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Werror=cast-function-type]
4395 | engine->execlists.tasklet.func = (void (*)(unsigned long))
| ^
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_submission_setup':
drivers/gpu/drm/i915/gt/intel_lrc.c:4520:2: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
4520 | tasklet_setup(&engine->execlists.tasklet, execlists_submission_tasklet);
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'virtual_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:4975:10: error: 'base' undeclared (first use in this function)
4975 | base.execlists.tasklet);
| ^~~~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_create_virtual':
drivers/gpu/drm/i915/gt/intel_lrc.c:5209:42: error: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Werror=cast-function-type]
5209 | if (sibling->execlists.tasklet.func != (void (*)(unsigned long))
| ^
cc1: all warnings being treated as errors
--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c: In function 'guc_submission_tasklet':
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:349:42: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
349 | struct intel_engine_cs * const engine = from_tasklet(engine, t,
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:350:13: error: 'execlists' undeclared (first use in this function)
350 | execlists.tasklet);
| ^~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:350:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c: In function 'guc_set_default_submission':
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:596:5: error: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Werror=cast-function-type]
596 | (void (*)(unsigned long))guc_submission_tasklet;
| ^
cc1: all warnings being treated as errors
# https://github.com/0day-ci/linux/commit/1a2cc480132246aad54202401d7ef4396...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20200817-172030/Allen-Pais/arch-um-convert-tasklets-to-use-new-tasklet_setup-API/20200817-171829
git checkout 1a2cc480132246aad54202401d7ef4396db47544
vim +3897 drivers/gpu/drm/i915/gt/intel_lrc.c
3819
3820 static void execlists_reset_cancel(struct intel_engine_cs *engine)
3821 {
3822 struct intel_engine_execlists * const execlists = &engine->execlists;
3823 struct i915_request *rq, *rn;
3824 struct rb_node *rb;
3825 unsigned long flags;
3826
3827 ENGINE_TRACE(engine, "\n");
3828
3829 /*
3830 * Before we call engine->cancel_requests(), we should have exclusive
3831 * access to the submission state. This is arranged for us by the
3832 * caller disabling the interrupt generation, the tasklet and other
3833 * threads that may then access the same state, giving us a free hand
3834 * to reset state. However, we still need to let lockdep be aware that
3835 * we know this state may be accessed in hardirq context, so we
3836 * disable the irq around this manipulation and we want to keep
3837 * the spinlock focused on its duties and not accidentally conflate
3838 * coverage to the submission's irq state. (Similarly, although we
3839 * shouldn't need to disable irq around the manipulation of the
3840 * submission's irq state, we also wish to remind ourselves that
3841 * it is irq state.)
3842 */
3843 spin_lock_irqsave(&engine->active.lock, flags);
3844
3845 __execlists_reset(engine, true);
3846
3847 /* Mark all executing requests as skipped. */
3848 list_for_each_entry(rq, &engine->active.requests, sched.link)
3849 mark_eio(rq);
3850
3851 /* Flush the queued requests to the timeline list (for retiring). */
3852 while ((rb = rb_first_cached(&execlists->queue))) {
3853 struct i915_priolist *p = to_priolist(rb);
3854 int i;
3855
3856 priolist_for_each_request_consume(rq, rn, p, i) {
3857 mark_eio(rq);
3858 __i915_request_submit(rq);
3859 }
3860
3861 rb_erase_cached(&p->node, &execlists->queue);
3862 i915_priolist_free(p);
3863 }
3864
3865 /* On-hold requests will be flushed to timeline upon their release */
3866 list_for_each_entry(rq, &engine->active.hold, sched.link)
3867 mark_eio(rq);
3868
3869 /* Cancel all attached virtual engines */
3870 while ((rb = rb_first_cached(&execlists->virtual))) {
3871 struct virtual_engine *ve =
3872 rb_entry(rb, typeof(*ve), nodes[engine->id].rb);
3873
3874 rb_erase_cached(rb, &execlists->virtual);
3875 RB_CLEAR_NODE(rb);
3876
3877 spin_lock(&ve->base.active.lock);
3878 rq = fetch_and_zero(&ve->request);
3879 if (rq) {
3880 mark_eio(rq);
3881
3882 rq->engine = engine;
3883 __i915_request_submit(rq);
3884 i915_request_put(rq);
3885
3886 ve->base.execlists.queue_priority_hint = INT_MIN;
3887 }
3888 spin_unlock(&ve->base.active.lock);
3889 }
3890
3891 /* Remaining _unready_ requests will be nop'ed when submitted */
3892
3893 execlists->queue_priority_hint = INT_MIN;
3894 execlists->queue = RB_ROOT_CACHED;
3895
3896 GEM_BUG_ON(__tasklet_is_enabled(&execlists->tasklet));
> 3897 execlists->tasklet.func = (void (*)(unsigned long))
3898 nop_submission_tasklet;
3899
3900 spin_unlock_irqrestore(&engine->active.lock, flags);
3901 }
3902
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
[linux-review:UPDATE-20200817-172030/Allen-Pais/arch-um-convert-tasklets-to-use-new-tasklet_setup-API/20200817-171829 1/1] drivers/gpu/drm/i915/gt/intel_lrc.c:3897:28: warning: cast between incompatible function types from 'void tasklet_struct to 'void unsigned int)'
by kernel test robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20200817-172030/Allen-Pai...
head: 1a2cc480132246aad54202401d7ef4396db47544
commit: 1a2cc480132246aad54202401d7ef4396db47544 [1/1] drm: i915: convert tasklets to use new tasklet_setup() API
config: i386-randconfig-a005-20200817 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
git checkout 1a2cc480132246aad54202401d7ef4396db47544
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'execlists_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:2878:42: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
2878 | struct intel_engine_cs * const engine = from_tasklet(engine, t,
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/gt/intel_lrc.c:2879:12: error: 'execlists' undeclared (first use in this function); did you mean 'execlists_hold'?
2879 | execlists.tasklet);
| ^~~~~~~~~
| execlists_hold
drivers/gpu/drm/i915/gt/intel_lrc.c:2879:12: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/gt/intel_lrc.c: In function '__submit_queue_imm':
drivers/gpu/drm/i915/gt/intel_lrc.c:2938:30: warning: comparison of distinct pointer types lacks a cast
2938 | if (execlists->tasklet.func == execlists_submission_tasklet)
| ^~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'nop_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:3814:12: error: 'execlists' undeclared (first use in this function); did you mean 'execlists_hold'?
3814 | execlists.tasklet);
| ^~~~~~~~~
| execlists_hold
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'execlists_reset_cancel':
>> drivers/gpu/drm/i915/gt/intel_lrc.c:3897:28: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
3897 | execlists->tasklet.func = (void (*)(unsigned long))
| ^
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_set_default_submission':
drivers/gpu/drm/i915/gt/intel_lrc.c:4395:35: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
4395 | engine->execlists.tasklet.func = (void (*)(unsigned long))
| ^
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_submission_setup':
drivers/gpu/drm/i915/gt/intel_lrc.c:4520:2: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
4520 | tasklet_setup(&engine->execlists.tasklet, execlists_submission_tasklet);
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'virtual_submission_tasklet':
drivers/gpu/drm/i915/gt/intel_lrc.c:4975:10: error: 'base' undeclared (first use in this function)
4975 | base.execlists.tasklet);
| ^~~~
drivers/gpu/drm/i915/gt/intel_lrc.c: In function 'intel_execlists_create_virtual':
drivers/gpu/drm/i915/gt/intel_lrc.c:5209:42: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
5209 | if (sibling->execlists.tasklet.func != (void (*)(unsigned long))
| ^
cc1: some warnings being treated as errors
--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c: In function 'guc_submission_tasklet':
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:349:42: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
349 | struct intel_engine_cs * const engine = from_tasklet(engine, t,
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:350:13: error: 'execlists' undeclared (first use in this function)
350 | execlists.tasklet);
| ^~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:350:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c: In function 'guc_set_default_submission':
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:596:5: warning: cast between incompatible function types from 'void (*)(struct tasklet_struct *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
596 | (void (*)(unsigned long))guc_submission_tasklet;
| ^
cc1: some warnings being treated as errors
# https://github.com/0day-ci/linux/commit/1a2cc480132246aad54202401d7ef4396...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20200817-172030/Allen-Pais/arch-um-convert-tasklets-to-use-new-tasklet_setup-API/20200817-171829
git checkout 1a2cc480132246aad54202401d7ef4396db47544
vim +3897 drivers/gpu/drm/i915/gt/intel_lrc.c
3819
3820 static void execlists_reset_cancel(struct intel_engine_cs *engine)
3821 {
3822 struct intel_engine_execlists * const execlists = &engine->execlists;
3823 struct i915_request *rq, *rn;
3824 struct rb_node *rb;
3825 unsigned long flags;
3826
3827 ENGINE_TRACE(engine, "\n");
3828
3829 /*
3830 * Before we call engine->cancel_requests(), we should have exclusive
3831 * access to the submission state. This is arranged for us by the
3832 * caller disabling the interrupt generation, the tasklet and other
3833 * threads that may then access the same state, giving us a free hand
3834 * to reset state. However, we still need to let lockdep be aware that
3835 * we know this state may be accessed in hardirq context, so we
3836 * disable the irq around this manipulation and we want to keep
3837 * the spinlock focused on its duties and not accidentally conflate
3838 * coverage to the submission's irq state. (Similarly, although we
3839 * shouldn't need to disable irq around the manipulation of the
3840 * submission's irq state, we also wish to remind ourselves that
3841 * it is irq state.)
3842 */
3843 spin_lock_irqsave(&engine->active.lock, flags);
3844
3845 __execlists_reset(engine, true);
3846
3847 /* Mark all executing requests as skipped. */
3848 list_for_each_entry(rq, &engine->active.requests, sched.link)
3849 mark_eio(rq);
3850
3851 /* Flush the queued requests to the timeline list (for retiring). */
3852 while ((rb = rb_first_cached(&execlists->queue))) {
3853 struct i915_priolist *p = to_priolist(rb);
3854 int i;
3855
3856 priolist_for_each_request_consume(rq, rn, p, i) {
3857 mark_eio(rq);
3858 __i915_request_submit(rq);
3859 }
3860
3861 rb_erase_cached(&p->node, &execlists->queue);
3862 i915_priolist_free(p);
3863 }
3864
3865 /* On-hold requests will be flushed to timeline upon their release */
3866 list_for_each_entry(rq, &engine->active.hold, sched.link)
3867 mark_eio(rq);
3868
3869 /* Cancel all attached virtual engines */
3870 while ((rb = rb_first_cached(&execlists->virtual))) {
3871 struct virtual_engine *ve =
3872 rb_entry(rb, typeof(*ve), nodes[engine->id].rb);
3873
3874 rb_erase_cached(rb, &execlists->virtual);
3875 RB_CLEAR_NODE(rb);
3876
3877 spin_lock(&ve->base.active.lock);
3878 rq = fetch_and_zero(&ve->request);
3879 if (rq) {
3880 mark_eio(rq);
3881
3882 rq->engine = engine;
3883 __i915_request_submit(rq);
3884 i915_request_put(rq);
3885
3886 ve->base.execlists.queue_priority_hint = INT_MIN;
3887 }
3888 spin_unlock(&ve->base.active.lock);
3889 }
3890
3891 /* Remaining _unready_ requests will be nop'ed when submitted */
3892
3893 execlists->queue_priority_hint = INT_MIN;
3894 execlists->queue = RB_ROOT_CACHED;
3895
3896 GEM_BUG_ON(__tasklet_is_enabled(&execlists->tasklet));
> 3897 execlists->tasklet.func = (void (*)(unsigned long))
3898 nop_submission_tasklet;
3899
3900 spin_unlock_irqrestore(&engine->active.lock, flags);
3901 }
3902
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [RFC PATCH 5/5] clocksource: arm_arch_timer: Use pvtime LPT
by kernel test robot
Hi Keqian,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on tip/timers/core]
[also build test ERROR on arm64/for-next/core v5.9-rc1 next-20200817]
[cannot apply to kvmarm/next kvm/linux-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Keqian-Zhu/KVM-arm64-Add-pvtime-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 0099808553ad4f9c04ad7afd966f6d7f470f247f
config: arm64-randconfig-r005-20200817 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/byteorder/little_endian.h:5,
from arch/arm64/include/uapi/asm/byteorder.h:23,
from include/asm-generic/bitops/le.h:6,
from arch/arm64/include/asm/bitops.h:29,
from include/linux/bitops.h:29,
from include/linux/of.h:15,
from include/linux/irqdomain.h:35,
from include/linux/acpi.h:13,
from include/acpi/apei.h:9,
from include/acpi/ghes.h:5,
from include/linux/arm_sdei.h:8,
from arch/arm64/kernel/asm-offsets.c:10:
arch/arm64/include/asm/arch_timer.h: In function 'native_to_pv_cycles':
>> arch/arm64/include/asm/arch_timer.h:135:39: error: dereferencing pointer to incomplete type 'struct pvclock_vm_lpt_time'
135 | u64 scale_mult = le64_to_cpu(lpt_info->scale_mult);
| ^~
include/uapi/linux/byteorder/little_endian.h:32:51: note: in definition of macro '__le64_to_cpu'
32 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
| ^
arch/arm64/include/asm/arch_timer.h:135:19: note: in expansion of macro 'le64_to_cpu'
135 | u64 scale_mult = le64_to_cpu(lpt_info->scale_mult);
| ^~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:114: arch/arm64/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1185: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:185: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
# https://github.com/0day-ci/linux/commit/47f3527190b7f8b53c7c48c278fc7aece...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Keqian-Zhu/KVM-arm64-Add-pvtime-LPT-support/20200817-164436
git checkout 47f3527190b7f8b53c7c48c278fc7aecef3ef812
vim +135 arch/arm64/include/asm/arch_timer.h
132
133 static inline u64 native_to_pv_cycles(u64 cnt)
134 {
> 135 u64 scale_mult = le64_to_cpu(lpt_info->scale_mult);
136 u32 fracbits = le32_to_cpu(lpt_info->fracbits);
137
138 return mul_u64_u64_shr(scale_mult, cnt, fracbits);
139 }
140
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month