Hi Ivan,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Ivan-Khoronzhuk/xdp-allow-same-allocator-usage/20190706-003850
config: arm64-allmodconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.4.0
reproduce:
        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
        GCC_VERSION=7.4.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All warnings (new ones prefixed by >>):

   drivers/net//ethernet/ti/davinci_cpdma.c: In function 'cpdma_chan_submit_si':
>> drivers/net//ethernet/ti/davinci_cpdma.c:1047:12: warning: cast from pointer 
>> to integer of different size [-Wpointer-to-int-cast]
      buffer = (u32)si->data;
               ^
   drivers/net//ethernet/ti/davinci_cpdma.c: In function 
'cpdma_chan_idle_submit_mapped':
>> drivers/net//ethernet/ti/davinci_cpdma.c:1114:12: warning: cast to pointer 
>> from integer of different size [-Wint-to-pointer-cast]
     si.data = (void *)(u32)data;
               ^
   drivers/net//ethernet/ti/davinci_cpdma.c: In function 
'cpdma_chan_submit_mapped':
   drivers/net//ethernet/ti/davinci_cpdma.c:1164:12: warning: cast to pointer 
from integer of different size [-Wint-to-pointer-cast]
     si.data = (void *)(u32)data;
               ^

vim +1047 drivers/net//ethernet/ti/davinci_cpdma.c

  1015  
  1016  static int cpdma_chan_submit_si(struct submit_info *si)
  1017  {
  1018          struct cpdma_chan               *chan = si->chan;
  1019          struct cpdma_ctlr               *ctlr = chan->ctlr;
  1020          int                             len = si->len;
  1021          int                             swlen = len;
  1022          struct cpdma_desc __iomem       *desc;
  1023          dma_addr_t                      buffer;
  1024          u32                             mode;
  1025          int                             ret;
  1026  
  1027          if (chan->count >= chan->desc_num)      {
  1028                  chan->stats.desc_alloc_fail++;
  1029                  return -ENOMEM;
  1030          }
  1031  
  1032          desc = cpdma_desc_alloc(ctlr->pool);
  1033          if (!desc) {
  1034                  chan->stats.desc_alloc_fail++;
  1035                  return -ENOMEM;
  1036          }
  1037  
  1038          if (len < ctlr->params.min_packet_size) {
  1039                  len = ctlr->params.min_packet_size;
  1040                  chan->stats.runt_transmit_buff++;
  1041          }
  1042  
  1043          mode = CPDMA_DESC_OWNER | CPDMA_DESC_SOP | CPDMA_DESC_EOP;
  1044          cpdma_desc_to_port(chan, mode, si->directed);
  1045  
  1046          if (si->flags & CPDMA_DMA_EXT_MAP) {
> 1047                  buffer = (u32)si->data;
  1048                  dma_sync_single_for_device(ctlr->dev, buffer, len, 
chan->dir);
  1049                  swlen |= CPDMA_DMA_EXT_MAP;
  1050          } else {
  1051                  buffer = dma_map_single(ctlr->dev, si->data, len, 
chan->dir);
  1052                  ret = dma_mapping_error(ctlr->dev, buffer);
  1053                  if (ret) {
  1054                          cpdma_desc_free(ctlr->pool, desc, 1);
  1055                          return -EINVAL;
  1056                  }
  1057          }
  1058  
  1059          /* Relaxed IO accessors can be used here as there is read 
barrier
  1060           * at the end of write sequence.
  1061           */
  1062          writel_relaxed(0, &desc->hw_next);
  1063          writel_relaxed(buffer, &desc->hw_buffer);
  1064          writel_relaxed(len, &desc->hw_len);
  1065          writel_relaxed(mode | len, &desc->hw_mode);
  1066          writel_relaxed((uintptr_t)si->token, &desc->sw_token);
  1067          writel_relaxed(buffer, &desc->sw_buffer);
  1068          writel_relaxed(swlen, &desc->sw_len);
  1069          desc_read(desc, sw_len);
  1070  
  1071          __cpdma_chan_submit(chan, desc);
  1072  
  1073          if (chan->state == CPDMA_STATE_ACTIVE && chan->rxfree)
  1074                  chan_write(chan, rxfree, 1);
  1075  
  1076          chan->count++;
  1077          return 0;
  1078  }
  1079  
  1080  int cpdma_chan_idle_submit(struct cpdma_chan *chan, void *token, void 
*data,
  1081                             int len, int directed)
  1082  {
  1083          struct submit_info si;
  1084          unsigned long flags;
  1085          int ret;
  1086  
  1087          si.chan = chan;
  1088          si.token = token;
  1089          si.data = data;
  1090          si.len = len;
  1091          si.directed = directed;
  1092          si.flags = 0;
  1093  
  1094          spin_lock_irqsave(&chan->lock, flags);
  1095          if (chan->state == CPDMA_STATE_TEARDOWN) {
  1096                  spin_unlock_irqrestore(&chan->lock, flags);
  1097                  return -EINVAL;
  1098          }
  1099  
  1100          ret = cpdma_chan_submit_si(&si);
  1101          spin_unlock_irqrestore(&chan->lock, flags);
  1102          return ret;
  1103  }
  1104  
  1105  int cpdma_chan_idle_submit_mapped(struct cpdma_chan *chan, void *token,
  1106                                    dma_addr_t data, int len, int 
directed)
  1107  {
  1108          struct submit_info si;
  1109          unsigned long flags;
  1110          int ret;
  1111  
  1112          si.chan = chan;
  1113          si.token = token;
> 1114          si.data = (void *)(u32)data;
  1115          si.len = len;
  1116          si.directed = directed;
  1117          si.flags = CPDMA_DMA_EXT_MAP;
  1118  
  1119          spin_lock_irqsave(&chan->lock, flags);
  1120          if (chan->state == CPDMA_STATE_TEARDOWN) {
  1121                  spin_unlock_irqrestore(&chan->lock, flags);
  1122                  return -EINVAL;
  1123          }
  1124  
  1125          ret = cpdma_chan_submit_si(&si);
  1126          spin_unlock_irqrestore(&chan->lock, flags);
  1127          return ret;
  1128  }
  1129  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to