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 --]
next 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.