lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
 <AM8PR10MB4721196E13BCDAD7ABAD8E85CD602@AM8PR10MB4721.EURPRD10.PROD.OUTLOOK.COM>
Date: Mon, 16 Sep 2024 20:32:56 +0000
From: "Shen Jianping (ME-SE/EAD2)" <Jianping.Shen@...bosch.com>
To: Jonathan Cameron <jic23@...nel.org>
CC: "lars@...afoo.de" <lars@...afoo.de>, "robh@...nel.org" <robh@...nel.org>,
	"krzk+dt@...nel.org" <krzk+dt@...nel.org>, "conor+dt@...nel.org"
	<conor+dt@...nel.org>, "dima.fedrau@...il.com" <dima.fedrau@...il.com>,
	"marcelo.schmitt1@...il.com" <marcelo.schmitt1@...il.com>,
	"linux-iio@...r.kernel.org" <linux-iio@...r.kernel.org>,
	"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "Lorenz
 Christian (ME-SE/EAD2)" <Christian.Lorenz3@...bosch.com>, "Frauendorf Ulrike
 (ME/PJ-SW3)" <Ulrike.Frauendorf@...bosch.com>, "Dolde Kai (ME-SE/PAE-A3)"
	<Kai.Dolde@...bosch.com>
Subject: RE: [PATCH v7 2/2] iio: imu: smi240: add driver

>Hi Shen,
>
>I suspect I led you astray.  regmap core seems unlikely to feed us little endian
>buffers on writes (they should be CPU endian I think) so there should be memcpy()
>for that not a get_unaligned_le16()
>
>> +
>> +static int smi240_regmap_spi_write(void *context, const void *data,
>> +				   size_t count)
>> +{
>> +	u8 reg_addr;
>> +	u16 reg_data;
>> +	u32 request;
>> +	struct spi_device *spi = context;
>> +	struct iio_dev *indio_dev = dev_get_drvdata(&spi->dev);
>> +	struct smi240_data *iio_priv_data = iio_priv(indio_dev);
>> +
>> +	if (count < 2)
>> +		return -EINVAL;
>> +
>> +	reg_addr = ((u8 *)data)[0];
>> +	reg_data = get_unaligned_le16(&((u8 *)data)[1]);
>
>Why is the regmap core giving us an le16?
>I probably sent you wrong way with this earlier :( memcpy probably the correct
>choice here.

Yes, you are right. We shall use memcpy to keep the be CPU endian.  Just using memcpy may be not enough.

Shall we also change regmap_config.val_format_endian  from REGMAP_ENDIAN_LITTLE to  REGMAP_ENDIAN_NATIVE ?

This is to make sure that regmap_write passes the reg-value to smi240_regmap_spi_write without changing the CPU endian.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ