RE: [PATCH] nvme-pci: check req to prevent crash in nvme_handle_cqe()

From: Tianxianting
Date: Mon Aug 31 2020 - 08:44:27 EST


I am very sorry, I used the wrong patch file :(
I send it again. Please review, thanks.

-----Original Message-----
From: kernel test robot [mailto:lkp@xxxxxxxxx]
Sent: Monday, August 31, 2020 5:41 PM
To: tianxianting (RD) <tian.xianting@xxxxxxx>; kbusch@xxxxxxxxxx; axboe@xxxxxx; hch@xxxxxx; sagi@xxxxxxxxxxx
Cc: kbuild-all@xxxxxxxxxxxx; linux-nvme@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; tianxianting (RD) <tian.xianting@xxxxxxx>
Subject: Re: [PATCH] nvme-pci: check req to prevent crash in nvme_handle_cqe()

Hi Xianting,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v5.9-rc2]
[also build test ERROR on next-20200828] [cannot apply to linus/master v5.9-rc3] [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/Xianting-Tian/nvme-pci-check-req-to-prevent-crash-in-nvme_handle_cqe/20200831-155653
base: d012a7190fc1fd72ed48911e77ca97ba4521bccd
config: parisc-randconfig-r004-20200831 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/nvme/host/pci.c: In function 'nvme_handle_cqe':
>> drivers/nvme/host/pci.c:3244: error: unterminated argument list invoking macro "dev_warn"
3244 | module_exit(nvme_exit);
|
>> drivers/nvme/host/pci.c:966:3: error: 'dev_warn' undeclared (first use in this function); did you mean '_dev_warn'?
966 | dev_warn(nvmeq->dev->ctrl.device,
| ^~~~~~~~
| _dev_warn
drivers/nvme/host/pci.c:966:3: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/nvme/host/pci.c:966:11: error: expected ';' at end of input
966 | dev_warn(nvmeq->dev->ctrl.device,
| ^
| ;
......
3244 | module_exit(nvme_exit);
|
>> drivers/nvme/host/pci.c:966:3: error: expected declaration or
>> statement at end of input
966 | dev_warn(nvmeq->dev->ctrl.device,
| ^~~~~~~~
>> drivers/nvme/host/pci.c:966:3: error: expected declaration or
>> statement at end of input
drivers/nvme/host/pci.c: At top level:
drivers/nvme/host/pci.c:105:13: warning: 'nvme_dev_disable' declared 'static' but never defined [-Wunused-function]
105 | static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown);
| ^~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:106:13: warning: '__nvme_disable_io_queues' declared 'static' but never defined [-Wunused-function]
106 | static bool __nvme_disable_io_queues(struct nvme_dev *dev, u8 opcode);
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:901:13: warning: 'nvme_pci_complete_rq' defined but not used [-Wunused-function]
901 | static void nvme_pci_complete_rq(struct request *req)
| ^~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:853:21: warning: 'nvme_queue_rq' defined but not used [-Wunused-function]
853 | static blk_status_t nvme_queue_rq(struct blk_mq_hw_ctx *hctx,
| ^~~~~~~~~~~~~
drivers/nvme/host/pci.c:484:13: warning: 'nvme_commit_rqs' defined but not used [-Wunused-function]
484 | static void nvme_commit_rqs(struct blk_mq_hw_ctx *hctx)
| ^~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:427:12: warning: 'nvme_pci_map_queues' defined but not used [-Wunused-function]
427 | static int nvme_pci_map_queues(struct blk_mq_tag_set *set)
| ^~~~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:403:12: warning: 'nvme_init_request' defined but not used [-Wunused-function]
403 | static int nvme_init_request(struct blk_mq_tag_set *set, struct request *req,
| ^~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:392:12: warning: 'nvme_init_hctx' defined but not used [-Wunused-function]
392 | static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
| ^~~~~~~~~~~~~~
drivers/nvme/host/pci.c:379:12: warning: 'nvme_admin_init_hctx' defined but not used [-Wunused-function]
379 | static int nvme_admin_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
| ^~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:371:15: warning: 'nvme_pci_iod_alloc_size' defined but not used [-Wunused-function]
371 | static size_t nvme_pci_iod_alloc_size(void)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:294:13: warning: 'nvme_dbbuf_set' defined but not used [-Wunused-function]
294 | static void nvme_dbbuf_set(struct nvme_dev *dev)
| ^~~~~~~~~~~~~~
drivers/nvme/host/pci.c:282:13: warning: 'nvme_dbbuf_init' defined but not used [-Wunused-function]
282 | static void nvme_dbbuf_init(struct nvme_dev *dev,
| ^~~~~~~~~~~~~~~
drivers/nvme/host/pci.c:241:12: warning: 'nvme_dbbuf_dma_alloc' defined but not used [-Wunused-function]
241 | static int nvme_dbbuf_dma_alloc(struct nvme_dev *dev)
| ^~~~~~~~~~~~~~~~~~~~

# https://github.com/0day-ci/linux/commit/e3761e6c554adb55d40e176915df361ad9e272e1
git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Xianting-Tian/nvme-pci-check-req-to-prevent-crash-in-nvme_handle_cqe/20200831-155653
git checkout e3761e6c554adb55d40e176915df361ad9e272e1
vim +/dev_warn +3244 drivers/nvme/host/pci.c

b60503ba432b16 drivers/block/nvme.c Matthew Wilcox 2011-01-20 3239
b60503ba432b16 drivers/block/nvme.c Matthew Wilcox 2011-01-20 3240 MODULE_AUTHOR("Matthew Wilcox <willy@xxxxxxxxxxxxxxx>");
b60503ba432b16 drivers/block/nvme.c Matthew Wilcox 2011-01-20 3241 MODULE_LICENSE("GPL");
c78b47136f7ade drivers/block/nvme-core.c Keith Busch 2014-11-21 3242 MODULE_VERSION("1.0");
b60503ba432b16 drivers/block/nvme.c Matthew Wilcox 2011-01-20 3243 module_init(nvme_init);
b60503ba432b16 drivers/block/nvme.c Matthew Wilcox 2011-01-20 @3244 module_exit(nvme_exit);

---
0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx