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/xilinx/xilinx_emaclite.c:417:24: sparse: sparse: cast to restricted __be32
Date: Sat, 13 Nov 2021 02:48:17 +0800	[thread overview]
Message-ID: <202111130202.PyH0l68Q-lkp@intel.com> (raw)

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

Hi Andrew,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5833291ab6de9c3e2374336b51c814e515e8f3a5
commit: 03dfd157670bd715306dce1507b8998cabd38539 drivers: net: xilinx_emaclite: Add COMPILE_TEST support
date:   1 year ago
config: sparc-randconfig-s032-20211109 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03dfd157670bd715306dce1507b8998cabd38539
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 03dfd157670bd715306dce1507b8998cabd38539
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc SHELL=/bin/bash arch/sparc/ drivers/gpu/ drivers/net/ fs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/xilinx/xilinx_emaclite.c:417:24: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/xilinx/xilinx_emaclite.c:427:36: sparse: sparse: cast to restricted __be32

vim +417 drivers/net/ethernet/xilinx/xilinx_emaclite.c

bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  368  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  369  /**
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  370   * xemaclite_recv_data - Receive a frame
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  371   * @drvdata:	Pointer to the Emaclite device private data
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  372   * @data:	Address where the data is to be received
f713d50f33c1fb drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  373   * @maxlen:    Maximum supported ethernet packet length
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  374   *
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  375   * This function is intended to be called from the interrupt context or
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  376   * with a wrapper which waits for the receive frame to be available.
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  377   *
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  378   * Return:	Total number of bytes received
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  379   */
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  380  static u16 xemaclite_recv_data(struct net_local *drvdata, u8 *data, int maxlen)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  381  {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  382  	void __iomem *addr;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  383  	u16 length, proto_type;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  384  	u32 reg_data;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  385  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  386  	/* Determine the expected buffer address */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  387  	addr = (drvdata->base_addr + drvdata->next_rx_buf_to_use);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  388  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  389  	/* Verify which buffer has valid data */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  390  	reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  391  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  392  	if ((reg_data & XEL_RSR_RECV_DONE_MASK) == XEL_RSR_RECV_DONE_MASK) {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  393  		if (drvdata->rx_ping_pong != 0)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  394  			drvdata->next_rx_buf_to_use ^= XEL_BUFFER_OFFSET;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  395  	} else {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  396  		/* The instance is out of sync, try other buffer if other
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  397  		 * buffer is configured, return 0 otherwise. If the instance is
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  398  		 * out of sync, do not update the 'next_rx_buf_to_use' since it
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  399  		 * will correct on subsequent calls
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  400  		 */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  401  		if (drvdata->rx_ping_pong != 0)
eccd5403814b4e drivers/net/ethernet/xilinx/xilinx_emaclite.c Andrew Lunn         2020-11-10  402  			addr = (void __iomem __force *)
eccd5403814b4e drivers/net/ethernet/xilinx/xilinx_emaclite.c Andrew Lunn         2020-11-10  403  				((uintptr_t __force)addr ^
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  404  				 XEL_BUFFER_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  405  		else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  406  			return 0;	/* No data was available */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  407  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  408  		/* Verify that buffer has valid data */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  409  		reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  410  		if ((reg_data & XEL_RSR_RECV_DONE_MASK) !=
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  411  		     XEL_RSR_RECV_DONE_MASK)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  412  			return 0;	/* No data was available */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  413  	}
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  414  
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  415  	/* Get the protocol type of the ethernet frame that arrived
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  416  	 */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14 @417  	proto_type = ((ntohl(xemaclite_readl(addr + XEL_HEADER_OFFSET +
44180a573ec936 drivers/net/xilinx_emaclite.c                 Michal Simek        2010-09-10  418  			XEL_RXBUFF_OFFSET)) >> XEL_HEADER_SHIFT) &
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  419  			XEL_RPLR_LENGTH_MASK);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  420  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  421  	/* Check if received ethernet frame is a raw ethernet frame
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  422  	 * or an IP packet or an ARP packet
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  423  	 */
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  424  	if (proto_type > ETH_DATA_LEN) {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  425  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  426  		if (proto_type == ETH_P_IP) {
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  427  			length = ((ntohl(xemaclite_readl(addr +
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  428  					XEL_HEADER_IP_LENGTH_OFFSET +
44180a573ec936 drivers/net/xilinx_emaclite.c                 Michal Simek        2010-09-10  429  					XEL_RXBUFF_OFFSET)) >>
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  430  					XEL_HEADER_SHIFT) &
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  431  					XEL_RPLR_LENGTH_MASK);
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  432  			length = min_t(u16, length, ETH_DATA_LEN);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  433  			length += ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  434  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  435  		} else if (proto_type == ETH_P_ARP)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  436  			length = XEL_ARP_PACKET_SIZE + ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  437  		else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  438  			/* Field contains type other than IP or ARP, use max
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  439  			 * frame size and let user parse it
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  440  			 */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  441  			length = ETH_FRAME_LEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  442  	} else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  443  		/* Use the length in the frame, plus the header and trailer */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  444  		length = proto_type + ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  445  
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  446  	if (WARN_ON(length > maxlen))
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  447  		length = maxlen;
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  448  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  449  	/* Read from the EmacLite device */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  450  	xemaclite_aligned_read((u32 __force *)(addr + XEL_RXBUFF_OFFSET),
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  451  				data, length);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  452  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  453  	/* Acknowledge the frame */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  454  	reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  455  	reg_data &= ~XEL_RSR_RECV_DONE_MASK;
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  456  	xemaclite_writel(reg_data, addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  457  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  458  	return length;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  459  }
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  460  

:::::: The code at line 417 was first introduced by commit
:::::: acf138f1b00bdd1b7cd9894562ed0c2a1670888e net: xilinx_emaclite: fix freezes due to unordered I/O

:::::: TO: Anssi Hannula <anssi.hannula@bitwise.fi>
:::::: CC: David S. Miller <davem@davemloft.net>

---
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: 32346 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Jakub Kicinski <kuba@kernel.org>
Subject: drivers/net/ethernet/xilinx/xilinx_emaclite.c:417:24: sparse: sparse: cast to restricted __be32
Date: Sat, 13 Nov 2021 02:48:17 +0800	[thread overview]
Message-ID: <202111130202.PyH0l68Q-lkp@intel.com> (raw)

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

Hi Andrew,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5833291ab6de9c3e2374336b51c814e515e8f3a5
commit: 03dfd157670bd715306dce1507b8998cabd38539 drivers: net: xilinx_emaclite: Add COMPILE_TEST support
date:   1 year ago
config: sparc-randconfig-s032-20211109 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03dfd157670bd715306dce1507b8998cabd38539
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 03dfd157670bd715306dce1507b8998cabd38539
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc SHELL=/bin/bash arch/sparc/ drivers/gpu/ drivers/net/ fs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/xilinx/xilinx_emaclite.c:417:24: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/xilinx/xilinx_emaclite.c:427:36: sparse: sparse: cast to restricted __be32

vim +417 drivers/net/ethernet/xilinx/xilinx_emaclite.c

bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  368  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  369  /**
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  370   * xemaclite_recv_data - Receive a frame
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  371   * @drvdata:	Pointer to the Emaclite device private data
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  372   * @data:	Address where the data is to be received
f713d50f33c1fb drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  373   * @maxlen:    Maximum supported ethernet packet length
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  374   *
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  375   * This function is intended to be called from the interrupt context or
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  376   * with a wrapper which waits for the receive frame to be available.
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  377   *
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  378   * Return:	Total number of bytes received
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  379   */
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  380  static u16 xemaclite_recv_data(struct net_local *drvdata, u8 *data, int maxlen)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  381  {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  382  	void __iomem *addr;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  383  	u16 length, proto_type;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  384  	u32 reg_data;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  385  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  386  	/* Determine the expected buffer address */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  387  	addr = (drvdata->base_addr + drvdata->next_rx_buf_to_use);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  388  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  389  	/* Verify which buffer has valid data */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  390  	reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  391  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  392  	if ((reg_data & XEL_RSR_RECV_DONE_MASK) == XEL_RSR_RECV_DONE_MASK) {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  393  		if (drvdata->rx_ping_pong != 0)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  394  			drvdata->next_rx_buf_to_use ^= XEL_BUFFER_OFFSET;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  395  	} else {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  396  		/* The instance is out of sync, try other buffer if other
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  397  		 * buffer is configured, return 0 otherwise. If the instance is
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  398  		 * out of sync, do not update the 'next_rx_buf_to_use' since it
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  399  		 * will correct on subsequent calls
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  400  		 */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  401  		if (drvdata->rx_ping_pong != 0)
eccd5403814b4e drivers/net/ethernet/xilinx/xilinx_emaclite.c Andrew Lunn         2020-11-10  402  			addr = (void __iomem __force *)
eccd5403814b4e drivers/net/ethernet/xilinx/xilinx_emaclite.c Andrew Lunn         2020-11-10  403  				((uintptr_t __force)addr ^
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  404  				 XEL_BUFFER_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  405  		else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  406  			return 0;	/* No data was available */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  407  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  408  		/* Verify that buffer has valid data */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  409  		reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  410  		if ((reg_data & XEL_RSR_RECV_DONE_MASK) !=
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  411  		     XEL_RSR_RECV_DONE_MASK)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  412  			return 0;	/* No data was available */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  413  	}
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  414  
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  415  	/* Get the protocol type of the ethernet frame that arrived
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  416  	 */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14 @417  	proto_type = ((ntohl(xemaclite_readl(addr + XEL_HEADER_OFFSET +
44180a573ec936 drivers/net/xilinx_emaclite.c                 Michal Simek        2010-09-10  418  			XEL_RXBUFF_OFFSET)) >> XEL_HEADER_SHIFT) &
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  419  			XEL_RPLR_LENGTH_MASK);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  420  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  421  	/* Check if received ethernet frame is a raw ethernet frame
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  422  	 * or an IP packet or an ARP packet
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  423  	 */
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  424  	if (proto_type > ETH_DATA_LEN) {
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  425  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  426  		if (proto_type == ETH_P_IP) {
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  427  			length = ((ntohl(xemaclite_readl(addr +
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  428  					XEL_HEADER_IP_LENGTH_OFFSET +
44180a573ec936 drivers/net/xilinx_emaclite.c                 Michal Simek        2010-09-10  429  					XEL_RXBUFF_OFFSET)) >>
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  430  					XEL_HEADER_SHIFT) &
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  431  					XEL_RPLR_LENGTH_MASK);
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  432  			length = min_t(u16, length, ETH_DATA_LEN);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  433  			length += ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  434  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  435  		} else if (proto_type == ETH_P_ARP)
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  436  			length = XEL_ARP_PACKET_SIZE + ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  437  		else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  438  			/* Field contains type other than IP or ARP, use max
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  439  			 * frame size and let user parse it
49a83f002731db drivers/net/ethernet/xilinx/xilinx_emaclite.c Radhey Shyam Pandey 2018-06-28  440  			 */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  441  			length = ETH_FRAME_LEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  442  	} else
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  443  		/* Use the length in the frame, plus the header and trailer */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  444  		length = proto_type + ETH_HLEN + ETH_FCS_LEN;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  445  
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  446  	if (WARN_ON(length > maxlen))
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  447  		length = maxlen;
cd224553641848 drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  448  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  449  	/* Read from the EmacLite device */
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  450  	xemaclite_aligned_read((u32 __force *)(addr + XEL_RXBUFF_OFFSET),
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  451  				data, length);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  452  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  453  	/* Acknowledge the frame */
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  454  	reg_data = xemaclite_readl(addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  455  	reg_data &= ~XEL_RSR_RECV_DONE_MASK;
acf138f1b00bdd drivers/net/ethernet/xilinx/xilinx_emaclite.c Anssi Hannula       2017-02-14  456  	xemaclite_writel(reg_data, addr + XEL_RSR_OFFSET);
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  457  
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  458  	return length;
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  459  }
bb81b2ddfa194b drivers/net/xilinx_emaclite.c                 John Linn           2009-08-20  460  

:::::: The code at line 417 was first introduced by commit
:::::: acf138f1b00bdd1b7cd9894562ed0c2a1670888e net: xilinx_emaclite: fix freezes due to unordered I/O

:::::: TO: Anssi Hannula <anssi.hannula@bitwise.fi>
:::::: CC: David S. Miller <davem@davemloft.net>

---
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: 32346 bytes --]

             reply	other threads:[~2021-11-12 18:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-12 18:48 kernel test robot [this message]
2021-11-12 18:48 ` drivers/net/ethernet/xilinx/xilinx_emaclite.c:417:24: sparse: sparse: cast to restricted __be32 kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-11-10 19:39 kernel test robot
2021-11-10 19:39 ` 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=202111130202.PyH0l68Q-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.