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:   Sun, 29 Jul 2018 14:43:20 +0200
From:   Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To:     Georgios Tsotsos <tsotsos@...il.com>
Cc:     devel@...verdev.osuosl.org, James Hogan <jhogan@...nel.org>,
        linux-kernel@...r.kernel.org, Aaro Koskinen <aaro.koskinen@....fi>
Subject: Re: [PATCH v3 1/1] Staging: octeon-usb: Breaks down
 cvmx_usb_poll_channel().

On Sun, Jul 29, 2018 at 02:41:53PM +0300, Georgios Tsotsos wrote:
> In order to make this function more clear a new function created that controls
> channels halt on no DMA mode.
> 
> Signed-off-by: Georgios Tsotsos <tsotsos@...il.com>
> ---
>  drivers/staging/octeon-usb/octeon-hcd.c | 81 +++++++++++++++++++++------------
>  1 file changed, 53 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c
> index 8a7bdf1a9fe6..3f44ac260eff 100644
> --- a/drivers/staging/octeon-usb/octeon-hcd.c
> +++ b/drivers/staging/octeon-usb/octeon-hcd.c
> @@ -2593,7 +2593,51 @@ static void cvmx_usb_transfer_isoc(struct octeon_hcd *usb,
>  		cvmx_usb_complete(usb, pipe, transaction, CVMX_USB_STATUS_OK);
>  	}
>  }
> +/**

Blank line between functions please.

Also, as this is not a global function, no need for kerneldoc
formatting, but you did it already, so no big deal.

> + * Handles channels halt in non DMA mode
> + * @hcchar_chena:
> + * @hcint_xfercompl:
> + * @usb:             USB device
> + * @channel:         Channel to poll
> + *
> + * In non DMA mode the channels don't halt themselves. We need
> + * to manually disable channels that are left running
> + *
> + * Returns: -1 on halt
> + */
> +static int cvmx_usb_dma_halt(u32 hcchar_chena, u32 hcint_xfercompl,
> +			     struct octeon_hcd *usb, int channel)
> +{
> +	struct usb_hcd *hcd = octeon_to_hcd(usb);
> +	struct device *dev = hcd->self.controller;
>  
> +	if (hcchar_chena) {
> +		union cvmx_usbcx_hcintmskx hcintmsk;
> +		union cvmx_usbcx_hccharx usbc_hcchar;
> +		/* Disable all interrupts except CHHLTD */
> +		hcintmsk.u32 = 0;
> +		hcintmsk.s.chhltdmsk = 1;
> +		cvmx_usb_write_csr32(usb,
> +				     CVMX_USBCX_HCINTMSKX(channel, usb->index),
> +				     hcintmsk.u32);
> +		usbc_hcchar.s.chdis = 1;
> +		cvmx_usb_write_csr32(usb,
> +				     CVMX_USBCX_HCCHARX(channel, usb->index),
> +				     usbc_hcchar.u32);
> +		return -1;

Do not make up error values, return -EINVAL or something like that (what
ever the real error here is.)

> +	} else if (hcint_xfercompl) {
> +		/*
> +		 * Successful IN/OUT with transfer complete.
> +		 * Channel halt isn't needed.
> +		 */
> +	} else {
> +		dev_err(dev, "USB%d: Channel %d interrupt without halt\n",
> +			usb->index, channel);
> +		return -1;

Same here.

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ