public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret'
@ 2024-09-16  7:35 Dan Carpenter
  2024-09-16  8:40 ` Michael S. Tsirkin
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2024-09-16  7:35 UTC (permalink / raw)
  To: oe-kbuild, Srujana Challa
  Cc: lkp, oe-kbuild-all, linux-kernel, Michael S. Tsirkin,
	Vamsi Attunuru, Shijith Thotton, Nithin Dabilpuram

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   98f7e32f20d28ec452afb208f9cffc08448a2652
commit: 8b6c724cdab85d8923dd8c474a5a9464228379c5 virtio: vdpa: vDPA driver for Marvell OCTEON DPU devices
date:   10 weeks ago
config: i386-randconfig-141-20240912 (https://download.01.org/0day-ci/archive/20240916/202409160431.bRhZWhiU-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202409160431.bRhZWhiU-lkp@intel.com/

New smatch warnings:
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret'
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:478 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer

Old smatch warnings:
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:479 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:480 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:481 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
drivers/vdpa/octeon_ep/octep_vdpa_hw.c:514 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer

vim +/ret +143 drivers/vdpa/octeon_ep/octep_vdpa_hw.c

8b6c724cdab85d Srujana Challa 2024-06-14  102  static int octep_process_mbox(struct octep_hw *oct_hw, u16 id, u16 qid, void *buffer,
8b6c724cdab85d Srujana Challa 2024-06-14  103  			      u32 buf_size, bool write)
8b6c724cdab85d Srujana Challa 2024-06-14  104  {
8b6c724cdab85d Srujana Challa 2024-06-14  105  	struct octep_mbox __iomem *mbox = octep_get_mbox(oct_hw);
8b6c724cdab85d Srujana Challa 2024-06-14  106  	struct pci_dev *pdev = oct_hw->pdev;
8b6c724cdab85d Srujana Challa 2024-06-14  107  	u32 *p = (u32 *)buffer;
8b6c724cdab85d Srujana Challa 2024-06-14  108  	u16 data_wds;
8b6c724cdab85d Srujana Challa 2024-06-14  109  	int ret, i;
8b6c724cdab85d Srujana Challa 2024-06-14  110  	u32 val;
8b6c724cdab85d Srujana Challa 2024-06-14  111  
8b6c724cdab85d Srujana Challa 2024-06-14  112  	if (!IS_ALIGNED(buf_size, 4))
8b6c724cdab85d Srujana Challa 2024-06-14  113  		return -EINVAL;
8b6c724cdab85d Srujana Challa 2024-06-14  114  
8b6c724cdab85d Srujana Challa 2024-06-14  115  	/* Make sure mbox space is available */
8b6c724cdab85d Srujana Challa 2024-06-14  116  	ret = octep_wait_for_mbox_avail(mbox);
8b6c724cdab85d Srujana Challa 2024-06-14  117  	if (ret) {
8b6c724cdab85d Srujana Challa 2024-06-14  118  		dev_warn(&pdev->dev, "Timeout waiting for previous mbox data to be consumed\n");
8b6c724cdab85d Srujana Challa 2024-06-14  119  		return ret;
8b6c724cdab85d Srujana Challa 2024-06-14  120  	}
8b6c724cdab85d Srujana Challa 2024-06-14  121  	data_wds = buf_size / 4;
8b6c724cdab85d Srujana Challa 2024-06-14  122  
8b6c724cdab85d Srujana Challa 2024-06-14  123  	if (write) {
8b6c724cdab85d Srujana Challa 2024-06-14  124  		for (i = 1; i <= data_wds; i++) {
8b6c724cdab85d Srujana Challa 2024-06-14  125  			octep_write32_word(mbox, i, *p);
8b6c724cdab85d Srujana Challa 2024-06-14  126  			p++;
8b6c724cdab85d Srujana Challa 2024-06-14  127  		}
8b6c724cdab85d Srujana Challa 2024-06-14  128  	}
8b6c724cdab85d Srujana Challa 2024-06-14  129  	octep_write32_word(mbox, 0, (u32)qid);
8b6c724cdab85d Srujana Challa 2024-06-14  130  	octep_write_sts(mbox, 0);
8b6c724cdab85d Srujana Challa 2024-06-14  131  
8b6c724cdab85d Srujana Challa 2024-06-14  132  	octep_write_hdr(mbox, id, MBOX_REQ_SIG);
8b6c724cdab85d Srujana Challa 2024-06-14  133  
8b6c724cdab85d Srujana Challa 2024-06-14  134  	ret = octep_wait_for_mbox_rsp(mbox);
8b6c724cdab85d Srujana Challa 2024-06-14  135  	if (ret) {
8b6c724cdab85d Srujana Challa 2024-06-14  136  		dev_warn(&pdev->dev, "Timeout waiting for mbox : %d response\n", id);
8b6c724cdab85d Srujana Challa 2024-06-14  137  		return ret;
8b6c724cdab85d Srujana Challa 2024-06-14  138  	}
8b6c724cdab85d Srujana Challa 2024-06-14  139  
8b6c724cdab85d Srujana Challa 2024-06-14  140  	val = octep_read_sig(mbox);
8b6c724cdab85d Srujana Challa 2024-06-14  141  	if ((val & 0xFFFF) != MBOX_RSP_SIG) {
8b6c724cdab85d Srujana Challa 2024-06-14  142  		dev_warn(&pdev->dev, "Invalid Signature from mbox : %d response\n", id);
8b6c724cdab85d Srujana Challa 2024-06-14 @143  		return ret;

return -EINVAL;

The other warnings are because we should use %p to print pointers.  Depening on
the .config the kernel will mask out pointers so that they aren't disclosed to
the users.  Otherwise it risks being an information leak to defeat KSALR.

8b6c724cdab85d Srujana Challa 2024-06-14  144  	}
8b6c724cdab85d Srujana Challa 2024-06-14  145  
8b6c724cdab85d Srujana Challa 2024-06-14  146  	val = octep_read_sts(mbox);
8b6c724cdab85d Srujana Challa 2024-06-14  147  	if (val & MBOX_RC_MASK) {
8b6c724cdab85d Srujana Challa 2024-06-14  148  		ret = MBOX_RSP_TO_ERR(val);
8b6c724cdab85d Srujana Challa 2024-06-14  149  		dev_warn(&pdev->dev, "Error while processing mbox : %d, err %d\n", id, ret);
8b6c724cdab85d Srujana Challa 2024-06-14  150  		return ret;
8b6c724cdab85d Srujana Challa 2024-06-14  151  	}
8b6c724cdab85d Srujana Challa 2024-06-14  152  
8b6c724cdab85d Srujana Challa 2024-06-14  153  	if (!write)
8b6c724cdab85d Srujana Challa 2024-06-14  154  		for (i = 1; i <= data_wds; i++)
8b6c724cdab85d Srujana Challa 2024-06-14  155  			*p++ = octep_read32_word(mbox, i);
8b6c724cdab85d Srujana Challa 2024-06-14  156  
8b6c724cdab85d Srujana Challa 2024-06-14  157  	return 0;
8b6c724cdab85d Srujana Challa 2024-06-14  158  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret'
  2024-09-16  7:35 drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret' Dan Carpenter
@ 2024-09-16  8:40 ` Michael S. Tsirkin
  0 siblings, 0 replies; 2+ messages in thread
From: Michael S. Tsirkin @ 2024-09-16  8:40 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: oe-kbuild, Srujana Challa, lkp, oe-kbuild-all, linux-kernel,
	Vamsi Attunuru, Shijith Thotton, Nithin Dabilpuram

On Mon, Sep 16, 2024 at 10:35:28AM +0300, Dan Carpenter wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   98f7e32f20d28ec452afb208f9cffc08448a2652
> commit: 8b6c724cdab85d8923dd8c474a5a9464228379c5 virtio: vdpa: vDPA driver for Marvell OCTEON DPU devices
> date:   10 weeks ago
> config: i386-randconfig-141-20240912 (https://download.01.org/0day-ci/archive/20240916/202409160431.bRhZWhiU-lkp@intel.com/config)
> compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202409160431.bRhZWhiU-lkp@intel.com/
> 
> New smatch warnings:
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret'
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:478 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
> 
> Old smatch warnings:
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:479 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:480 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:481 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
> drivers/vdpa/octeon_ep/octep_vdpa_hw.c:514 octep_hw_caps_read() warn: argument 3 to %016llx specifier is cast from pointer
> 
> vim +/ret +143 drivers/vdpa/octeon_ep/octep_vdpa_hw.c
> 
> 8b6c724cdab85d Srujana Challa 2024-06-14  102  static int octep_process_mbox(struct octep_hw *oct_hw, u16 id, u16 qid, void *buffer,
> 8b6c724cdab85d Srujana Challa 2024-06-14  103  			      u32 buf_size, bool write)
> 8b6c724cdab85d Srujana Challa 2024-06-14  104  {
> 8b6c724cdab85d Srujana Challa 2024-06-14  105  	struct octep_mbox __iomem *mbox = octep_get_mbox(oct_hw);
> 8b6c724cdab85d Srujana Challa 2024-06-14  106  	struct pci_dev *pdev = oct_hw->pdev;
> 8b6c724cdab85d Srujana Challa 2024-06-14  107  	u32 *p = (u32 *)buffer;
> 8b6c724cdab85d Srujana Challa 2024-06-14  108  	u16 data_wds;
> 8b6c724cdab85d Srujana Challa 2024-06-14  109  	int ret, i;
> 8b6c724cdab85d Srujana Challa 2024-06-14  110  	u32 val;
> 8b6c724cdab85d Srujana Challa 2024-06-14  111  
> 8b6c724cdab85d Srujana Challa 2024-06-14  112  	if (!IS_ALIGNED(buf_size, 4))
> 8b6c724cdab85d Srujana Challa 2024-06-14  113  		return -EINVAL;
> 8b6c724cdab85d Srujana Challa 2024-06-14  114  
> 8b6c724cdab85d Srujana Challa 2024-06-14  115  	/* Make sure mbox space is available */
> 8b6c724cdab85d Srujana Challa 2024-06-14  116  	ret = octep_wait_for_mbox_avail(mbox);
> 8b6c724cdab85d Srujana Challa 2024-06-14  117  	if (ret) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  118  		dev_warn(&pdev->dev, "Timeout waiting for previous mbox data to be consumed\n");
> 8b6c724cdab85d Srujana Challa 2024-06-14  119  		return ret;
> 8b6c724cdab85d Srujana Challa 2024-06-14  120  	}
> 8b6c724cdab85d Srujana Challa 2024-06-14  121  	data_wds = buf_size / 4;
> 8b6c724cdab85d Srujana Challa 2024-06-14  122  
> 8b6c724cdab85d Srujana Challa 2024-06-14  123  	if (write) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  124  		for (i = 1; i <= data_wds; i++) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  125  			octep_write32_word(mbox, i, *p);
> 8b6c724cdab85d Srujana Challa 2024-06-14  126  			p++;
> 8b6c724cdab85d Srujana Challa 2024-06-14  127  		}
> 8b6c724cdab85d Srujana Challa 2024-06-14  128  	}
> 8b6c724cdab85d Srujana Challa 2024-06-14  129  	octep_write32_word(mbox, 0, (u32)qid);
> 8b6c724cdab85d Srujana Challa 2024-06-14  130  	octep_write_sts(mbox, 0);
> 8b6c724cdab85d Srujana Challa 2024-06-14  131  
> 8b6c724cdab85d Srujana Challa 2024-06-14  132  	octep_write_hdr(mbox, id, MBOX_REQ_SIG);
> 8b6c724cdab85d Srujana Challa 2024-06-14  133  
> 8b6c724cdab85d Srujana Challa 2024-06-14  134  	ret = octep_wait_for_mbox_rsp(mbox);
> 8b6c724cdab85d Srujana Challa 2024-06-14  135  	if (ret) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  136  		dev_warn(&pdev->dev, "Timeout waiting for mbox : %d response\n", id);
> 8b6c724cdab85d Srujana Challa 2024-06-14  137  		return ret;
> 8b6c724cdab85d Srujana Challa 2024-06-14  138  	}
> 8b6c724cdab85d Srujana Challa 2024-06-14  139  
> 8b6c724cdab85d Srujana Challa 2024-06-14  140  	val = octep_read_sig(mbox);
> 8b6c724cdab85d Srujana Challa 2024-06-14  141  	if ((val & 0xFFFF) != MBOX_RSP_SIG) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  142  		dev_warn(&pdev->dev, "Invalid Signature from mbox : %d response\n", id);
> 8b6c724cdab85d Srujana Challa 2024-06-14 @143  		return ret;
> 
> return -EINVAL;
> 
> The other warnings are because we should use %p to print pointers.  Depening on
> the .config the kernel will mask out pointers so that they aren't disclosed to
> the users.  Otherwise it risks being an information leak to defeat KSALR.
> 
> 8b6c724cdab85d Srujana Challa 2024-06-14  144  	}
> 8b6c724cdab85d Srujana Challa 2024-06-14  145  
> 8b6c724cdab85d Srujana Challa 2024-06-14  146  	val = octep_read_sts(mbox);
> 8b6c724cdab85d Srujana Challa 2024-06-14  147  	if (val & MBOX_RC_MASK) {
> 8b6c724cdab85d Srujana Challa 2024-06-14  148  		ret = MBOX_RSP_TO_ERR(val);
> 8b6c724cdab85d Srujana Challa 2024-06-14  149  		dev_warn(&pdev->dev, "Error while processing mbox : %d, err %d\n", id, ret);
> 8b6c724cdab85d Srujana Challa 2024-06-14  150  		return ret;
> 8b6c724cdab85d Srujana Challa 2024-06-14  151  	}
> 8b6c724cdab85d Srujana Challa 2024-06-14  152  
> 8b6c724cdab85d Srujana Challa 2024-06-14  153  	if (!write)
> 8b6c724cdab85d Srujana Challa 2024-06-14  154  		for (i = 1; i <= data_wds; i++)
> 8b6c724cdab85d Srujana Challa 2024-06-14  155  			*p++ = octep_read32_word(mbox, i);
> 8b6c724cdab85d Srujana Challa 2024-06-14  156  
> 8b6c724cdab85d Srujana Challa 2024-06-14  157  	return 0;
> 8b6c724cdab85d Srujana Challa 2024-06-14  158  }
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki


Indeed. 
Srujana Challa, pls post a fixup patch ASAP, I will squash it.

-- 
MST


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-09-16  8:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-16  7:35 drivers/vdpa/octeon_ep/octep_vdpa_hw.c:143 octep_process_mbox() warn: missing error code? 'ret' Dan Carpenter
2024-09-16  8:40 ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox