On 27.03.2021 18:16:14, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   0f4498cef9f5cd18d7c6639a2a902ec1edc5be4e
> commit: eb79a267c9b3e608e7762a1b221428f37ace3aa3 can: mcp251xfd: rename all 
> remaining occurrence to mcp251xfd
> date:   6 months ago
> config: mips-randconfig-r035-20210327 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> d50fe9f0d6b9ee61df8830a67ea0a33c27a637e7)
> reproduce (this is a W=1 build):
>         wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # install mips cross compiling tool for clang build
>         # apt-get install binutils-mips-linux-gnu
>         # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eb79a267c9b3e608e7762a1b221428f37ace3aa3
>         git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout eb79a267c9b3e608e7762a1b221428f37ace3aa3
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <l...@intel.com>
> 
> All warnings (new ones prefixed by >>):

[...]

> >> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c:2267:16: warning: taking 
> >> address of packed member 'hw_tx_obj' of class or structure 
> >> 'mcp251xfd_tx_obj_load_buf::(anonymous)' may result in an unaligned 
> >> pointer value [-Waddress-of-packed-member]
>                    hw_tx_obj = &load_buf->crc.hw_tx_obj;
>                                 ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c:2269:16: warning: taking 
> address of packed member 'hw_tx_obj' of class or structure 
> 'mcp251xfd_tx_obj_load_buf::(anonymous)' may result in an unaligned pointer 
> value [-Waddress-of-packed-member]
>                    hw_tx_obj = &load_buf->nocrc.hw_tx_obj;
>                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
>    4 warnings and 1 error generated.

That warning is technically correct, hw_tx_obj is an unaligned pointer in
the first warning, but...

> vim +2267 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> 
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2215  static void
> eb79a267c9b3e6 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c Marc 
> Kleine-Budde 2020-09-30  2216  mcp251xfd_tx_obj_from_skb(const struct 
> mcp251xfd_priv *priv,
> eb79a267c9b3e6 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c Marc 
> Kleine-Budde 2020-09-30  2217                        struct mcp251xfd_tx_obj 
> *tx_obj,
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2218                        const struct sk_buff 
> *skb,
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2219                        unsigned int seq)
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2220  {
[...]
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2265      load_buf = &tx_obj->buf;
> eb79a267c9b3e6 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c Marc 
> Kleine-Budde 2020-09-30  2266      if (priv->devtype_data.quirks & 
> MCP251XFD_QUIRK_CRC_TX)
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18 @2267              hw_tx_obj = 
> &load_buf->crc.hw_tx_obj;
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2268      else
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2269              hw_tx_obj = 
> &load_buf->nocrc.hw_tx_obj;
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2270  
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2271      put_unaligned_le32(id, &hw_tx_obj->id);
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2272      put_unaligned_le32(flags, 
> &hw_tx_obj->flags);
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2273  
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2274      /* Clear data at end of CAN frame */
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2275      offset = round_down(cfd->len, sizeof(u32));
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2276      len = round_up(can_dlc2len(dlc), 
> sizeof(u32)) - offset;
> eb79a267c9b3e6 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c Marc 
> Kleine-Budde 2020-09-30  2277      if (MCP251XFD_SANITIZE_CAN && len)
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2278              memset(hw_tx_obj->data + offset, 
> 0x0, len);
> 55e5b97f003e85 drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c Marc 
> Kleine-Budde 2020-09-18  2279      memcpy(hw_tx_obj->data, cfd->data, 
> cfd->len);

...it's only accessed via put_unaligned_* and memset()/memcpy().

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Attachment: signature.asc
Description: PGP signature

Reply via email to