[hare-scsi-devel:eh-rework.v2 38/51] drivers/scsi/fnic/fnic_scsi.c:2209:21: warning: variable 'fnic_stats' set but not used
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git eh-rework.v2
head: 7603e2e1f37e470064b8c865b5d6470137baa79b
commit: 77600d1b52ae78c329d2df9921dd4c42304ecf87 [38/51] fnic: use dedicated device reset command
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commi...
git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
git fetch --no-tags hare-scsi-devel eh-rework.v2
git checkout 77600d1b52ae78c329d2df9921dd4c42304ecf87
# 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/scsi/fnic/fnic_scsi.c: In function 'fnic_device_reset':
>> drivers/scsi/fnic/fnic_scsi.c:2209:21: warning: variable 'fnic_stats' set but not used [-Wunused-but-set-variable]
2209 | struct fnic_stats *fnic_stats;
| ^~~~~~~~~~
vim +/fnic_stats +2209 drivers/scsi/fnic/fnic_scsi.c
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2190
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2191 /*
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2192 * SCSI Eh thread issues a Lun Reset when one or more commands on a LUN
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2193 * fail to get aborted. It calls driver's eh_device_reset with a SCSI command
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2194 * on the LUN.
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2195 */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2196 int fnic_device_reset(struct scsi_cmnd *sc)
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2197 {
77600d1b52ae78 Hannes Reinecke 2021-08-16 2198 struct scsi_device *sdev = sc->device;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2199 struct fc_lport *lp;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2200 struct fnic *fnic;
4d7007b49d523d Hiral Patel 2013-02-12 2201 struct fnic_io_req *io_req = NULL;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2202 struct fc_rport *rport;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2203 int status;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2204 int ret = FAILED;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2205 spinlock_t *io_lock;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2206 unsigned long flags;
14eb5d905d16ec Hiral Patel 2013-02-12 2207 unsigned long start_time = 0;
03298552cba38f Hiral Patel 2013-02-12 2208 struct scsi_lun fc_lun;
67125b0287a9e6 Hiral Patel 2013-09-12 @2209 struct fnic_stats *fnic_stats;
67125b0287a9e6 Hiral Patel 2013-09-12 2210 struct reset_stats *reset_stats;
4d7007b49d523d Hiral Patel 2013-02-12 2211 int tag = 0;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2212 DECLARE_COMPLETION_ONSTACK(tm_done);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2213
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2214 /* Wait for rport to unblock */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2215 rport = starget_to_rport(scsi_target(sdev));
77600d1b52ae78 Hannes Reinecke 2021-08-16 2216 ret = fc_block_rport(rport);
77600d1b52ae78 Hannes Reinecke 2021-08-16 2217 if (ret)
77600d1b52ae78 Hannes Reinecke 2021-08-16 2218 return ret;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2219
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2220 /* Get local-port, check ready and link up */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2221 lp = shost_priv(sdev->host);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2222
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2223 fnic = lport_priv(lp);
67125b0287a9e6 Hiral Patel 2013-09-12 2224 fnic_stats = &fnic->fnic_stats;
67125b0287a9e6 Hiral Patel 2013-09-12 2225 reset_stats = &fnic->fnic_stats.reset_stats;
67125b0287a9e6 Hiral Patel 2013-09-12 2226
67125b0287a9e6 Hiral Patel 2013-09-12 2227 atomic64_inc(&reset_stats->device_resets);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2228
0db6f4353d68c0 Roel Kluin 2010-06-11 2229 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
77600d1b52ae78 Hannes Reinecke 2021-08-16 2230 "Device reset called FCID 0x%x, LUN 0x%llx\n",
77600d1b52ae78 Hannes Reinecke 2021-08-16 2231 rport->port_id, sdev->lun);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2232
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2233 if (lp->state != LPORT_ST_READY || !(lp->link_up))
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2234 goto fnic_device_reset_end;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2235
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2236 /* Check if remote port up */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2237 if (rport->port_state != FC_PORTSTATE_ONLINE &&
77600d1b52ae78 Hannes Reinecke 2021-08-16 2238 rport->port_state != FC_PORTSTATE_MARGINAL) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2239 goto fnic_device_reset_end;
67125b0287a9e6 Hiral Patel 2013-09-12 2240 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2241
14eb5d905d16ec Hiral Patel 2013-02-12 2242 CMD_FLAGS(sc) = FNIC_DEVICE_RESET;
77600d1b52ae78 Hannes Reinecke 2021-08-16 2243 /* The last tag is reserved for device reset */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2244 sc = scsi_host_find_tag(sdev->host, fnic->fnic_max_tag_id - 1);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2245 io_lock = fnic_io_lock_hash(fnic, sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2246 spin_lock_irqsave(io_lock, flags);
77600d1b52ae78 Hannes Reinecke 2021-08-16 2247 if (CMD_SP(sc)) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2248 /*
77600d1b52ae78 Hannes Reinecke 2021-08-16 2249 * Reset tag busy
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2250 */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2251 spin_unlock_irqrestore(io_lock, flags);
77600d1b52ae78 Hannes Reinecke 2021-08-16 2252 goto fnic_device_reset_end;
77600d1b52ae78 Hannes Reinecke 2021-08-16 2253 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2254 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2255 if (!io_req) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2256 spin_unlock_irqrestore(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2257 goto fnic_device_reset_end;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2258 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2259 memset(io_req, 0, sizeof(*io_req));
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2260 io_req->port_id = rport->port_id;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2261 CMD_SP(sc) = (char *)io_req;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2262 io_req->dr_done = &tm_done;
77600d1b52ae78 Hannes Reinecke 2021-08-16 2263 CMD_FLAGS(sc) = FNIC_DEVICE_RESET;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2264 CMD_STATE(sc) = FNIC_IOREQ_CMD_PENDING;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2265 CMD_LR_STATUS(sc) = FCPIO_INVALID_CODE;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2266 spin_unlock_irqrestore(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2267
03298552cba38f Hiral Patel 2013-02-12 2268 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "TAG %x\n", tag);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2269
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2270 /*
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2271 * issue the device reset, if enqueue failed, clean up the ioreq
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2272 * and break assoc with scsi cmd
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2273 */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2274 if (fnic_queue_dr_io_req(fnic, sc, io_req)) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2275 spin_lock_irqsave(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2276 io_req = (struct fnic_io_req *)CMD_SP(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2277 if (io_req)
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2278 io_req->dr_done = NULL;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2279 goto fnic_device_reset_clean;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2280 }
03298552cba38f Hiral Patel 2013-02-12 2281 spin_lock_irqsave(io_lock, flags);
14eb5d905d16ec Hiral Patel 2013-02-12 2282 CMD_FLAGS(sc) |= FNIC_DEV_RST_ISSUED;
03298552cba38f Hiral Patel 2013-02-12 2283 spin_unlock_irqrestore(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2284
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2285 /*
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2286 * Wait on the local completion for LUN reset. The io_req may be
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2287 * freed while we wait since we hold no lock.
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2288 */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2289 wait_for_completion_timeout(&tm_done,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2290 msecs_to_jiffies(FNIC_LUN_RESET_TIMEOUT));
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2291
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2292 spin_lock_irqsave(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2293 io_req = (struct fnic_io_req *)CMD_SP(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2294 if (!io_req) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2295 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2296 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
03298552cba38f Hiral Patel 2013-02-12 2297 "io_req is null tag 0x%x sc 0x%p\n", tag, sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2298 goto fnic_device_reset_end;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2299 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2300 io_req->dr_done = NULL;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2301
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2302 status = CMD_LR_STATUS(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2303
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2304 /*
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2305 * If lun reset not completed, bail out with failed. io_req
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2306 * gets cleaned up during higher levels of EH
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2307 */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2308 if (status == FCPIO_INVALID_CODE) {
67125b0287a9e6 Hiral Patel 2013-09-12 2309 atomic64_inc(&reset_stats->device_reset_timeouts);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2310 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2311 "Device reset timed out\n");
03298552cba38f Hiral Patel 2013-02-12 2312 CMD_FLAGS(sc) |= FNIC_DEV_RST_TIMED_OUT;
03298552cba38f Hiral Patel 2013-02-12 2313 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2314 int_to_scsilun(sc->device->lun, &fc_lun);
03298552cba38f Hiral Patel 2013-02-12 2315 /*
1259c5dc752474 Sesidhar Beddel 2013-09-09 2316 * Issue abort and terminate on device reset request.
1259c5dc752474 Sesidhar Beddel 2013-09-09 2317 * If q'ing of terminate fails, retry it after a delay.
03298552cba38f Hiral Patel 2013-02-12 2318 */
03298552cba38f Hiral Patel 2013-02-12 2319 while (1) {
03298552cba38f Hiral Patel 2013-02-12 2320 spin_lock_irqsave(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2321 if (CMD_FLAGS(sc) & FNIC_DEV_RST_TERM_ISSUED) {
03298552cba38f Hiral Patel 2013-02-12 2322 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2323 break;
03298552cba38f Hiral Patel 2013-02-12 2324 }
03298552cba38f Hiral Patel 2013-02-12 2325 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2326 if (fnic_queue_abort_io_req(fnic,
03298552cba38f Hiral Patel 2013-02-12 2327 tag | FNIC_TAG_DEV_RST,
03298552cba38f Hiral Patel 2013-02-12 2328 FCPIO_ITMF_ABT_TASK_TERM,
03298552cba38f Hiral Patel 2013-02-12 2329 fc_lun.scsi_lun, io_req)) {
03298552cba38f Hiral Patel 2013-02-12 2330 wait_for_completion_timeout(&tm_done,
03298552cba38f Hiral Patel 2013-02-12 2331 msecs_to_jiffies(FNIC_ABT_TERM_DELAY_TIMEOUT));
03298552cba38f Hiral Patel 2013-02-12 2332 } else {
03298552cba38f Hiral Patel 2013-02-12 2333 spin_lock_irqsave(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2334 CMD_FLAGS(sc) |= FNIC_DEV_RST_TERM_ISSUED;
03298552cba38f Hiral Patel 2013-02-12 2335 CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
03298552cba38f Hiral Patel 2013-02-12 2336 io_req->abts_done = &tm_done;
03298552cba38f Hiral Patel 2013-02-12 2337 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2338 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
03298552cba38f Hiral Patel 2013-02-12 2339 "Abort and terminate issued on Device reset "
03298552cba38f Hiral Patel 2013-02-12 2340 "tag 0x%x sc 0x%p\n", tag, sc);
03298552cba38f Hiral Patel 2013-02-12 2341 break;
03298552cba38f Hiral Patel 2013-02-12 2342 }
03298552cba38f Hiral Patel 2013-02-12 2343 }
03298552cba38f Hiral Patel 2013-02-12 2344 while (1) {
03298552cba38f Hiral Patel 2013-02-12 2345 spin_lock_irqsave(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2346 if (!(CMD_FLAGS(sc) & FNIC_DEV_RST_DONE)) {
03298552cba38f Hiral Patel 2013-02-12 2347 spin_unlock_irqrestore(io_lock, flags);
03298552cba38f Hiral Patel 2013-02-12 2348 wait_for_completion_timeout(&tm_done,
03298552cba38f Hiral Patel 2013-02-12 2349 msecs_to_jiffies(FNIC_LUN_RESET_TIMEOUT));
03298552cba38f Hiral Patel 2013-02-12 2350 break;
03298552cba38f Hiral Patel 2013-02-12 2351 } else {
03298552cba38f Hiral Patel 2013-02-12 2352 io_req = (struct fnic_io_req *)CMD_SP(sc);
03298552cba38f Hiral Patel 2013-02-12 2353 io_req->abts_done = NULL;
03298552cba38f Hiral Patel 2013-02-12 2354 goto fnic_device_reset_clean;
03298552cba38f Hiral Patel 2013-02-12 2355 }
03298552cba38f Hiral Patel 2013-02-12 2356 }
03298552cba38f Hiral Patel 2013-02-12 2357 } else {
03298552cba38f Hiral Patel 2013-02-12 2358 spin_unlock_irqrestore(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2359 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2360
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2361 /* Completed, but not successful, clean up the io_req, return fail */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2362 if (status != FCPIO_SUCCESS) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2363 spin_lock_irqsave(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2364 FNIC_SCSI_DBG(KERN_DEBUG,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2365 fnic->lport->host,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2366 "Device reset completed - failed\n");
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2367 io_req = (struct fnic_io_req *)CMD_SP(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2368 goto fnic_device_reset_clean;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2369 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2370
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2371 /*
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2372 * Clean up any aborts on this lun that have still not
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2373 * completed. If any of these fail, then LUN reset fails.
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2374 * clean_pending_aborts cleans all cmds on this lun except
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2375 * the lun reset cmd. If all cmds get cleaned, the lun reset
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2376 * succeeds
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2377 */
77600d1b52ae78 Hannes Reinecke 2021-08-16 2378 if (fnic_clean_pending_aborts(fnic, sc)) {
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2379 spin_lock_irqsave(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2380 io_req = (struct fnic_io_req *)CMD_SP(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2381 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2382 "Device reset failed"
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2383 " since could not abort all IOs\n");
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2384 goto fnic_device_reset_clean;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2385 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2386
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2387 /* Clean lun reset command */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2388 spin_lock_irqsave(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2389 io_req = (struct fnic_io_req *)CMD_SP(sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2390 if (io_req)
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2391 /* Completed, and successful */
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2392 ret = SUCCESS;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2393
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2394 fnic_device_reset_clean:
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2395 if (io_req)
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2396 CMD_SP(sc) = NULL;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2397
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2398 spin_unlock_irqrestore(io_lock, flags);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2399
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2400 if (io_req) {
14eb5d905d16ec Hiral Patel 2013-02-12 2401 start_time = io_req->start_time;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2402 fnic_release_ioreq_buf(fnic, io_req, sc);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2403 mempool_free(io_req, fnic->io_req_pool);
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2404 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2405
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2406 fnic_device_reset_end:
4d7007b49d523d Hiral Patel 2013-02-12 2407 FNIC_TRACE(fnic_device_reset, sc->device->host->host_no,
4d7007b49d523d Hiral Patel 2013-02-12 2408 sc->request->tag, sc,
4d7007b49d523d Hiral Patel 2013-02-12 2409 jiffies_to_msecs(jiffies - start_time),
4d7007b49d523d Hiral Patel 2013-02-12 2410 0, ((u64)sc->cmnd[0] << 32 |
4d7007b49d523d Hiral Patel 2013-02-12 2411 (u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
4d7007b49d523d Hiral Patel 2013-02-12 2412 (u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
4d7007b49d523d Hiral Patel 2013-02-12 2413 (((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
4d7007b49d523d Hiral Patel 2013-02-12 2414
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2415 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2416 "Returning from device reset %s\n",
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2417 (ret == SUCCESS) ?
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2418 "SUCCESS" : "FAILED");
67125b0287a9e6 Hiral Patel 2013-09-12 2419
67125b0287a9e6 Hiral Patel 2013-09-12 2420 if (ret == FAILED)
67125b0287a9e6 Hiral Patel 2013-09-12 2421 atomic64_inc(&reset_stats->device_reset_failures);
67125b0287a9e6 Hiral Patel 2013-09-12 2422
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2423 return ret;
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2424 }
5df6d737dd4b0f Abhijeet Joglekar 2009-04-17 2425
:::::: The code at line 2209 was first introduced by commit
:::::: 67125b0287a9e6506c4f5afca7376667bf6dab5b [SCSI] fnic: Fnic Statistics Collection
:::::: TO: Hiral Patel <hiralpat(a)cisco.com>
:::::: CC: James Bottomley <JBottomley(a)Parallels.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH v2 06/20] platform/x86: intel_scu: Move to intel sub-directory
by kernel test robot
Hi Kate,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20210816]
[cannot apply to linus/master v5.14-rc6 v5.14-rc5 v5.14-rc4 v5.14-rc6]
[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/Kate-Hsuan/Intel-platform-driver...
base: b9011c7e671dbbf59bb753283ddfd03f0c9eb865
config: i386-randconfig-r023-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2c6448cdc2f68f8c28fd0bd9404182b81306e6e6)
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
# https://github.com/0day-ci/linux/commit/30a4d97d4248adef672f46eeb0e32b816...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kate-Hsuan/Intel-platform-driver-code-movement/20210816-185713
git checkout 30a4d97d4248adef672f46eeb0e32b816b6f531c
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=i386 SHELL=/bin/bash drivers/platform/x86/intel/
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/platform/x86/intel/scu/ipc.c:478: warning: expecting prototype for intel_scu_ipc_command_with_size(). Prototype was for intel_scu_ipc_dev_command_with_size() instead
vim +478 drivers/platform/x86/intel/scu/ipc.c
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 458
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 459 /**
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 460 * intel_scu_ipc_command_with_size() - Command with data
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 461 * @scu: Optional SCU IPC instance
8b236565600833 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-01-22 462 * @cmd: Command
8b236565600833 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-01-22 463 * @sub: Sub type
8b236565600833 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-01-22 464 * @in: Input data
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 465 * @inlen: Input length in bytes
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 466 * @size: Input size written to the IPC command register in whatever
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 467 * units (dword, byte) the particular firmware requires. Normally
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 468 * should be the same as @inlen.
8b236565600833 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-01-22 469 * @out: Output data
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 470 * @outlen: Output length in bytes
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 471 *
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 472 * Issue a command to the SCU which involves data transfers. Do the
8b236565600833 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-01-22 473 * data copies under the lock but leave it for the caller to interpret.
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 474 */
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 475 int intel_scu_ipc_dev_command_with_size(struct intel_scu_ipc_dev *scu, int cmd,
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 476 int sub, const void *in, size_t inlen,
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 477 size_t size, void *out, size_t outlen)
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 @478 {
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 479 size_t outbuflen = DIV_ROUND_UP(outlen, sizeof(u32));
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 480 size_t inbuflen = DIV_ROUND_UP(inlen, sizeof(u32));
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 481 u32 cmdval, inbuf[4] = {};
ecb5646cb098d9 drivers/platform/x86/intel_scu_ipc.c Axel Lin 2011-01-25 482 int i, err;
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 483
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 484 if (inbuflen > 4 || outbuflen > 4)
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 485 return -EINVAL;
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 486
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 487 mutex_lock(&ipclock);
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 488 if (!scu)
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 489 scu = ipcdev;
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 490 if (!scu) {
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 491 mutex_unlock(&ipclock);
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 492 return -ENODEV;
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 493 }
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 494
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 495 memcpy(inbuf, in, inlen);
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 496 for (i = 0; i < inbuflen; i++)
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 497 ipc_data_writel(scu, inbuf[i], 4 * i);
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 498
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 499 cmdval = (size << 16) | (sub << 12) | cmd;
ea608f25fa09b5 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 500 ipc_command(scu, cmdval);
b0b3f578a1c363 drivers/platform/x86/intel_scu_ipc.c Andy Shevchenko 2015-10-12 501 err = intel_scu_ipc_check_status(scu);
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 502
c7094d1d994c23 drivers/platform/x86/intel_scu_ipc.c Kuppuswamy Sathyanarayanan 2013-11-14 503 if (!err) {
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 504 u32 outbuf[4] = {};
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 505
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 506 for (i = 0; i < outbuflen; i++)
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 507 outbuf[i] = ipc_data_readl(scu, 4 * i);
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 508
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 509 memcpy(out, outbuf, outlen);
c7094d1d994c23 drivers/platform/x86/intel_scu_ipc.c Kuppuswamy Sathyanarayanan 2013-11-14 510 }
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 511
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 512 mutex_unlock(&ipclock);
ea608f25fa09b5 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 513 if (err)
ea608f25fa09b5 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 514 dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, err);
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 515 return err;
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 516 }
f57fa18583f538 drivers/platform/x86/intel_scu_ipc.c Mika Westerberg 2020-04-16 517 EXPORT_SYMBOL(intel_scu_ipc_dev_command_with_size);
9a58a3333923c7 drivers/platform/x86/intel_scu_ipc.c Sreedhara DS 2010-04-26 518
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[mcgrof:20210816-add-disk-error-handling 64/64] drivers/nvdimm/pmem.c:495:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git 20210816-add-disk-error-handling
head: e1e79332ea1bba0e751529b114ef9d301bf962a5
commit: e1e79332ea1bba0e751529b114ef9d301bf962a5 [64/64] block: add __must_check for *add_disk*() callers
config: x86_64-randconfig-a011-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2c6448cdc2f68f8c28fd0bd9404182b81306e6e6)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/commit/?...
git remote add mcgrof https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git
git fetch --no-tags mcgrof 20210816-add-disk-error-handling
git checkout e1e79332ea1bba0e751529b114ef9d301bf962a5
# 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/nvdimm/pmem.c:495:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result]
device_add_disk(dev, disk, NULL);
^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
1 warning generated.
vim +/warn_unused_result +495 drivers/nvdimm/pmem.c
1e240e8d4a7d92 drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 369
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 370 static int pmem_attach_disk(struct device *dev,
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 371 struct nd_namespace_common *ndns)
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 372 {
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 373 struct nd_namespace_io *nsio = to_nd_namespace_io(&ndns->dev);
f284a4f23752d0 drivers/nvdimm/pmem.c Dan Williams 2016-07-07 374 struct nd_region *nd_region = to_nd_region(dev->parent);
ce7f11a230d5b7 drivers/nvdimm/pmem.c Ross Zwisler 2018-06-06 375 int nid = dev_to_node(dev), fua;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 376 struct resource *res = &nsio->res;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 377 struct range bb_range;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 378 struct nd_pfn *nd_pfn = NULL;
c1d6e828a35df5 drivers/nvdimm/pmem.c Dan Williams 2017-01-24 379 struct dax_device *dax_dev;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 380 struct nd_pfn_sb *pfn_sb;
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 381 struct pmem_device *pmem;
468ded03c07e0f drivers/nvdimm/pmem.c Dan Williams 2016-01-15 382 struct request_queue *q;
6e0c90d691cd5d drivers/nvdimm/pmem.c Dan Williams 2017-06-26 383 struct device *gendev;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 384 struct gendisk *disk;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 385 void *addr;
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 386 int rc;
fefc1d97fa4b5e drivers/nvdimm/pmem.c Pankaj Gupta 2019-07-05 387 unsigned long flags = 0UL;
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 388
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 389 pmem = devm_kzalloc(dev, sizeof(*pmem), GFP_KERNEL);
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 390 if (!pmem)
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 391 return -ENOMEM;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 392
8f4b01fcded2dc drivers/nvdimm/pmem.c Aneesh Kumar K.V 2019-10-31 393 rc = devm_namespace_enable(dev, ndns, nd_info_block_reserve());
8f4b01fcded2dc drivers/nvdimm/pmem.c Aneesh Kumar K.V 2019-10-31 394 if (rc)
8f4b01fcded2dc drivers/nvdimm/pmem.c Aneesh Kumar K.V 2019-10-31 395 return rc;
8f4b01fcded2dc drivers/nvdimm/pmem.c Aneesh Kumar K.V 2019-10-31 396
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 397 /* while nsio_rw_bytes is active, parse a pfn info block if present */
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 398 if (is_nd_pfn(dev)) {
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 399 nd_pfn = to_nd_pfn(dev);
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 400 rc = nvdimm_setup_pfn(nd_pfn, &pmem->pgmap);
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 401 if (rc)
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 402 return rc;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 403 }
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 404
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 405 /* we're attaching a block device, disable raw namespace access */
8f4b01fcded2dc drivers/nvdimm/pmem.c Aneesh Kumar K.V 2019-10-31 406 devm_namespace_disable(dev, ndns);
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 407
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 408 dev_set_drvdata(dev, pmem);
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 409 pmem->phys_addr = res->start;
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 410 pmem->size = resource_size(res);
0b277961f4484f drivers/nvdimm/pmem.c Dan Williams 2017-06-09 411 fua = nvdimm_has_flush(nd_region);
0b277961f4484f drivers/nvdimm/pmem.c Dan Williams 2017-06-09 412 if (!IS_ENABLED(CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE) || fua < 0) {
61031952f4c89d drivers/nvdimm/pmem.c Ross Zwisler 2015-06-25 413 dev_warn(dev, "unable to guarantee persistence of writes\n");
0b277961f4484f drivers/nvdimm/pmem.c Dan Williams 2017-06-09 414 fua = 0;
0b277961f4484f drivers/nvdimm/pmem.c Dan Williams 2017-06-09 415 }
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 416
947df02d255a6a drivers/nvdimm/pmem.c Dan Williams 2016-03-21 417 if (!devm_request_mem_region(dev, res->start, resource_size(res),
450c6633e874c4 drivers/nvdimm/pmem.c Dan Williams 2016-11-28 418 dev_name(&ndns->dev))) {
947df02d255a6a drivers/nvdimm/pmem.c Dan Williams 2016-03-21 419 dev_warn(dev, "could not reserve region %pR\n", res);
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 420 return -EBUSY;
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 421 }
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 422
87eb73b2ca7c1b drivers/nvdimm/pmem.c Christoph Hellwig 2021-05-21 423 disk = blk_alloc_disk(nid);
87eb73b2ca7c1b drivers/nvdimm/pmem.c Christoph Hellwig 2021-05-21 424 if (!disk)
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 425 return -ENOMEM;
87eb73b2ca7c1b drivers/nvdimm/pmem.c Christoph Hellwig 2021-05-21 426 q = disk->queue;
468ded03c07e0f drivers/nvdimm/pmem.c Dan Williams 2016-01-15 427
87eb73b2ca7c1b drivers/nvdimm/pmem.c Christoph Hellwig 2021-05-21 428 pmem->disk = disk;
a624eb520390ce drivers/nvdimm/pmem.c Dan Williams 2021-06-07 429 pmem->pgmap.owner = pmem;
34c0fd540e79fb drivers/nvdimm/pmem.c Dan Williams 2016-01-15 430 pmem->pfn_flags = PFN_DEV;
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 431 pmem->pgmap.ref = &q->q_usage_counter;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 432 if (is_nd_pfn(dev)) {
f6a55e1a3fe6b3 drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 433 pmem->pgmap.type = MEMORY_DEVICE_FS_DAX;
f6a55e1a3fe6b3 drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 434 pmem->pgmap.ops = &fsdax_pagemap_ops;
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 435 addr = devm_memremap_pages(dev, &pmem->pgmap);
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 436 pfn_sb = nd_pfn->pfn_sb;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 437 pmem->data_offset = le64_to_cpu(pfn_sb->dataoff);
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 438 pmem->pfn_pad = resource_size(res) -
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 439 range_len(&pmem->pgmap.range);
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 440 pmem->pfn_flags |= PFN_MAP;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 441 bb_range = pmem->pgmap.range;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 442 bb_range.start += pmem->data_offset;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 443 } else if (pmem_should_map_pages(dev)) {
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 444 pmem->pgmap.range.start = res->start;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 445 pmem->pgmap.range.end = res->end;
b7b3c01b191596 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 446 pmem->pgmap.nr_range = 1;
f6a55e1a3fe6b3 drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 447 pmem->pgmap.type = MEMORY_DEVICE_FS_DAX;
f6a55e1a3fe6b3 drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 448 pmem->pgmap.ops = &fsdax_pagemap_ops;
e8d5134833006a drivers/nvdimm/pmem.c Christoph Hellwig 2017-12-29 449 addr = devm_memremap_pages(dev, &pmem->pgmap);
34c0fd540e79fb drivers/nvdimm/pmem.c Dan Williams 2016-01-15 450 pmem->pfn_flags |= PFN_MAP;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 451 bb_range = pmem->pgmap.range;
91ed7ac444ef74 drivers/nvdimm/pmem.c Dan Williams 2018-10-04 452 } else {
50f44ee7248ad2 drivers/nvdimm/pmem.c Dan Williams 2019-06-13 453 if (devm_add_action_or_reset(dev, pmem_release_queue,
d8668bb0451c3c drivers/nvdimm/pmem.c Christoph Hellwig 2019-06-26 454 &pmem->pgmap))
50f44ee7248ad2 drivers/nvdimm/pmem.c Dan Williams 2019-06-13 455 return -ENOMEM;
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 456 addr = devm_memremap(dev, pmem->phys_addr,
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 457 pmem->size, ARCH_MEMREMAP_PMEM);
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 458 bb_range.start = res->start;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 459 bb_range.end = res->end;
91ed7ac444ef74 drivers/nvdimm/pmem.c Dan Williams 2018-10-04 460 }
b36f47617f6ce7 drivers/nvdimm/pmem.c Dan Williams 2015-09-15 461
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 462 if (IS_ERR(addr))
200c79da824c97 drivers/nvdimm/pmem.c Dan Williams 2016-03-22 463 return PTR_ERR(addr);
7a9eb206663177 drivers/nvdimm/pmem.c Dan Williams 2016-06-03 464 pmem->virt_addr = addr;
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 465
ce7f11a230d5b7 drivers/nvdimm/pmem.c Ross Zwisler 2018-06-06 466 blk_queue_write_cache(q, true, fua);
5a92289f41311a drivers/nvdimm/pmem.c Dan Williams 2016-03-21 467 blk_queue_physical_block_size(q, PAGE_SIZE);
f979b13c3cc515 drivers/nvdimm/pmem.c Dan Williams 2017-06-04 468 blk_queue_logical_block_size(q, pmem_sector_size(ndns));
5a92289f41311a drivers/nvdimm/pmem.c Dan Williams 2016-03-21 469 blk_queue_max_hw_sectors(q, UINT_MAX);
8b904b5b6b58b9 drivers/nvdimm/pmem.c Bart Van Assche 2018-03-07 470 blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
4557641b4c7046 drivers/nvdimm/pmem.c Ross Zwisler 2018-06-26 471 if (pmem->pfn_flags & PFN_MAP)
8b904b5b6b58b9 drivers/nvdimm/pmem.c Bart Van Assche 2018-03-07 472 blk_queue_flag_set(QUEUE_FLAG_DAX, q);
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 473
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 474 disk->fops = &pmem_fops;
6ec26b8b2d70b4 drivers/nvdimm/pmem.c Christoph Hellwig 2020-05-08 475 disk->private_data = pmem;
5212e11fde4d40 drivers/nvdimm/pmem.c Vishal Verma 2015-06-25 476 nvdimm_namespace_disk_name(ndns, disk->disk_name);
cfe30b872058f2 drivers/nvdimm/pmem.c Dan Williams 2016-03-03 477 set_capacity(disk, (pmem->size - pmem->pfn_pad - pmem->data_offset)
cfe30b872058f2 drivers/nvdimm/pmem.c Dan Williams 2016-03-03 478 / 512);
b95f5f4391fad6 drivers/nvdimm/pmem.c Dan Williams 2016-01-04 479 if (devm_init_badblocks(dev, &pmem->bb))
b95f5f4391fad6 drivers/nvdimm/pmem.c Dan Williams 2016-01-04 480 return -ENOMEM;
a4574f63edc6f7 drivers/nvdimm/pmem.c Dan Williams 2020-10-13 481 nvdimm_badblocks_populate(nd_region, &pmem->bb, &bb_range);
57f7f317abdd07 drivers/nvdimm/pmem.c Dan Williams 2016-01-06 482 disk->bb = &pmem->bb;
f02716db951c5e drivers/nvdimm/pmem.c Dan Williams 2016-06-15 483
fefc1d97fa4b5e drivers/nvdimm/pmem.c Pankaj Gupta 2019-07-05 484 if (is_nvdimm_sync(nd_region))
fefc1d97fa4b5e drivers/nvdimm/pmem.c Pankaj Gupta 2019-07-05 485 flags = DAXDEV_F_SYNC;
fefc1d97fa4b5e drivers/nvdimm/pmem.c Pankaj Gupta 2019-07-05 486 dax_dev = alloc_dax(pmem, disk->disk_name, &pmem_dax_ops, flags);
4e4ced93794acb drivers/nvdimm/pmem.c Vivek Goyal 2020-04-01 487 if (IS_ERR(dax_dev)) {
4e4ced93794acb drivers/nvdimm/pmem.c Vivek Goyal 2020-04-01 488 return PTR_ERR(dax_dev);
c1d6e828a35df5 drivers/nvdimm/pmem.c Dan Williams 2017-01-24 489 }
ce7f11a230d5b7 drivers/nvdimm/pmem.c Ross Zwisler 2018-06-06 490 dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
c1d6e828a35df5 drivers/nvdimm/pmem.c Dan Williams 2017-01-24 491 pmem->dax_dev = dax_dev;
6e0c90d691cd5d drivers/nvdimm/pmem.c Dan Williams 2017-06-26 492 gendev = disk_to_dev(disk);
6e0c90d691cd5d drivers/nvdimm/pmem.c Dan Williams 2017-06-26 493 gendev->groups = pmem_attribute_groups;
6e0c90d691cd5d drivers/nvdimm/pmem.c Dan Williams 2017-06-26 494
fef912bf860e8e drivers/nvdimm/pmem.c Hannes Reinecke 2018-09-28 @495 device_add_disk(dev, disk, NULL);
c1d6e828a35df5 drivers/nvdimm/pmem.c Dan Williams 2017-01-24 496 if (devm_add_action_or_reset(dev, pmem_release_disk, pmem))
f02716db951c5e drivers/nvdimm/pmem.c Dan Williams 2016-06-15 497 return -ENOMEM;
f02716db951c5e drivers/nvdimm/pmem.c Dan Williams 2016-06-15 498
32f61d67570db0 drivers/nvdimm/pmem.c Christoph Hellwig 2020-09-01 499 nvdimm_check_and_set_ro(disk);
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 500
975750a98c2676 drivers/nvdimm/pmem.c Toshi Kani 2017-06-12 501 pmem->bb_state = sysfs_get_dirent(disk_to_dev(disk)->kobj.sd,
975750a98c2676 drivers/nvdimm/pmem.c Toshi Kani 2017-06-12 502 "badblocks");
6aa734a2f38e2e drivers/nvdimm/pmem.c Dan Williams 2017-06-30 503 if (!pmem->bb_state)
6aa734a2f38e2e drivers/nvdimm/pmem.c Dan Williams 2017-06-30 504 dev_warn(dev, "'badblocks' notification disabled\n");
975750a98c2676 drivers/nvdimm/pmem.c Toshi Kani 2017-06-12 505
8c2f7e8658df1d drivers/nvdimm/pmem.c Dan Williams 2015-06-25 506 return 0;
8c2f7e8658df1d drivers/nvdimm/pmem.c Dan Williams 2015-06-25 507 }
9e853f2313e5eb drivers/block/pmem.c Ross Zwisler 2015-04-01 508
:::::: The code at line 495 was first introduced by commit
:::::: fef912bf860e8e7e48a2bfb978a356bba743a8b7 block: genhd: add 'groups' argument to device_add_disk
:::::: TO: Hannes Reinecke <hare(a)suse.de>
:::::: CC: Jens Axboe <axboe(a)kernel.dk>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[hare-scsi-devel:eh-rework.v2 33/51] drivers/scsi/bfa/bfad_im.c:371:30: warning: variable 'itnim' set but not used
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git eh-rework.v2
head: 7603e2e1f37e470064b8c865b5d6470137baa79b
commit: fa7da686b96cd50ff111019e1d05aa05c22690c6 [33/51] bfa: Do not use scsi command to signal TMF status
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 11.2.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
# https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commi...
git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
git fetch --no-tags hare-scsi-devel eh-rework.v2
git checkout fa7da686b96cd50ff111019e1d05aa05c22690c6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=s390
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/scsi/bfa/bfad_im.c: In function 'bfad_im_reset_target_handler':
>> drivers/scsi/bfa/bfad_im.c:371:30: warning: variable 'itnim' set but not used [-Wunused-but-set-variable]
371 | struct bfad_itnim_s *itnim;
| ^~~~~
vim +/itnim +371 drivers/scsi/bfa/bfad_im.c
360
361 /*
362 * Scsi_Host template entry, resets the target and abort all commands.
363 */
364 static int
365 bfad_im_reset_target_handler(struct scsi_cmnd *cmnd)
366 {
367 struct scsi_target *starget = scsi_target(cmnd->device);
368 struct fc_rport *rport = starget_to_rport(starget);
369 struct Scsi_Host *shost = rport_to_shost(rport);
370 struct bfad_itnim_data_s *itnim_data;
> 371 struct bfad_itnim_s *itnim;
372 struct bfad_im_port_s *im_port =
373 (struct bfad_im_port_s *) shost->hostdata[0];
374 struct bfad_s *bfad = im_port->bfad;
375 unsigned long flags;
376 u32 rc, rtn = FAILED;
377 DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
378 enum bfi_tskim_status task_status;
379
380 spin_lock_irqsave(&bfad->bfad_lock, flags);
381 if (!rport->dd_data) {
382 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
383 return rtn;
384 }
385 itnim_data = rport->dd_data;
386 if (itnim_data->tmf_wq) {
387 BFA_LOG(KERN_ERR, bfad, bfa_log_level,
388 "target reset failed, TMF already active");
389 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
390 return rtn;
391 }
392 itnim = itnim_data->itnim;
393
394 itnim_data->tmf_wq = &wq;
395 itnim_data->tmf_status = 0;
396 rc = bfad_im_target_reset_send(bfad, itnim_data);
397 if (rc == BFA_STATUS_OK) {
398 /* wait target reset to complete */
399 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
400 wait_event(wq, test_bit(IO_DONE_BIT, &itnim_data->tmf_status));
401 spin_lock_irqsave(&bfad->bfad_lock, flags);
402
403 task_status = itnim_data->tmf_status >> 1;
404 if (task_status != BFI_TSKIM_STS_OK)
405 BFA_LOG(KERN_ERR, bfad, bfa_log_level,
406 "target reset failure,"
407 " status: %d\n", task_status);
408 else
409 rtn = SUCCESS;
410 }
411 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
412
413 return rtn;
414 }
415
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[mcgrof:20210816-add-disk-error-handling 41/64] drivers/block/floppy.c:4532:7: warning: variable 'err' is used uninitialized whenever 'if' condition is false
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git 20210816-add-disk-error-handling
head: e1e79332ea1bba0e751529b114ef9d301bf962a5
commit: 4734b368f95c0126b06135115f9413cc00777e1b [41/64] block: make __register_blkdev() return an error
config: i386-randconfig-a004-20210817 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2c6448cdc2f68f8c28fd0bd9404182b81306e6e6)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/commit/?...
git remote add mcgrof https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git
git fetch --no-tags mcgrof 20210816-add-disk-error-handling
git checkout 4734b368f95c0126b06135115f9413cc00777e1b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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/block/floppy.c:4532:7: warning: variable 'err' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (floppy_alloc_disk(drive, type) == 0) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/block/floppy.c:4540:9: note: uninitialized use occurs here
return err;
^~~
drivers/block/floppy.c:4532:3: note: remove the 'if' if its condition is always true
if (floppy_alloc_disk(drive, type) == 0) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/block/floppy.c:4531:6: warning: variable 'err' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (!disks[drive][type]) {
^~~~~~~~~~~~~~~~~~~
drivers/block/floppy.c:4540:9: note: uninitialized use occurs here
return err;
^~~
drivers/block/floppy.c:4531:2: note: remove the 'if' if its condition is always true
if (!disks[drive][type]) {
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/block/floppy.c:4524:9: note: initialize the variable 'err' to silence this warning
int err;
^
= 0
2 warnings generated.
vim +4532 drivers/block/floppy.c
4519
4520 static int floppy_probe(dev_t dev)
4521 {
4522 unsigned int drive = (MINOR(dev) & 3) | ((MINOR(dev) & 0x80) >> 5);
4523 unsigned int type = (MINOR(dev) >> 2) & 0x1f;
4524 int err;
4525
4526 if (drive >= N_DRIVE || !floppy_available(drive) ||
4527 type >= ARRAY_SIZE(floppy_type))
4528 return -EINVAL;
4529
4530 mutex_lock(&floppy_probe_lock);
4531 if (!disks[drive][type]) {
> 4532 if (floppy_alloc_disk(drive, type) == 0) {
4533 err = add_disk(disks[drive][type]);
4534 if (err)
4535 blk_cleanup_disk(disks[drive][type]);
4536 }
4537 }
4538 mutex_unlock(&floppy_probe_lock);
4539
4540 return err;
4541 }
4542
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[bpf-next:master 972/996] include/linux/bpf.h:1152:71: warning: unused parameter 'new_ctx'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
head: 3c3bd542ffbb2ac09631313ede46ae66660ae550
commit: 7d08c2c9117113fee118487425ed55efa50cbfa9 [972/996] bpf: Refactor BPF_PROG_RUN_ARRAY family of macros into functions
config: i386-randconfig-r021-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2c6448cdc2f68f8c28fd0bd9404182b81306e6e6)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?...
git remote add bpf-next https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
git fetch --no-tags bpf-next master
git checkout 7d08c2c9117113fee118487425ed55efa50cbfa9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 >>):
include/linux/u64_stats_sync.h:154:19: warning: unused parameter 'flags' [-Wunused-parameter]
unsigned long flags)
^
include/linux/u64_stats_sync.h:162:81: warning: unused parameter 'syncp' [-Wunused-parameter]
static inline unsigned int __u64_stats_fetch_begin(const struct u64_stats_sync *syncp)
^
include/linux/u64_stats_sync.h:179:73: warning: unused parameter 'syncp' [-Wunused-parameter]
static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp,
^
include/linux/u64_stats_sync.h:180:20: warning: unused parameter 'start' [-Wunused-parameter]
unsigned int start)
^
In file included from drivers/gpu/drm/i915/i915_drv.c:39:
In file included from include/linux/vga_switcheroo.h:34:
In file included from include/linux/fb.h:6:
In file included from include/uapi/linux/fb.h:6:
In file included from include/linux/i2c.h:18:
In file included from include/linux/regulator/consumer.h:35:
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:13:
In file included from include/linux/cgroup.h:28:
In file included from include/linux/cgroup-defs.h:22:
In file included from include/linux/bpf-cgroup.h:5:
In file included from include/linux/bpf.h:22:
include/linux/sched/mm.h:103:59: warning: unused parameter 'mm' [-Wunused-parameter]
static inline void mm_update_next_owner(struct mm_struct *mm)
^
include/linux/sched/mm.h:321:37: warning: unused parameter 'memcg' [-Wunused-parameter]
set_active_memcg(struct mem_cgroup *memcg)
^
In file included from drivers/gpu/drm/i915/i915_drv.c:39:
In file included from include/linux/vga_switcheroo.h:34:
In file included from include/linux/fb.h:6:
In file included from include/uapi/linux/fb.h:6:
In file included from include/linux/i2c.h:18:
In file included from include/linux/regulator/consumer.h:35:
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:13:
In file included from include/linux/cgroup.h:28:
In file included from include/linux/cgroup-defs.h:22:
In file included from include/linux/bpf-cgroup.h:5:
include/linux/bpf.h:770:61: warning: unused parameter 'prog' [-Wunused-parameter]
static inline int bpf_trampoline_link_prog(struct bpf_prog *prog,
^
include/linux/bpf.h:771:32: warning: unused parameter 'tr' [-Wunused-parameter]
struct bpf_trampoline *tr)
^
include/linux/bpf.h:775:63: warning: unused parameter 'prog' [-Wunused-parameter]
static inline int bpf_trampoline_unlink_prog(struct bpf_prog *prog,
^
include/linux/bpf.h:776:34: warning: unused parameter 'tr' [-Wunused-parameter]
struct bpf_trampoline *tr)
^
include/linux/bpf.h:780:61: warning: unused parameter 'key' [-Wunused-parameter]
static inline struct bpf_trampoline *bpf_trampoline_get(u64 key,
^
include/linux/bpf.h:781:39: warning: unused parameter 'tgt_info' [-Wunused-parameter]
struct bpf_attach_target_info *tgt_info)
^
include/linux/bpf.h:785:62: warning: unused parameter 'tr' [-Wunused-parameter]
static inline void bpf_trampoline_put(struct bpf_trampoline *tr) {}
^
include/linux/bpf.h:790:70: warning: unused parameter 'd' [-Wunused-parameter]
static inline void bpf_dispatcher_change_prog(struct bpf_dispatcher *d,
^
include/linux/bpf.h:791:29: warning: unused parameter 'from' [-Wunused-parameter]
struct bpf_prog *from,
^
include/linux/bpf.h:792:29: warning: unused parameter 'to' [-Wunused-parameter]
struct bpf_prog *to) {}
^
include/linux/bpf.h:793:55: warning: unused parameter 'address' [-Wunused-parameter]
static inline bool is_bpf_image_address(unsigned long address)
^
include/linux/bpf.h:1012:68: warning: unused parameter 'type_id' [-Wunused-parameter]
static inline const struct bpf_struct_ops *bpf_struct_ops_find(u32 type_id)
^
include/linux/bpf.h:1016:52: warning: unused parameter 'btf' [-Wunused-parameter]
static inline void bpf_struct_ops_init(struct btf *btf,
^
include/linux/bpf.h:1017:37: warning: unused parameter 'log' [-Wunused-parameter]
struct bpf_verifier_log *log)
^
include/linux/bpf.h:1020:51: warning: unused parameter 'data' [-Wunused-parameter]
static inline bool bpf_try_module_get(const void *data, struct module *owner)
^
include/linux/bpf.h:1024:47: warning: unused parameter 'data' [-Wunused-parameter]
static inline void bpf_module_put(const void *data, struct module *owner)
^
include/linux/bpf.h:1028:70: warning: unused parameter 'map' [-Wunused-parameter]
static inline int bpf_struct_ops_map_sys_lookup_elem(struct bpf_map *map,
^
include/linux/bpf.h:1029:18: warning: unused parameter 'key' [-Wunused-parameter]
void *key,
^
include/linux/bpf.h:1030:18: warning: unused parameter 'value' [-Wunused-parameter]
void *value)
^
>> include/linux/bpf.h:1152:71: warning: unused parameter 'new_ctx' [-Wunused-parameter]
static inline struct bpf_run_ctx *bpf_set_run_ctx(struct bpf_run_ctx *new_ctx)
^
>> include/linux/bpf.h:1163:58: warning: unused parameter 'old_ctx' [-Wunused-parameter]
static inline void bpf_reset_run_ctx(struct bpf_run_ctx *old_ctx)
^
include/linux/bpf.h:1663:49: warning: unused parameter 'ufd' [-Wunused-parameter]
static inline struct bpf_prog *bpf_prog_get(u32 ufd)
^
include/linux/bpf.h:1668:58: warning: unused parameter 'ufd' [-Wunused-parameter]
static inline struct bpf_prog *bpf_prog_get_type_dev(u32 ufd,
^
include/linux/bpf.h:1669:31: warning: unused parameter 'type' [-Wunused-parameter]
enum bpf_prog_type type,
^
include/linux/bpf.h:1670:17: warning: unused parameter 'attach_drv' [-Wunused-parameter]
bool attach_drv)
^
include/linux/bpf.h:1675:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_add(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1675:60: warning: unused parameter 'i' [-Wunused-parameter]
static inline void bpf_prog_add(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1679:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_sub(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1679:60: warning: unused parameter 'i' [-Wunused-parameter]
static inline void bpf_prog_sub(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1683:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_put(struct bpf_prog *prog)
^
include/linux/bpf.h:1687:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_inc(struct bpf_prog *prog)
^
include/linux/bpf.h:1692:40: warning: unused parameter 'prog' [-Wunused-parameter]
bpf_prog_inc_not_zero(struct bpf_prog *prog)
^
include/linux/bpf.h:1697:51: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
^
include/linux/bpf.h:1697:76: warning: unused parameter 'type' [-Wunused-parameter]
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
^
include/linux/bpf.h:1698:33: warning: unused parameter 'ops' [-Wunused-parameter]
const struct bpf_link_ops *ops,
^
include/linux/bpf.h:1699:23: warning: unused parameter 'prog' [-Wunused-parameter]
struct bpf_prog *prog)
^
include/linux/bpf.h:1703:51: warning: unused parameter 'link' [-Wunused-parameter]
static inline int bpf_link_prime(struct bpf_link *link,
^
include/linux/bpf.h:1704:30: warning: unused parameter 'primer' [-Wunused-parameter]
struct bpf_link_primer *primer)
^
include/linux/bpf.h:1709:59: warning: unused parameter 'primer' [-Wunused-parameter]
static inline int bpf_link_settle(struct bpf_link_primer *primer)
^
include/linux/bpf.h:1714:61: warning: unused parameter 'primer' [-Wunused-parameter]
static inline void bpf_link_cleanup(struct bpf_link_primer *primer)
^
include/linux/bpf.h:1718:50: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_inc(struct bpf_link *link)
^
include/linux/bpf.h:1722:50: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_put(struct bpf_link *link)
^
include/linux/bpf.h:1726:55: warning: unused parameter 'pathname' [-Wunused-parameter]
static inline int bpf_obj_get_user(const char __user *pathname, int flags)
^
include/linux/bpf.h:1726:69: warning: unused parameter 'flags' [-Wunused-parameter]
static inline int bpf_obj_get_user(const char __user *pathname, int flags)
^
include/linux/bpf.h:1731:58: warning: unused parameter 'map' [-Wunused-parameter]
static inline bool dev_map_can_have_prog(struct bpf_map *map)
^
include/linux/bpf.h:1745:40: warning: unused parameter 'dev' [-Wunused-parameter]
int dev_xdp_enqueue(struct net_device *dev, struct xdp_buff *xdp,
^
include/linux/bpf.h:1745:62: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_xdp_enqueue(struct net_device *dev, struct xdp_buff *xdp,
^
include/linux/bpf.h:1746:26: warning: unused parameter 'dev_rx' [-Wunused-parameter]
struct net_device *dev_rx)
^
include/linux/bpf.h:1752:45: warning: unused parameter 'dst' [-Wunused-parameter]
int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_buff *xdp,
^
include/linux/bpf.h:1752:67: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_buff *xdp,
^
include/linux/bpf.h:1753:26: warning: unused parameter 'dev_rx' [-Wunused-parameter]
struct net_device *dev_rx)
^
include/linux/bpf.h:1759:44: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_map_enqueue_multi(struct xdp_buff *xdp, struct net_device *dev_rx,
^
include/linux/bpf.h:1759:68: warning: unused parameter 'dev_rx' [-Wunused-parameter]
int dev_map_enqueue_multi(struct xdp_buff *xdp, struct net_device *dev_rx,
^
include/linux/bpf.h:1760:22: warning: unused parameter 'map' [-Wunused-parameter]
struct bpf_map *map, bool exclude_ingress)
--
^
include/linux/u64_stats_sync.h:153:56: warning: unused parameter 'syncp' [-Wunused-parameter]
u64_stats_update_end_irqrestore(struct u64_stats_sync *syncp,
^
include/linux/u64_stats_sync.h:154:19: warning: unused parameter 'flags' [-Wunused-parameter]
unsigned long flags)
^
include/linux/u64_stats_sync.h:162:81: warning: unused parameter 'syncp' [-Wunused-parameter]
static inline unsigned int __u64_stats_fetch_begin(const struct u64_stats_sync *syncp)
^
include/linux/u64_stats_sync.h:179:73: warning: unused parameter 'syncp' [-Wunused-parameter]
static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp,
^
include/linux/u64_stats_sync.h:180:20: warning: unused parameter 'start' [-Wunused-parameter]
unsigned int start)
^
In file included from drivers/gpu/drm/i915/i915_config.c:6:
In file included from drivers/gpu/drm/i915/i915_drv.h:39:
In file included from include/linux/i2c.h:18:
In file included from include/linux/regulator/consumer.h:35:
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:13:
In file included from include/linux/cgroup.h:28:
In file included from include/linux/cgroup-defs.h:22:
In file included from include/linux/bpf-cgroup.h:5:
In file included from include/linux/bpf.h:22:
include/linux/sched/mm.h:103:59: warning: unused parameter 'mm' [-Wunused-parameter]
static inline void mm_update_next_owner(struct mm_struct *mm)
^
include/linux/sched/mm.h:321:37: warning: unused parameter 'memcg' [-Wunused-parameter]
set_active_memcg(struct mem_cgroup *memcg)
^
In file included from drivers/gpu/drm/i915/i915_config.c:6:
In file included from drivers/gpu/drm/i915/i915_drv.h:39:
In file included from include/linux/i2c.h:18:
In file included from include/linux/regulator/consumer.h:35:
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:13:
In file included from include/linux/cgroup.h:28:
In file included from include/linux/cgroup-defs.h:22:
In file included from include/linux/bpf-cgroup.h:5:
include/linux/bpf.h:770:61: warning: unused parameter 'prog' [-Wunused-parameter]
static inline int bpf_trampoline_link_prog(struct bpf_prog *prog,
^
include/linux/bpf.h:771:32: warning: unused parameter 'tr' [-Wunused-parameter]
struct bpf_trampoline *tr)
^
include/linux/bpf.h:775:63: warning: unused parameter 'prog' [-Wunused-parameter]
static inline int bpf_trampoline_unlink_prog(struct bpf_prog *prog,
^
include/linux/bpf.h:776:34: warning: unused parameter 'tr' [-Wunused-parameter]
struct bpf_trampoline *tr)
^
include/linux/bpf.h:780:61: warning: unused parameter 'key' [-Wunused-parameter]
static inline struct bpf_trampoline *bpf_trampoline_get(u64 key,
^
include/linux/bpf.h:781:39: warning: unused parameter 'tgt_info' [-Wunused-parameter]
struct bpf_attach_target_info *tgt_info)
^
include/linux/bpf.h:785:62: warning: unused parameter 'tr' [-Wunused-parameter]
static inline void bpf_trampoline_put(struct bpf_trampoline *tr) {}
^
include/linux/bpf.h:790:70: warning: unused parameter 'd' [-Wunused-parameter]
static inline void bpf_dispatcher_change_prog(struct bpf_dispatcher *d,
^
include/linux/bpf.h:791:29: warning: unused parameter 'from' [-Wunused-parameter]
struct bpf_prog *from,
^
include/linux/bpf.h:792:29: warning: unused parameter 'to' [-Wunused-parameter]
struct bpf_prog *to) {}
^
include/linux/bpf.h:793:55: warning: unused parameter 'address' [-Wunused-parameter]
static inline bool is_bpf_image_address(unsigned long address)
^
include/linux/bpf.h:1012:68: warning: unused parameter 'type_id' [-Wunused-parameter]
static inline const struct bpf_struct_ops *bpf_struct_ops_find(u32 type_id)
^
include/linux/bpf.h:1016:52: warning: unused parameter 'btf' [-Wunused-parameter]
static inline void bpf_struct_ops_init(struct btf *btf,
^
include/linux/bpf.h:1017:37: warning: unused parameter 'log' [-Wunused-parameter]
struct bpf_verifier_log *log)
^
include/linux/bpf.h:1020:51: warning: unused parameter 'data' [-Wunused-parameter]
static inline bool bpf_try_module_get(const void *data, struct module *owner)
^
include/linux/bpf.h:1024:47: warning: unused parameter 'data' [-Wunused-parameter]
static inline void bpf_module_put(const void *data, struct module *owner)
^
include/linux/bpf.h:1028:70: warning: unused parameter 'map' [-Wunused-parameter]
static inline int bpf_struct_ops_map_sys_lookup_elem(struct bpf_map *map,
^
include/linux/bpf.h:1029:18: warning: unused parameter 'key' [-Wunused-parameter]
void *key,
^
include/linux/bpf.h:1030:18: warning: unused parameter 'value' [-Wunused-parameter]
void *value)
^
>> include/linux/bpf.h:1152:71: warning: unused parameter 'new_ctx' [-Wunused-parameter]
static inline struct bpf_run_ctx *bpf_set_run_ctx(struct bpf_run_ctx *new_ctx)
^
>> include/linux/bpf.h:1163:58: warning: unused parameter 'old_ctx' [-Wunused-parameter]
static inline void bpf_reset_run_ctx(struct bpf_run_ctx *old_ctx)
^
include/linux/bpf.h:1663:49: warning: unused parameter 'ufd' [-Wunused-parameter]
static inline struct bpf_prog *bpf_prog_get(u32 ufd)
^
include/linux/bpf.h:1668:58: warning: unused parameter 'ufd' [-Wunused-parameter]
static inline struct bpf_prog *bpf_prog_get_type_dev(u32 ufd,
^
include/linux/bpf.h:1669:31: warning: unused parameter 'type' [-Wunused-parameter]
enum bpf_prog_type type,
^
include/linux/bpf.h:1670:17: warning: unused parameter 'attach_drv' [-Wunused-parameter]
bool attach_drv)
^
include/linux/bpf.h:1675:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_add(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1675:60: warning: unused parameter 'i' [-Wunused-parameter]
static inline void bpf_prog_add(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1679:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_sub(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1679:60: warning: unused parameter 'i' [-Wunused-parameter]
static inline void bpf_prog_sub(struct bpf_prog *prog, int i)
^
include/linux/bpf.h:1683:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_put(struct bpf_prog *prog)
^
include/linux/bpf.h:1687:50: warning: unused parameter 'prog' [-Wunused-parameter]
static inline void bpf_prog_inc(struct bpf_prog *prog)
^
include/linux/bpf.h:1692:40: warning: unused parameter 'prog' [-Wunused-parameter]
bpf_prog_inc_not_zero(struct bpf_prog *prog)
^
include/linux/bpf.h:1697:51: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
^
include/linux/bpf.h:1697:76: warning: unused parameter 'type' [-Wunused-parameter]
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
^
include/linux/bpf.h:1698:33: warning: unused parameter 'ops' [-Wunused-parameter]
const struct bpf_link_ops *ops,
^
include/linux/bpf.h:1699:23: warning: unused parameter 'prog' [-Wunused-parameter]
struct bpf_prog *prog)
^
include/linux/bpf.h:1703:51: warning: unused parameter 'link' [-Wunused-parameter]
static inline int bpf_link_prime(struct bpf_link *link,
^
include/linux/bpf.h:1704:30: warning: unused parameter 'primer' [-Wunused-parameter]
struct bpf_link_primer *primer)
^
include/linux/bpf.h:1709:59: warning: unused parameter 'primer' [-Wunused-parameter]
static inline int bpf_link_settle(struct bpf_link_primer *primer)
^
include/linux/bpf.h:1714:61: warning: unused parameter 'primer' [-Wunused-parameter]
static inline void bpf_link_cleanup(struct bpf_link_primer *primer)
^
include/linux/bpf.h:1718:50: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_inc(struct bpf_link *link)
^
include/linux/bpf.h:1722:50: warning: unused parameter 'link' [-Wunused-parameter]
static inline void bpf_link_put(struct bpf_link *link)
^
include/linux/bpf.h:1726:55: warning: unused parameter 'pathname' [-Wunused-parameter]
static inline int bpf_obj_get_user(const char __user *pathname, int flags)
^
include/linux/bpf.h:1726:69: warning: unused parameter 'flags' [-Wunused-parameter]
static inline int bpf_obj_get_user(const char __user *pathname, int flags)
^
include/linux/bpf.h:1731:58: warning: unused parameter 'map' [-Wunused-parameter]
static inline bool dev_map_can_have_prog(struct bpf_map *map)
^
include/linux/bpf.h:1745:40: warning: unused parameter 'dev' [-Wunused-parameter]
int dev_xdp_enqueue(struct net_device *dev, struct xdp_buff *xdp,
^
include/linux/bpf.h:1745:62: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_xdp_enqueue(struct net_device *dev, struct xdp_buff *xdp,
^
include/linux/bpf.h:1746:26: warning: unused parameter 'dev_rx' [-Wunused-parameter]
struct net_device *dev_rx)
^
include/linux/bpf.h:1752:45: warning: unused parameter 'dst' [-Wunused-parameter]
int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_buff *xdp,
^
include/linux/bpf.h:1752:67: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_buff *xdp,
^
include/linux/bpf.h:1753:26: warning: unused parameter 'dev_rx' [-Wunused-parameter]
struct net_device *dev_rx)
^
include/linux/bpf.h:1759:44: warning: unused parameter 'xdp' [-Wunused-parameter]
int dev_map_enqueue_multi(struct xdp_buff *xdp, struct net_device *dev_rx,
^
include/linux/bpf.h:1759:68: warning: unused parameter 'dev_rx' [-Wunused-parameter]
int dev_map_enqueue_multi(struct xdp_buff *xdp, struct net_device *dev_rx,
^
include/linux/bpf.h:1760:22: warning: unused parameter 'map' [-Wunused-parameter]
struct bpf_map *map, bool exclude_ingress)
..
vim +/new_ctx +1152 include/linux/bpf.h
988
989 #if defined(CONFIG_BPF_JIT) && defined(CONFIG_BPF_SYSCALL)
990 #define BPF_MODULE_OWNER ((void *)((0xeB9FUL << 2) + POISON_POINTER_DELTA))
991 const struct bpf_struct_ops *bpf_struct_ops_find(u32 type_id);
992 void bpf_struct_ops_init(struct btf *btf, struct bpf_verifier_log *log);
993 bool bpf_struct_ops_get(const void *kdata);
994 void bpf_struct_ops_put(const void *kdata);
995 int bpf_struct_ops_map_sys_lookup_elem(struct bpf_map *map, void *key,
996 void *value);
997 static inline bool bpf_try_module_get(const void *data, struct module *owner)
998 {
999 if (owner == BPF_MODULE_OWNER)
1000 return bpf_struct_ops_get(data);
1001 else
1002 return try_module_get(owner);
1003 }
1004 static inline void bpf_module_put(const void *data, struct module *owner)
1005 {
1006 if (owner == BPF_MODULE_OWNER)
1007 bpf_struct_ops_put(data);
1008 else
1009 module_put(owner);
1010 }
1011 #else
1012 static inline const struct bpf_struct_ops *bpf_struct_ops_find(u32 type_id)
1013 {
1014 return NULL;
1015 }
1016 static inline void bpf_struct_ops_init(struct btf *btf,
1017 struct bpf_verifier_log *log)
1018 {
1019 }
1020 static inline bool bpf_try_module_get(const void *data, struct module *owner)
1021 {
1022 return try_module_get(owner);
1023 }
1024 static inline void bpf_module_put(const void *data, struct module *owner)
1025 {
1026 module_put(owner);
1027 }
> 1028 static inline int bpf_struct_ops_map_sys_lookup_elem(struct bpf_map *map,
> 1029 void *key,
1030 void *value)
1031 {
1032 return -EINVAL;
1033 }
1034 #endif
1035
1036 struct bpf_array {
1037 struct bpf_map map;
1038 u32 elem_size;
1039 u32 index_mask;
1040 struct bpf_array_aux *aux;
1041 union {
1042 char value[0] __aligned(8);
1043 void *ptrs[0] __aligned(8);
1044 void __percpu *pptrs[0] __aligned(8);
1045 };
1046 };
1047
1048 #define BPF_COMPLEXITY_LIMIT_INSNS 1000000 /* yes. 1M insns */
1049 #define MAX_TAIL_CALL_CNT 32
1050
1051 #define BPF_F_ACCESS_MASK (BPF_F_RDONLY | \
1052 BPF_F_RDONLY_PROG | \
1053 BPF_F_WRONLY | \
1054 BPF_F_WRONLY_PROG)
1055
1056 #define BPF_MAP_CAN_READ BIT(0)
1057 #define BPF_MAP_CAN_WRITE BIT(1)
1058
1059 static inline u32 bpf_map_flags_to_cap(struct bpf_map *map)
1060 {
1061 u32 access_flags = map->map_flags & (BPF_F_RDONLY_PROG | BPF_F_WRONLY_PROG);
1062
1063 /* Combination of BPF_F_RDONLY_PROG | BPF_F_WRONLY_PROG is
1064 * not possible.
1065 */
1066 if (access_flags & BPF_F_RDONLY_PROG)
1067 return BPF_MAP_CAN_READ;
1068 else if (access_flags & BPF_F_WRONLY_PROG)
1069 return BPF_MAP_CAN_WRITE;
1070 else
1071 return BPF_MAP_CAN_READ | BPF_MAP_CAN_WRITE;
1072 }
1073
1074 static inline bool bpf_map_flags_access_ok(u32 access_flags)
1075 {
1076 return (access_flags & (BPF_F_RDONLY_PROG | BPF_F_WRONLY_PROG)) !=
1077 (BPF_F_RDONLY_PROG | BPF_F_WRONLY_PROG);
1078 }
1079
1080 struct bpf_event_entry {
1081 struct perf_event *event;
1082 struct file *perf_file;
1083 struct file *map_file;
1084 struct rcu_head rcu;
1085 };
1086
1087 bool bpf_prog_array_compatible(struct bpf_array *array, const struct bpf_prog *fp);
1088 int bpf_prog_calc_tag(struct bpf_prog *fp);
1089
1090 const struct bpf_func_proto *bpf_get_trace_printk_proto(void);
1091
1092 typedef unsigned long (*bpf_ctx_copy_t)(void *dst, const void *src,
1093 unsigned long off, unsigned long len);
1094 typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type type,
1095 const struct bpf_insn *src,
1096 struct bpf_insn *dst,
1097 struct bpf_prog *prog,
1098 u32 *target_size);
1099
1100 u64 bpf_event_output(struct bpf_map *map, u64 flags, void *meta, u64 meta_size,
1101 void *ctx, u64 ctx_size, bpf_ctx_copy_t ctx_copy);
1102
1103 /* an array of programs to be executed under rcu_lock.
1104 *
1105 * Typical usage:
1106 * ret = BPF_PROG_RUN_ARRAY(&bpf_prog_array, ctx, bpf_prog_run);
1107 *
1108 * the structure returned by bpf_prog_array_alloc() should be populated
1109 * with program pointers and the last pointer must be NULL.
1110 * The user has to keep refcnt on the program and make sure the program
1111 * is removed from the array before bpf_prog_put().
1112 * The 'struct bpf_prog_array *' should only be replaced with xchg()
1113 * since other cpus are walking the array of pointers in parallel.
1114 */
1115 struct bpf_prog_array_item {
1116 struct bpf_prog *prog;
1117 struct bpf_cgroup_storage *cgroup_storage[MAX_BPF_CGROUP_STORAGE_TYPE];
1118 };
1119
1120 struct bpf_prog_array {
1121 struct rcu_head rcu;
1122 struct bpf_prog_array_item items[];
1123 };
1124
1125 struct bpf_prog_array *bpf_prog_array_alloc(u32 prog_cnt, gfp_t flags);
1126 void bpf_prog_array_free(struct bpf_prog_array *progs);
1127 int bpf_prog_array_length(struct bpf_prog_array *progs);
1128 bool bpf_prog_array_is_empty(struct bpf_prog_array *array);
1129 int bpf_prog_array_copy_to_user(struct bpf_prog_array *progs,
1130 __u32 __user *prog_ids, u32 cnt);
1131
1132 void bpf_prog_array_delete_safe(struct bpf_prog_array *progs,
1133 struct bpf_prog *old_prog);
1134 int bpf_prog_array_delete_safe_at(struct bpf_prog_array *array, int index);
1135 int bpf_prog_array_update_at(struct bpf_prog_array *array, int index,
1136 struct bpf_prog *prog);
1137 int bpf_prog_array_copy_info(struct bpf_prog_array *array,
1138 u32 *prog_ids, u32 request_cnt,
1139 u32 *prog_cnt);
1140 int bpf_prog_array_copy(struct bpf_prog_array *old_array,
1141 struct bpf_prog *exclude_prog,
1142 struct bpf_prog *include_prog,
1143 struct bpf_prog_array **new_array);
1144
1145 struct bpf_run_ctx {};
1146
1147 struct bpf_cg_run_ctx {
1148 struct bpf_run_ctx run_ctx;
1149 const struct bpf_prog_array_item *prog_item;
1150 };
1151
> 1152 static inline struct bpf_run_ctx *bpf_set_run_ctx(struct bpf_run_ctx *new_ctx)
1153 {
1154 struct bpf_run_ctx *old_ctx = NULL;
1155
1156 #ifdef CONFIG_BPF_SYSCALL
1157 old_ctx = current->bpf_ctx;
1158 current->bpf_ctx = new_ctx;
1159 #endif
1160 return old_ctx;
1161 }
1162
> 1163 static inline void bpf_reset_run_ctx(struct bpf_run_ctx *old_ctx)
1164 {
1165 #ifdef CONFIG_BPF_SYSCALL
1166 current->bpf_ctx = old_ctx;
1167 #endif
1168 }
1169
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH 2/4] dt-bindings: sound: add rockchip i2s-tdm binding
by kernel test robot
Hi Nicolas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on rockchip/for-next]
[also build test ERROR on asoc/for-next sound/for-next v5.14-rc6 next-20210816]
[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/Nicolas-Frattaroli/Rockchip-I2S-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 11.2.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
# https://github.com/0day-ci/linux/commit/3b075f992be5028cbbe3ab1fbdf95bb63...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nicolas-Frattaroli/Rockchip-I2S-TDM-controller/20210817-181921
git checkout 3b075f992be5028cbbe3ab1fbdf95bb63bbdac0c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=m68k
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 >>):
sound/soc/rockchip/rockchip_i2s_tdm.c: In function 'rockchip_snd_xfer_reset_assert':
>> sound/soc/rockchip/rockchip_i2s_tdm.c:198:25: error: implicit declaration of function 'writeq'; did you mean 'writel'? [-Werror=implicit-function-declaration]
198 | writeq(val, addr);
| ^~~~~~
| writel
cc1: some warnings being treated as errors
vim +198 sound/soc/rockchip/rockchip_i2s_tdm.c
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 167
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 168 static void rockchip_snd_xfer_reset_assert(struct rk_i2s_tdm_dev *i2s_tdm,
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 169 int tx_bank, int tx_offset,
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 170 int rx_bank, int rx_offset)
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 171 {
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 172 void __iomem *cru_reset, *addr;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 173 unsigned long flags;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 174 u64 val;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 175
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 176 cru_reset = i2s_tdm->cru_base + i2s_tdm->soc_data->softrst_offset;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 177
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 178 switch (abs(tx_bank - rx_bank)) {
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 179 case 0:
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 180 writel(BIT(tx_offset) | BIT(rx_offset) |
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 181 (BIT(tx_offset) << 16) | (BIT(rx_offset) << 16),
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 182 cru_reset + (tx_bank * 4));
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 183 break;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 184 case 1:
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 185 if (tx_bank < rx_bank) {
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 186 val = BIT(rx_offset) | (BIT(rx_offset) << 16);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 187 val <<= 32;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 188 val |= BIT(tx_offset) | (BIT(tx_offset) << 16);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 189 addr = cru_reset + (tx_bank * 4);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 190 } else {
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 191 val = BIT(tx_offset) | (BIT(tx_offset) << 16);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 192 val <<= 32;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 193 val |= BIT(rx_offset) | (BIT(rx_offset) << 16);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 194 addr = cru_reset + (rx_bank * 4);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 195 }
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 196
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 197 if (IS_ALIGNED((uintptr_t)addr, 8)) {
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 @198 writeq(val, addr);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 199 break;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 200 }
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 201 fallthrough;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 202 default:
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 203 local_irq_save(flags);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 204 writel(BIT(tx_offset) | (BIT(tx_offset) << 16),
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 205 cru_reset + (tx_bank * 4));
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 206 writel(BIT(rx_offset) | (BIT(rx_offset) << 16),
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 207 cru_reset + (rx_bank * 4));
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 208 local_irq_restore(flags);
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 209 break;
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 210 }
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 211 }
2a497b883a8aaf Nicolas Frattaroli 2021-08-17 212
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[ti:ti-rt-linux-5.10.y 6651/6833] net/core/sock.c:3179:35: error: 'SCM_REDUNDANT' undeclared
by kernel test robot
Hi WingMan,
FYI, the error/warning still remains.
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.10.y
head: ac3657d2050406e974383b1490184f42a06b73cc
commit: 89b354a68fd094a218c79af743e60299045f33b5 [6651/6833] net: socket: Pass on redundant net info to sock_recv_errqueue
config: alpha-randconfig-r023-20210817 (attached as .config)
compiler: alpha-linux-gcc (GCC) 11.2.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
git remote add ti git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
git fetch --no-tags ti ti-rt-linux-5.10.y
git checkout 89b354a68fd094a218c79af743e60299045f33b5
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash net/core/
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/net/inet_sock.h:22,
from include/net/ip.h:28,
from include/linux/errqueue.h:6,
from net/core/sock.c:91:
include/net/sock.h: In function 'sock_recv_redundant_info':
include/net/sock.h:2525:43: error: 'SCM_REDUNDANT' undeclared (first use in this function)
2525 | put_cmsg(msg, SOL_SOCKET, SCM_REDUNDANT, sizeof(*sred), sred);
| ^~~~~~~~~~~~~
include/net/sock.h:2525:43: note: each undeclared identifier is reported only once for each function it appears in
net/core/sock.c: In function 'sock_recv_errqueue':
>> net/core/sock.c:3179:35: error: 'SCM_REDUNDANT' undeclared (first use in this function)
3179 | put_cmsg(msg, SOL_SOCKET, SCM_REDUNDANT, sizeof(*sred), sred);
| ^~~~~~~~~~~~~
vim +/SCM_REDUNDANT +3179 net/core/sock.c
3153
3154 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
3155 int level, int type)
3156 {
3157 struct sock_exterr_skb *serr;
3158 struct sk_buff *skb;
3159 int copied, err;
3160 struct skb_redundant_info *sred;
3161
3162 err = -EAGAIN;
3163 skb = sock_dequeue_err_skb(sk);
3164 if (skb == NULL)
3165 goto out;
3166
3167 copied = skb->len;
3168 if (copied > len) {
3169 msg->msg_flags |= MSG_TRUNC;
3170 copied = len;
3171 }
3172 err = skb_copy_datagram_msg(skb, 0, msg, copied);
3173 if (err)
3174 goto out_free_skb;
3175
3176 sock_recv_timestamp(msg, sk, skb);
3177
3178 sred = skb_redinfo(skb);
> 3179 put_cmsg(msg, SOL_SOCKET, SCM_REDUNDANT, sizeof(*sred), sred);
3180
3181 serr = SKB_EXT_ERR(skb);
3182 put_cmsg(msg, level, type, sizeof(serr->ee), &serr->ee);
3183
3184 msg->msg_flags |= MSG_ERRQUEUE;
3185 err = copied;
3186
3187 out_free_skb:
3188 kfree_skb(skb);
3189 out:
3190 return err;
3191 }
3192 EXPORT_SYMBOL(sock_recv_errqueue);
3193
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month