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]
Date:   Thu, 12 Dec 2019 14:48:57 +0000
From:   Vitor Soares <Vitor.Soares@...opsys.com>
To:     Greg KH <gregkh@...uxfoundation.org>
CC:     "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-i3c@...ts.infradead.org" <linux-i3c@...ts.infradead.org>,
        Joao Pinto <Joao.Pinto@...opsys.com>,
        "bbrezillon@...nel.org" <bbrezillon@...nel.org>,
        "wsa@...-dreams.de" <wsa@...-dreams.de>,
        "arnd@...db.de" <arnd@...db.de>,
        "broonie@...nel.org" <broonie@...nel.org>
Subject: RE: [RFC 3/5] i3c: device: expose transfer strutures to uapi

HI Greg,

From: Greg KH <gregkh@...uxfoundation.org>
Date: Thu, Dec 12, 2019 at 14:42:33

> On Tue, Dec 10, 2019 at 04:37:31PM +0100, Vitor Soares wrote:
> > --- /dev/null
> > +++ b/include/uapi/linux/i3c/device.h
> > @@ -0,0 +1,66 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> 
> Not a valid uapi SPDX license :(

Sorry, I missed that one. I already got the right SPDX.

> 
> 
> > +/*
> > + * Copyright (c) 2019 Synopsys, Inc. and/or its affiliates.
> > + *
> > + * Author: Vitor Soares <vitor.soares@...opsys.com>
> > + */
> > +
> > +#ifndef _UAPI_LINUX_I3C_DEVICE_H
> > +#define _UAPI_LINUX_I3C_DEVICE_H
> > +
> > +#include <linux/types.h>
> > +
> > +/**
> > + * enum i3c_error_code - I3C error codes
> > + *
> > + * These are the standard error codes as defined by the I3C specification.
> > + * When -EIO is returned by the i3c_device_do_priv_xfers() or
> > + * i3c_device_send_hdr_cmds() one can check the error code in
> > + * &struct_i3c_priv_xfer.err or &struct i3c_hdr_cmd.err to get a better idea of
> > + * what went wrong.
> > + *
> > + * @I3C_ERROR_UNKNOWN: unknown error, usually means the error is not I3C
> > + *		       related
> > + * @I3C_ERROR_M0: M0 error
> > + * @I3C_ERROR_M1: M1 error
> > + * @I3C_ERROR_M2: M2 error
> > + */
> > +enum i3c_error_code {
> > +	I3C_ERROR_UNKNOWN = 0,
> > +	I3C_ERROR_M0 = 1,
> > +	I3C_ERROR_M1,
> > +	I3C_ERROR_M2,
> 
> You have to specify all of these.
> 
> > +};
> > +
> > +/**
> > + * enum i3c_hdr_mode - HDR mode ids
> > + * @I3C_HDR_DDR: DDR mode
> > + * @I3C_HDR_TSP: TSP mode
> > + * @I3C_HDR_TSL: TSL mode
> > + */
> > +enum i3c_hdr_mode {
> > +	I3C_HDR_DDR,
> > +	I3C_HDR_TSP,
> > +	I3C_HDR_TSL,
> 
> same here.
> 
> 
> > +};
> > +
> > +/**
> > + * struct i3c_priv_xfer - I3C SDR private transfer
> > + * @rnw: encodes the transfer direction. true for a read, false for a write
> > + * @len: transfer length in bytes of the transfer
> > + * @data: input/output buffer
> > + * @data.in: input buffer. Must point to a DMA-able buffer
> > + * @data.out: output buffer. Must point to a DMA-able buffer
> > + * @err: I3C error code
> > + */
> > +struct i3c_priv_xfer {
> > +	u8 rnw;
> > +	u16 len;
> > +	union {
> > +		void *in;
> > +		const void *out;
> > +	} data;
> > +	enum i3c_error_code err;
> 
> Ick, that's a horrid user/kernel api structure that will not work at
> all.
> 
> Please fix.
> 
> thanks,
> 
> greg k-h

Thanks for your feedback, I will address it in next version.

Best regards,
Vitor Soares

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ