From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6377384964190825348==" MIME-Version: 1.0 From: kernel test robot Subject: Re: [PATCH v2] virtio_blk: Add support for lifetime feature Date: Wed, 21 Apr 2021 23:59:21 +0800 Message-ID: <202104212344.T6aJYqNQ-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============6377384964190825348== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org In-Reply-To: <20210416194709.155497-1-egranata@google.com> References: <20210416194709.155497-1-egranata@google.com> TO: Enrico Granata Hi Enrico, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on block/for-next] [also build test WARNING on linus/master v5.12-rc8] [cannot apply to vhost/linux-next next-20210421] [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/Enrico-Granata/virtio_blk-= Add-support-for-lifetime-feature/20210417-034754 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.g= it for-next :::::: branch date: 5 days ago :::::: commit date: 5 days ago config: i386-randconfig-m021-20210421 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/block/virtio_blk.c:256 virtio_queue_rq() error: uninitialized symbo= l 'type'. Old smatch warnings: drivers/block/virtio_blk.c:258 virtio_queue_rq() error: uninitialized symbo= l 'type'. vim +/type +256 drivers/block/virtio_blk.c 944e7c87967c82 Jens Axboe 2018-11-26 216 = fc17b6534eb839 Christoph Hellwig 2017-06-03 217 static blk_status_t virt= io_queue_rq(struct blk_mq_hw_ctx *hctx, 74c450521dd8d2 Jens Axboe 2014-10-29 218 const struct blk_m= q_queue_data *bd) e467cde238184d Rusty Russell 2007-10-22 219 { 1cf7e9c68fe842 Jens Axboe 2013-11-01 220 struct virtio_blk *vblk= =3D hctx->queue->queuedata; 74c450521dd8d2 Jens Axboe 2014-10-29 221 struct request *req =3D= bd->rq; 9d74e25737d73e Christoph Hellwig 2014-04-14 222 struct virtblk_req *vbr= =3D blk_mq_rq_to_pdu(req); 1cf7e9c68fe842 Jens Axboe 2013-11-01 223 unsigned long flags; 20af3cfd20145f Paolo Bonzini 2013-03-20 224 unsigned int num; 6a27b656fc0210 Ming Lei 2014-06-26 225 int qid =3D hctx->queue= _num; 5261b85e586afe Rusty Russell 2014-03-13 226 int err; e8edca6f7f9223 Ming Lei 2014-05-30 227 bool notify =3D false; 1f23816b8eb8fd Changpeng Liu 2018-11-01 228 bool unmap =3D false; aebf526b53aea1 Christoph Hellwig 2017-01-31 229 u32 type; e467cde238184d Rusty Russell 2007-10-22 230 = 1cf7e9c68fe842 Jens Axboe 2013-11-01 231 BUG_ON(req->nr_phys_seg= ments + 2 > vblk->sg_elems); e467cde238184d Rusty Russell 2007-10-22 232 = aebf526b53aea1 Christoph Hellwig 2017-01-31 233 switch (req_op(req)) { aebf526b53aea1 Christoph Hellwig 2017-01-31 234 case REQ_OP_READ: aebf526b53aea1 Christoph Hellwig 2017-01-31 235 case REQ_OP_WRITE: aebf526b53aea1 Christoph Hellwig 2017-01-31 236 type =3D 0; f1b0ef06260271 Christoph Hellwig 2009-09-17 237 break; aebf526b53aea1 Christoph Hellwig 2017-01-31 238 case REQ_OP_FLUSH: aebf526b53aea1 Christoph Hellwig 2017-01-31 239 type =3D VIRTIO_BLK_T_= FLUSH; f1b0ef06260271 Christoph Hellwig 2009-09-17 240 break; 1f23816b8eb8fd Changpeng Liu 2018-11-01 241 case REQ_OP_DISCARD: 1f23816b8eb8fd Changpeng Liu 2018-11-01 242 type =3D VIRTIO_BLK_T_= DISCARD; 1f23816b8eb8fd Changpeng Liu 2018-11-01 243 break; 1f23816b8eb8fd Changpeng Liu 2018-11-01 244 case REQ_OP_WRITE_ZEROE= S: 1f23816b8eb8fd Changpeng Liu 2018-11-01 245 type =3D VIRTIO_BLK_T_= WRITE_ZEROES; 1f23816b8eb8fd Changpeng Liu 2018-11-01 246 unmap =3D !(req->cmd_f= lags & REQ_NOUNMAP); 1f23816b8eb8fd Changpeng Liu 2018-11-01 247 break; aebf526b53aea1 Christoph Hellwig 2017-01-31 248 case REQ_OP_DRV_IN: fc90f60f9bc3b5 Enrico Granata 2021-04-16 249 break; /* type already= set for custom requests */ f1b0ef06260271 Christoph Hellwig 2009-09-17 250 default: aebf526b53aea1 Christoph Hellwig 2017-01-31 251 WARN_ON_ONCE(1); fc17b6534eb839 Christoph Hellwig 2017-06-03 252 return BLK_STS_IOERR; dd40e456a40ebb FUJITA Tomonori 2010-07-03 253 } e467cde238184d Rusty Russell 2007-10-22 254 = fc90f60f9bc3b5 Enrico Granata 2021-04-16 255 if (req_op(req) !=3D RE= Q_OP_DRV_IN) aebf526b53aea1 Christoph Hellwig 2017-01-31 @256 vbr->out_hdr.type =3D = cpu_to_virtio32(vblk->vdev, type); fc90f60f9bc3b5 Enrico Granata 2021-04-16 257 = aebf526b53aea1 Christoph Hellwig 2017-01-31 258 vbr->out_hdr.sector =3D= type ? aebf526b53aea1 Christoph Hellwig 2017-01-31 259 0 : cpu_to_virtio64(vb= lk->vdev, blk_rq_pos(req)); aebf526b53aea1 Christoph Hellwig 2017-01-31 260 vbr->out_hdr.ioprio =3D= cpu_to_virtio32(vblk->vdev, req_get_ioprio(req)); aebf526b53aea1 Christoph Hellwig 2017-01-31 261 = e2490073cd7c3d Christoph Hellwig 2014-09-13 262 blk_mq_start_request(re= q); e2490073cd7c3d Christoph Hellwig 2014-09-13 263 = 1f23816b8eb8fd Changpeng Liu 2018-11-01 264 if (type =3D=3D VIRTIO_= BLK_T_DISCARD || type =3D=3D VIRTIO_BLK_T_WRITE_ZEROES) { 1f23816b8eb8fd Changpeng Liu 2018-11-01 265 err =3D virtblk_setup_= discard_write_zeroes(req, unmap); 1f23816b8eb8fd Changpeng Liu 2018-11-01 266 if (err) 1f23816b8eb8fd Changpeng Liu 2018-11-01 267 return BLK_STS_RESOUR= CE; 1f23816b8eb8fd Changpeng Liu 2018-11-01 268 } 1f23816b8eb8fd Changpeng Liu 2018-11-01 269 = 85dada09eeb31c Christoph Hellwig 2017-01-28 270 num =3D blk_rq_map_sg(h= ctx->queue, req, vbr->sg); 1cde26f928863d Hannes Reinecke 2009-05-18 271 if (num) { 85dada09eeb31c Christoph Hellwig 2017-01-28 272 if (rq_data_dir(req) = =3D=3D WRITE) 19c1c5a64c3b8e Michael S. Tsirkin 2014-10-07 273 vbr->out_hdr.type |= =3D cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_OUT); 20af3cfd20145f Paolo Bonzini 2013-03-20 274 else 19c1c5a64c3b8e Michael S. Tsirkin 2014-10-07 275 vbr->out_hdr.type |= =3D cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_IN); e467cde238184d Rusty Russell 2007-10-22 276 } e467cde238184d Rusty Russell 2007-10-22 277 = 6a27b656fc0210 Ming Lei 2014-06-26 278 spin_lock_irqsave(&vblk= ->vqs[qid].lock, flags); 97b50a654d5de5 Christoph Hellwig 2017-01-28 279 err =3D virtblk_add_req= (vblk->vqs[qid].vq, vbr, vbr->sg, num); 5261b85e586afe Rusty Russell 2014-03-13 280 if (err) { 6a27b656fc0210 Ming Lei 2014-06-26 281 virtqueue_kick(vblk->v= qs[qid].vq); f5f6b95c72f7f8 Halil Pasic 2020-02-13 282 /* Don't stop the queu= e if -ENOMEM: we may have failed to f5f6b95c72f7f8 Halil Pasic 2020-02-13 283 * bounce the buffer d= ue to global resource outage. f5f6b95c72f7f8 Halil Pasic 2020-02-13 284 */ f5f6b95c72f7f8 Halil Pasic 2020-02-13 285 if (err =3D=3D -ENOSPC) 1cf7e9c68fe842 Jens Axboe 2013-11-01 286 blk_mq_stop_hw_queue(= hctx); 6a27b656fc0210 Ming Lei 2014-06-26 287 spin_unlock_irqrestore= (&vblk->vqs[qid].lock, flags); 3d973b2e9a6259 Halil Pasic 2020-02-13 288 switch (err) { 3d973b2e9a6259 Halil Pasic 2020-02-13 289 case -ENOSPC: 86ff7c2a80cd35 Ming Lei 2018-01-30 290 return BLK_STS_DEV_RE= SOURCE; 3d973b2e9a6259 Halil Pasic 2020-02-13 291 case -ENOMEM: 3d973b2e9a6259 Halil Pasic 2020-02-13 292 return BLK_STS_RESOUR= CE; 3d973b2e9a6259 Halil Pasic 2020-02-13 293 default: fc17b6534eb839 Christoph Hellwig 2017-06-03 294 return BLK_STS_IOERR; e467cde238184d Rusty Russell 2007-10-22 295 } 3d973b2e9a6259 Halil Pasic 2020-02-13 296 } e467cde238184d Rusty Russell 2007-10-22 297 = 74c450521dd8d2 Jens Axboe 2014-10-29 298 if (bd->last && virtque= ue_kick_prepare(vblk->vqs[qid].vq)) e8edca6f7f9223 Ming Lei 2014-05-30 299 notify =3D true; 6a27b656fc0210 Ming Lei 2014-06-26 300 spin_unlock_irqrestore(= &vblk->vqs[qid].lock, flags); e8edca6f7f9223 Ming Lei 2014-05-30 301 = e8edca6f7f9223 Ming Lei 2014-05-30 302 if (notify) 6a27b656fc0210 Ming Lei 2014-06-26 303 virtqueue_notify(vblk-= >vqs[qid].vq); fc17b6534eb839 Christoph Hellwig 2017-06-03 304 return BLK_STS_OK; a98755c559e0e9 Asias He 2012-08-08 305 } a98755c559e0e9 Asias He 2012-08-08 306 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============6377384964190825348== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============6377384964190825348==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8331631544239704853==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: Re: [PATCH v2] virtio_blk: Add support for lifetime feature Date: Thu, 29 Apr 2021 13:04:45 +0300 Message-ID: <202104212344.T6aJYqNQ-lkp@intel.com> In-Reply-To: <20210416194709.155497-1-egranata@google.com> List-Id: --===============8331631544239704853== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Enrico, url: https://github.com/0day-ci/linux/commits/Enrico-Granata/virtio_blk-= Add-support-for-lifetime-feature/20210417-034754 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.g= it for-next config: i386-randconfig-m021-20210421 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/block/virtio_blk.c:256 virtio_queue_rq() error: uninitialized symbo= l 'type'. Old smatch warnings: drivers/block/virtio_blk.c:258 virtio_queue_rq() error: uninitialized symbo= l 'type'. vim +/type +256 drivers/block/virtio_blk.c fc17b6534eb839 Christoph Hellwig 2017-06-03 217 static blk_status_t virt= io_queue_rq(struct blk_mq_hw_ctx *hctx, 74c450521dd8d2 Jens Axboe 2014-10-29 218 const struct blk_m= q_queue_data *bd) e467cde238184d Rusty Russell 2007-10-22 219 { 1cf7e9c68fe842 Jens Axboe 2013-11-01 220 struct virtio_blk *vblk= =3D hctx->queue->queuedata; 74c450521dd8d2 Jens Axboe 2014-10-29 221 struct request *req =3D= bd->rq; 9d74e25737d73e Christoph Hellwig 2014-04-14 222 struct virtblk_req *vbr= =3D blk_mq_rq_to_pdu(req); 1cf7e9c68fe842 Jens Axboe 2013-11-01 223 unsigned long flags; 20af3cfd20145f Paolo Bonzini 2013-03-20 224 unsigned int num; 6a27b656fc0210 Ming Lei 2014-06-26 225 int qid =3D hctx->queue= _num; 5261b85e586afe Rusty Russell 2014-03-13 226 int err; e8edca6f7f9223 Ming Lei 2014-05-30 227 bool notify =3D false; 1f23816b8eb8fd Changpeng Liu 2018-11-01 228 bool unmap =3D false; aebf526b53aea1 Christoph Hellwig 2017-01-31 229 u32 type; e467cde238184d Rusty Russell 2007-10-22 230 = 1cf7e9c68fe842 Jens Axboe 2013-11-01 231 BUG_ON(req->nr_phys_seg= ments + 2 > vblk->sg_elems); e467cde238184d Rusty Russell 2007-10-22 232 = aebf526b53aea1 Christoph Hellwig 2017-01-31 233 switch (req_op(req)) { aebf526b53aea1 Christoph Hellwig 2017-01-31 234 case REQ_OP_READ: aebf526b53aea1 Christoph Hellwig 2017-01-31 235 case REQ_OP_WRITE: aebf526b53aea1 Christoph Hellwig 2017-01-31 236 type =3D 0; f1b0ef06260271 Christoph Hellwig 2009-09-17 237 break; aebf526b53aea1 Christoph Hellwig 2017-01-31 238 case REQ_OP_FLUSH: aebf526b53aea1 Christoph Hellwig 2017-01-31 239 type =3D VIRTIO_BLK_T_= FLUSH; f1b0ef06260271 Christoph Hellwig 2009-09-17 240 break; 1f23816b8eb8fd Changpeng Liu 2018-11-01 241 case REQ_OP_DISCARD: 1f23816b8eb8fd Changpeng Liu 2018-11-01 242 type =3D VIRTIO_BLK_T_= DISCARD; 1f23816b8eb8fd Changpeng Liu 2018-11-01 243 break; 1f23816b8eb8fd Changpeng Liu 2018-11-01 244 case REQ_OP_WRITE_ZEROE= S: 1f23816b8eb8fd Changpeng Liu 2018-11-01 245 type =3D VIRTIO_BLK_T_= WRITE_ZEROES; 1f23816b8eb8fd Changpeng Liu 2018-11-01 246 unmap =3D !(req->cmd_f= lags & REQ_NOUNMAP); 1f23816b8eb8fd Changpeng Liu 2018-11-01 247 break; aebf526b53aea1 Christoph Hellwig 2017-01-31 248 case REQ_OP_DRV_IN: fc90f60f9bc3b5 Enrico Granata 2021-04-16 249 break; /* type already= set for custom requests */ f1b0ef06260271 Christoph Hellwig 2009-09-17 250 default: aebf526b53aea1 Christoph Hellwig 2017-01-31 251 WARN_ON_ONCE(1); fc17b6534eb839 Christoph Hellwig 2017-06-03 252 return BLK_STS_IOERR; dd40e456a40ebb FUJITA Tomonori 2010-07-03 253 } e467cde238184d Rusty Russell 2007-10-22 254 = fc90f60f9bc3b5 Enrico Granata 2021-04-16 255 if (req_op(req) !=3D RE= Q_OP_DRV_IN) aebf526b53aea1 Christoph Hellwig 2017-01-31 @256 vbr->out_hdr.type =3D = cpu_to_virtio32(vblk->vdev, type); This is a false positive, and it fc90f60f9bc3b5 Enrico Granata 2021-04-16 257 = aebf526b53aea1 Christoph Hellwig 2017-01-31 258 vbr->out_hdr.sector =3D= type ? = ^^^^ ends up hiding this real bug because Smatch only prints one warning for these. :( aebf526b53aea1 Christoph Hellwig 2017-01-31 259 0 : cpu_to_virtio64(vb= lk->vdev, blk_rq_pos(req)); aebf526b53aea1 Christoph Hellwig 2017-01-31 260 vbr->out_hdr.ioprio =3D= cpu_to_virtio32(vblk->vdev, req_get_ioprio(req)); aebf526b53aea1 Christoph Hellwig 2017-01-31 261 = e2490073cd7c3d Christoph Hellwig 2014-09-13 262 blk_mq_start_request(re= q); e2490073cd7c3d Christoph Hellwig 2014-09-13 263 = 1f23816b8eb8fd Changpeng Liu 2018-11-01 264 if (type =3D=3D VIRTIO_= BLK_T_DISCARD || type =3D=3D VIRTIO_BLK_T_WRITE_ZEROES) { Used again here. 1f23816b8eb8fd Changpeng Liu 2018-11-01 265 err =3D virtblk_setup_= discard_write_zeroes(req, unmap); 1f23816b8eb8fd Changpeng Liu 2018-11-01 266 if (err) 1f23816b8eb8fd Changpeng Liu 2018-11-01 267 return BLK_STS_RESOUR= CE; 1f23816b8eb8fd Changpeng Liu 2018-11-01 268 } 1f23816b8eb8fd Changpeng Liu 2018-11-01 269 = 85dada09eeb31c Christoph Hellwig 2017-01-28 270 num =3D blk_rq_map_sg(h= ctx->queue, req, vbr->sg); 1cde26f928863d Hannes Reinecke 2009-05-18 271 if (num) { 85dada09eeb31c Christoph Hellwig 2017-01-28 272 if (rq_data_dir(req) = =3D=3D WRITE) 19c1c5a64c3b8e Michael S. Tsirkin 2014-10-07 273 vbr->out_hdr.type |= =3D cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_OUT); 20af3cfd20145f Paolo Bonzini 2013-03-20 274 else 19c1c5a64c3b8e Michael S. Tsirkin 2014-10-07 275 vbr->out_hdr.type |= =3D cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_IN); e467cde238184d Rusty Russell 2007-10-22 276 } e467cde238184d Rusty Russell 2007-10-22 277 = 6a27b656fc0210 Ming Lei 2014-06-26 278 spin_lock_irqsave(&vblk= ->vqs[qid].lock, flags); 97b50a654d5de5 Christoph Hellwig 2017-01-28 279 err =3D virtblk_add_req= (vblk->vqs[qid].vq, vbr, vbr->sg, num); 5261b85e586afe Rusty Russell 2014-03-13 280 if (err) { 6a27b656fc0210 Ming Lei 2014-06-26 281 virtqueue_kick(vblk->v= qs[qid].vq); f5f6b95c72f7f8 Halil Pasic 2020-02-13 282 /* Don't stop the queu= e if -ENOMEM: we may have failed to f5f6b95c72f7f8 Halil Pasic 2020-02-13 283 * bounce the buffer d= ue to global resource outage. f5f6b95c72f7f8 Halil Pasic 2020-02-13 284 */ f5f6b95c72f7f8 Halil Pasic 2020-02-13 285 if (err =3D=3D -ENOSPC) 1cf7e9c68fe842 Jens Axboe 2013-11-01 286 blk_mq_stop_hw_queue(= hctx); 6a27b656fc0210 Ming Lei 2014-06-26 287 spin_unlock_irqrestore= (&vblk->vqs[qid].lock, flags); 3d973b2e9a6259 Halil Pasic 2020-02-13 288 switch (err) { 3d973b2e9a6259 Halil Pasic 2020-02-13 289 case -ENOSPC: 86ff7c2a80cd35 Ming Lei 2018-01-30 290 return BLK_STS_DEV_RE= SOURCE; 3d973b2e9a6259 Halil Pasic 2020-02-13 291 case -ENOMEM: 3d973b2e9a6259 Halil Pasic 2020-02-13 292 return BLK_STS_RESOUR= CE; 3d973b2e9a6259 Halil Pasic 2020-02-13 293 default: fc17b6534eb839 Christoph Hellwig 2017-06-03 294 return BLK_STS_IOERR; e467cde238184d Rusty Russell 2007-10-22 295 } 3d973b2e9a6259 Halil Pasic 2020-02-13 296 } e467cde238184d Rusty Russell 2007-10-22 297 = 74c450521dd8d2 Jens Axboe 2014-10-29 298 if (bd->last && virtque= ue_kick_prepare(vblk->vqs[qid].vq)) e8edca6f7f9223 Ming Lei 2014-05-30 299 notify =3D true; 6a27b656fc0210 Ming Lei 2014-06-26 300 spin_unlock_irqrestore(= &vblk->vqs[qid].lock, flags); e8edca6f7f9223 Ming Lei 2014-05-30 301 = e8edca6f7f9223 Ming Lei 2014-05-30 302 if (notify) 6a27b656fc0210 Ming Lei 2014-06-26 303 virtqueue_notify(vblk-= >vqs[qid].vq); fc17b6534eb839 Christoph Hellwig 2017-06-03 304 return BLK_STS_OK; a98755c559e0e9 Asias He 2012-08-08 305 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============8331631544239704853==--