lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202107020552.mqt6hyOs-lkp@intel.com>
Date:   Fri, 2 Jul 2021 05:12:00 +0800
From:   kernel test robot <lkp@...el.com>
To:     Bailey Forrest <bcf@...gle.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Willem de Bruijn <willemb@...gle.com>,
        Catherine Sullivan <csully@...gle.com>
Subject: drivers/net/ethernet/google/gve/gve_rx_dqo.c:570:11: warning: cast
 to pointer from integer of different size

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e058a84bfddc42ba356a2316f2cf1141974625c9
commit: 9b8dd5e5ea48bbb7532d20c4093a79d8283e4029 gve: DQO: Add RX path
date:   7 days ago
config: i386-randconfig-a001-20210702 (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/torvalds/linux.git/commit/?id=9b8dd5e5ea48bbb7532d20c4093a79d8283e4029
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9b8dd5e5ea48bbb7532d20c4093a79d8283e4029
        # 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@...el.com>

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/google/gve/gve_rx_dqo.c: In function 'gve_rx_dqo':
>> drivers/net/ethernet/google/gve/gve_rx_dqo.c:570:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     570 |  prefetch((char *)buf_state->addr + buf_state->page_info.page_offset);
         |           ^
   drivers/net/ethernet/google/gve/gve_rx_dqo.c:572:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     572 |  prefetch((char *)buf_state->addr + buf_state->page_info.page_offset +
         |           ^


vim +570 drivers/net/ethernet/google/gve/gve_rx_dqo.c

   513	
   514	/* Returns 0 if descriptor is completed successfully.
   515	 * Returns -EINVAL if descriptor is invalid.
   516	 * Returns -ENOMEM if data cannot be copied to skb.
   517	 */
   518	static int gve_rx_dqo(struct napi_struct *napi, struct gve_rx_ring *rx,
   519			      const struct gve_rx_compl_desc_dqo *compl_desc,
   520			      int queue_idx)
   521	{
   522		const u16 buffer_id = le16_to_cpu(compl_desc->buf_id);
   523		const bool eop = compl_desc->end_of_packet != 0;
   524		struct gve_rx_buf_state_dqo *buf_state;
   525		struct gve_priv *priv = rx->gve;
   526		u16 buf_len;
   527	
   528		if (unlikely(buffer_id > rx->dqo.num_buf_states)) {
   529			net_err_ratelimited("%s: Invalid RX buffer_id=%u\n",
   530					    priv->dev->name, buffer_id);
   531			return -EINVAL;
   532		}
   533		buf_state = &rx->dqo.buf_states[buffer_id];
   534		if (unlikely(!gve_buf_state_is_allocated(rx, buf_state))) {
   535			net_err_ratelimited("%s: RX buffer_id is not allocated: %u\n",
   536					    priv->dev->name, buffer_id);
   537			return -EINVAL;
   538		}
   539	
   540		if (unlikely(compl_desc->rx_error)) {
   541			gve_enqueue_buf_state(rx, &rx->dqo.recycled_buf_states,
   542					      buf_state);
   543			return -EINVAL;
   544		}
   545	
   546		buf_len = compl_desc->packet_len;
   547	
   548		/* Page might have not been used for awhile and was likely last written
   549		 * by a different thread.
   550		 */
   551		prefetch(buf_state->page_info.page);
   552	
   553		/* Sync the portion of dma buffer for CPU to read. */
   554		dma_sync_single_range_for_cpu(&priv->pdev->dev, buf_state->addr,
   555					      buf_state->page_info.page_offset,
   556					      buf_len, DMA_FROM_DEVICE);
   557	
   558		/* Append to current skb if one exists. */
   559		if (rx->skb_head) {
   560			if (unlikely(gve_rx_append_frags(napi, buf_state, buf_len, rx,
   561							 priv)) != 0) {
   562				goto error;
   563			}
   564	
   565			gve_try_recycle_buf(priv, rx, buf_state);
   566			return 0;
   567		}
   568	
   569		/* Prefetch the payload header. */
 > 570		prefetch((char *)buf_state->addr + buf_state->page_info.page_offset);
   571	#if L1_CACHE_BYTES < 128
   572		prefetch((char *)buf_state->addr + buf_state->page_info.page_offset +
   573			 L1_CACHE_BYTES);
   574	#endif
   575	
   576		if (eop && buf_len <= priv->rx_copybreak) {
   577			rx->skb_head = gve_rx_copy(priv->dev, napi,
   578						   &buf_state->page_info, buf_len, 0);
   579			if (unlikely(!rx->skb_head))
   580				goto error;
   581			rx->skb_tail = rx->skb_head;
   582	
   583			u64_stats_update_begin(&rx->statss);
   584			rx->rx_copied_pkt++;
   585			rx->rx_copybreak_pkt++;
   586			u64_stats_update_end(&rx->statss);
   587	
   588			gve_enqueue_buf_state(rx, &rx->dqo.recycled_buf_states,
   589					      buf_state);
   590			return 0;
   591		}
   592	
   593		rx->skb_head = napi_get_frags(napi);
   594		if (unlikely(!rx->skb_head))
   595			goto error;
   596		rx->skb_tail = rx->skb_head;
   597	
   598		skb_add_rx_frag(rx->skb_head, 0, buf_state->page_info.page,
   599				buf_state->page_info.page_offset, buf_len,
   600				priv->data_buffer_size_dqo);
   601		gve_dec_pagecnt_bias(&buf_state->page_info);
   602	
   603		gve_try_recycle_buf(priv, rx, buf_state);
   604		return 0;
   605	
   606	error:
   607		gve_enqueue_buf_state(rx, &rx->dqo.recycled_buf_states, buf_state);
   608		return -ENOMEM;
   609	}
   610	

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

Download attachment ".config.gz" of type "application/gzip" (42739 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ