All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/net/ethernet/google/gve/gve_rx_dqo.c:570:11: warning: cast to pointer from integer of different size
Date: Fri, 02 Jul 2021 05:12:00 +0800	[thread overview]
Message-ID: <202107020552.mqt6hyOs-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5239 bytes --]

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@intel.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(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 42739 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Bailey Forrest <bcf@google.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Willem de Bruijn <willemb@google.com>,
	Catherine Sullivan <csully@google.com>
Subject: drivers/net/ethernet/google/gve/gve_rx_dqo.c:570:11: warning: cast to pointer from integer of different size
Date: Fri, 2 Jul 2021 05:12:00 +0800	[thread overview]
Message-ID: <202107020552.mqt6hyOs-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5105 bytes --]

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@intel.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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 42739 bytes --]

             reply	other threads:[~2021-07-01 21:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-01 21:12 kernel test robot [this message]
2021-07-01 21:12 ` drivers/net/ethernet/google/gve/gve_rx_dqo.c:570:11: warning: cast to pointer from integer of different size kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202107020552.mqt6hyOs-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.