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  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]
Date:   Wed, 20 Feb 2019 16:18:04 +0100 (CET)
From:   Nikolaus Voss <nv@...n.de>
To:     Guenter Roeck <linux@...ck-us.net>
cc:     Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv2] usb: typec: tps6598x: handle block writes separately
 with plain-I2C adapters

On Wed, 20 Feb 2019, Guenter Roeck wrote:
> On 2/20/19 4:57 AM, Nikolaus Voss wrote:
>> Commit 1a2f474d328f handles block _reads_ separately with plain-I2C
>> adapters, but the problem described with regmap-i2c not handling
>> SMBus block transfers (i.e. read and writes) correctly also exists
>> with writes.
>> 
>> As workaround, this patch adds a block write function the same way
>> 1a2f474d328f adds a block read function.
>> 
>> Fixes: 1a2f474d328f ("usb: typec: tps6598x: handle block reads separately 
>> with plain-I2C adapters")
>> Fixes: 0a4c005bd171 ("usb: typec: driver for TI TPS6598x USB Power Delivery 
>> controllers")
>> Signed-off-by: Nikolaus Voss <nikolaus.voss@...wensteinmedical.de>
>> ---
>> v2: fix tps6598x_exec_cmd also
>> ---
>>   drivers/usb/typec/tps6598x.c | 26 ++++++++++++++++++++------
>>   1 file changed, 20 insertions(+), 6 deletions(-)
>> 
>> diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
>> index c84c8c189e90..c54b73fb2a2f 100644
>> --- a/drivers/usb/typec/tps6598x.c
>> +++ b/drivers/usb/typec/tps6598x.c
>> @@ -110,6 +110,20 @@ tps6598x_block_read(struct tps6598x *tps, u8 reg, void 
>> *val, size_t len)
>>   	return 0;
>>   }
>>   +static int tps6598x_block_write(struct tps6598x *tps, u8 reg,
>> +				void *val, size_t len)
>> +{
>> +	u8 data[len + 1];
>> +
>
> You should use TPS_MAX_LEN + 1 here to avoid the variable length array.
> See upstream commit 0bb95f80a38f8 ("Makefile: Globally enable VLA warning")
> and 8d361fa2c29dc ("usb: typec: tps6598x: Remove VLA usage"). Not sure if
> the WARN_ON introduced by 8d361fa2c29dc is really needed; I dislike
> unnecessary runtime checks.

Thanks for the pointer, I fixed this...

Nikolaus

Powered by blists - more mailing lists