mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Thomas Fourier <fourier.thomas@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev,
	Thomas Fourier <fourier.thomas@gmail.com>,
	Chris Snook <chris.snook@gmail.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] (drivers/ethernet/atheros/atl1) test DMA mapping for error code
Date: Fri, 13 Jun 2025 15:04:02 +0800	[thread overview]
Message-ID: <202506131458.MnU50xNO-lkp@intel.com> (raw)
In-Reply-To: <20250612150542.85239-2-fourier.thomas@gmail.com>

Hi Thomas,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.16-rc1 next-20250612]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Thomas-Fourier/drivers-ethernet-atheros-atl1-test-DMA-mapping-for-error-code/20250612-231733
base:   linus/master
patch link:    https://lore.kernel.org/r/20250612150542.85239-2-fourier.thomas%40gmail.com
patch subject: [PATCH] (drivers/ethernet/atheros/atl1) test DMA mapping for error code
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20250613/202506131458.MnU50xNO-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250613/202506131458.MnU50xNO-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506131458.MnU50xNO-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/net/ethernet/atheros/atlx/atl1.c: In function 'atl1_tx_map':
>> drivers/net/ethernet/atheros/atlx/atl1.c:2315:34: warning: assignment to 'dma_addr_t' {aka 'long long unsigned int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
    2315 |                 buffer_info->dma = NULL;
         |                                  ^
>> drivers/net/ethernet/atheros/atlx/atl1.c:2317:39: error: 'tdp_ring' undeclared (first use in this function); did you mean 'tpd_ring'?
    2317 |                 if (++first_mapped == tdp_ring->count)
         |                                       ^~~~~~~~
         |                                       tpd_ring
   drivers/net/ethernet/atheros/atlx/atl1.c:2317:39: note: each undeclared identifier is reported only once for each function it appears in


vim +2317 drivers/net/ethernet/atheros/atlx/atl1.c

  2192	
  2193	static int atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
  2194		struct tx_packet_desc *ptpd)
  2195	{
  2196		struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
  2197		struct atl1_buffer *buffer_info;
  2198		u16 buf_len = skb->len;
  2199		struct page *page;
  2200		unsigned long offset;
  2201		unsigned int nr_frags;
  2202		unsigned int f;
  2203		int retval;
  2204		u16 next_to_use;
  2205		u16 first_mapped;
  2206		u16 data_len;
  2207		u8 hdr_len;
  2208	
  2209		buf_len -= skb->data_len;
  2210		nr_frags = skb_shinfo(skb)->nr_frags;
  2211		next_to_use = atomic_read(&tpd_ring->next_to_use);
  2212		first_mapped = next_to_use;
  2213		buffer_info = &tpd_ring->buffer_info[next_to_use];
  2214		BUG_ON(buffer_info->skb);
  2215		/* put skb in last TPD */
  2216		buffer_info->skb = NULL;
  2217	
  2218		retval = (ptpd->word3 >> TPD_SEGMENT_EN_SHIFT) & TPD_SEGMENT_EN_MASK;
  2219		if (retval) {
  2220			/* TSO */
  2221			hdr_len = skb_tcp_all_headers(skb);
  2222			buffer_info->length = hdr_len;
  2223			page = virt_to_page(skb->data);
  2224			offset = offset_in_page(skb->data);
  2225			buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
  2226							offset, hdr_len,
  2227							DMA_TO_DEVICE);
  2228			if (dma_mapping_error(&adapter->pdev->dev, buffer_info->dma))
  2229				goto dma_err;
  2230	
  2231			if (++next_to_use == tpd_ring->count)
  2232				next_to_use = 0;
  2233	
  2234			if (buf_len > hdr_len) {
  2235				int i, nseg;
  2236	
  2237				data_len = buf_len - hdr_len;
  2238				nseg = (data_len + ATL1_MAX_TX_BUF_LEN - 1) /
  2239					ATL1_MAX_TX_BUF_LEN;
  2240				for (i = 0; i < nseg; i++) {
  2241					buffer_info =
  2242					    &tpd_ring->buffer_info[next_to_use];
  2243					buffer_info->skb = NULL;
  2244					buffer_info->length =
  2245					    (ATL1_MAX_TX_BUF_LEN >=
  2246					     data_len) ? ATL1_MAX_TX_BUF_LEN : data_len;
  2247					data_len -= buffer_info->length;
  2248					page = virt_to_page(skb->data +
  2249						(hdr_len + i * ATL1_MAX_TX_BUF_LEN));
  2250					offset = offset_in_page(skb->data +
  2251						(hdr_len + i * ATL1_MAX_TX_BUF_LEN));
  2252					buffer_info->dma = dma_map_page(&adapter->pdev->dev,
  2253									page, offset,
  2254									buffer_info->length,
  2255									DMA_TO_DEVICE);
  2256					if (dma_mapping_error(&adapter->pdev->dev, buffer_info->dma))
  2257						goto dma_err;
  2258					if (++next_to_use == tpd_ring->count)
  2259						next_to_use = 0;
  2260				}
  2261			}
  2262		} else {
  2263			/* not TSO */
  2264			buffer_info->length = buf_len;
  2265			page = virt_to_page(skb->data);
  2266			offset = offset_in_page(skb->data);
  2267			buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
  2268							offset, buf_len,
  2269							DMA_TO_DEVICE);
  2270			if (dma_mapping_error(&adapter->pdev->dev, buffer_info->dma))
  2271				goto dma_err;
  2272			if (++next_to_use == tpd_ring->count)
  2273				next_to_use = 0;
  2274		}
  2275	
  2276		for (f = 0; f < nr_frags; f++) {
  2277			const skb_frag_t *frag = &skb_shinfo(skb)->frags[f];
  2278			u16 i, nseg;
  2279	
  2280			buf_len = skb_frag_size(frag);
  2281	
  2282			nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) /
  2283				ATL1_MAX_TX_BUF_LEN;
  2284			for (i = 0; i < nseg; i++) {
  2285				buffer_info = &tpd_ring->buffer_info[next_to_use];
  2286				BUG_ON(buffer_info->skb);
  2287	
  2288				buffer_info->skb = NULL;
  2289				buffer_info->length = (buf_len > ATL1_MAX_TX_BUF_LEN) ?
  2290					ATL1_MAX_TX_BUF_LEN : buf_len;
  2291				buf_len -= buffer_info->length;
  2292				buffer_info->dma = skb_frag_dma_map(&adapter->pdev->dev,
  2293					frag, i * ATL1_MAX_TX_BUF_LEN,
  2294					buffer_info->length, DMA_TO_DEVICE);
  2295				if (dma_mapping_error(&adapter->pdev->dev, buffer_info->dma))
  2296					goto dma_err;
  2297	
  2298				if (++next_to_use == tpd_ring->count)
  2299					next_to_use = 0;
  2300			}
  2301		}
  2302	
  2303		/* last tpd's buffer-info */
  2304		buffer_info->skb = skb;
  2305	
  2306		return 0;
  2307	
  2308	 dma_err:
  2309		while (first_mapped != next_to_use) {
  2310			buffer_info = &tpd_ring->buffer_info[first_mapped];
  2311			dma_unmap_page(&adapter->pdev->dev,
  2312				       buffer_info->dma,
  2313				       buffer_info->length,
  2314				       DMA_TO_DEVICE);
> 2315			buffer_info->dma = NULL;
  2316	
> 2317			if (++first_mapped == tdp_ring->count)
  2318				first_mapped = 0;
  2319		}
  2320		return -ENOMEM;
  2321	}
  2322	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2025-06-13  7:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-12 15:05 Thomas Fourier
2025-06-12 17:24 ` Charalampos Mitrodimas
2025-06-13  1:32   ` Jakub Kicinski
2025-06-13  9:54     ` [PATCH v2] " Thomas Fourier
2025-06-13 14:43       ` Jakub Kicinski
2025-06-16 13:59         ` [PATCH net] ethernet: alt1: Fix missing DMA mapping tests Thomas Fourier
2025-06-16 17:46           ` Jakub Kicinski
2025-06-17 15:47             ` Thomas Fourier
2025-06-17 21:54               ` Jakub Kicinski
2025-06-17 21:59           ` Jakub Kicinski
2025-06-13  7:04 ` kernel test robot [this message]

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=202506131458.MnU50xNO-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=chris.snook@gmail.com \
    --cc=edumazet@google.com \
    --cc=fourier.thomas@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pabeni@redhat.com \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®