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 <lkp@xxxxxxxxx> 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