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-next>] [day] [month] [year] [list]
Message-id: <1436353761-7107-1-git-send-email-r.baldyga@samsung.com>
Date:	Wed, 08 Jul 2015 13:08:44 +0200
From:	Robert Baldyga <r.baldyga@...sung.com>
To:	gregkh@...uxfoundation.org
Cc:	Peter.Chen@...escale.com, johnyoun@...opsys.com, balbi@...com,
	dahlmann.thomas@...or.de, nicolas.ferre@...el.com,
	cernekee@...il.com, leoli@...escale.com, daniel@...que.org,
	haojian.zhuang@...il.com, robert.jarzmik@...e.fr,
	michal.simek@...inx.com, devel@...verdev.osuosl.org,
	linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org,
	linux-omap@...r.kernel.org, linux-geode@...ts.infradead.org,
	linux-arm-kernel@...ts.infradead.org,
	linuxppc-dev@...ts.ozlabs.org, andrzej.p@...sung.com,
	m.szyprowski@...sung.com, Robert Baldyga <r.baldyga@...sung.com>
Subject: [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism

Hello,

This patch series reworks endpoint matching and claiming mechanism in
epautoconf.

The patch (1) introduces new safer endpoint claiming method, basing on
new 'claimed' flag. It was discussed here [1]. I proposed this solution
over year ago and it was accepted, but apparently I forgot to send the
final version of patch.

Patches (2-3) add the 'capabilities flags' structure and helper macros.
This solution is inspired by the 'feature flags' originally proposed
by Felipe Balbi in 2013 [2], but unfortunately implementation of this
feature has never been completed.

Patches (4-36) add' capabilites flags' support to all UDC drivers present
in the kernel tree. It's needed to be done before replacing old endpoint
matching mechanism, otherwise UDC drivers which doesn't set 'capabilities
flags' won't work with new autoconfig.

Patch (37) finally replaces old endpoint matching method with the new
one basing on capabilities flags.

These changes aims to get rid of code, which guesses endpoint capabilities
basing on it's name, and introduce new better replacement. In result
we have better way to describe types and directions supported by each
endpoint.

For example the old name-based method didn't allow to have endpoint
supporing two types of transfers - there were only ability to support
one or all endpoint types. The 'capabilities flags' feature supply
precise, flexible and extendible mechanism of description of endpoint
hardware limitations, which is desired for proper endpoint matching.

Best regards,
Robert Baldyga

[1] https://lkml.org/lkml/2014/6/16/94
[2] http://www.spinics.net/lists/linux-usb/msg99662.html

Robert Baldyga (37):
  usb: gadget: encapsulate endpoint claiming mechanism
  usb: gadget: add endpoint capabilities flags
  usb: gadget: add endpoint capabilities helper macros
  staging: emxx_udc: add ep capabilities support
  usb: chipidea: udc: add ep capabilities support
  usb: dwc2: gadget: add ep capabilities support
  usb: dwc3: gadget: add ep capabilities support
  usb: gadget: amd5536udc: add ep capabilities support
  usb: gadget: at91_udc: add ep capabilities support
  usb: gadget: bcm63xx_udc: add ep capabilities support
  usb: gadget: bdc: add ep capabilities support
  usb: gadget: dummy-hcd: add ep capabilities support
  usb: gadget: fotg210-udc: add ep capabilities support
  usb: gadget: fsl_qe_udc: add ep capabilities support
  usb: gadget: fsl_udc_core: add ep capabilities support
  usb: gadget: fusb300_udc: add ep capabilities support
  usb: gadget: goku_udc: add ep capabilities support
  usb: gadget: gr_udc: add ep capabilities support
  usb: gadget: lpc32xx_udc: add ep capabilities support
  usb: gadget: m66592-udc: add ep capabilities support
  usb: gadget: mv_u3d_core: add ep capabilities support
  usb: gadget: mv_udc_core: add ep capabilities support
  usb: gadget: net2272: add ep capabilities support
  usb: gadget: net2280: add ep capabilities support
  usb: gadget: omap_udc: add ep capabilities support
  usb: gadget: pch_ud: add ep capabilities support
  usb: gadget: pxa25x_udc: add ep capabilities support
  usb: gadget: pxa27x_udc: add ep capabilities support
  usb: gadget: r8a66597-udc: add ep capabilities support
  usb: gadget: s3c-hsudc: add ep capabilities support
  usb: gadget: s3c2410_udc: add ep capabilities support
  usb: gadget: udc-xilinx: add ep capabilities support
  usb: isp1760: udc: add ep capabilities support
  usb: musb: gadget: add ep capabilities support
  usb: renesas: gadget: add ep capabilities support
  usb: gadget: atmel_usba_udc: add ep capabilities support
  usb: gadget: epautoconf: add endpoint capabilities flags verification

 drivers/staging/emxx_udc/emxx_udc.c     | 60 ++++++++++++------------
 drivers/usb/chipidea/udc.c              | 14 ++++++
 drivers/usb/dwc2/gadget.c               | 13 ++++++
 drivers/usb/dwc3/gadget.c               | 13 ++++++
 drivers/usb/gadget/epautoconf.c         | 83 +++++++++++----------------------
 drivers/usb/gadget/udc/amd5536udc.c     | 57 ++++++++++++++++++----
 drivers/usb/gadget/udc/at91_udc.c       | 33 +++++++++----
 drivers/usb/gadget/udc/atmel_usba_udc.c | 11 +++++
 drivers/usb/gadget/udc/bcm63xx_udc.c    | 25 ++++++++--
 drivers/usb/gadget/udc/bdc/bdc_ep.c     |  9 ++++
 drivers/usb/gadget/udc/dummy_hcd.c      | 65 ++++++++++++++++++++------
 drivers/usb/gadget/udc/fotg210-udc.c    | 11 +++++
 drivers/usb/gadget/udc/fsl_qe_udc.c     | 11 +++++
 drivers/usb/gadget/udc/fsl_udc_core.c   | 13 ++++++
 drivers/usb/gadget/udc/fusb300_udc.c    | 11 +++++
 drivers/usb/gadget/udc/goku_udc.c       |  8 ++++
 drivers/usb/gadget/udc/gr_udc.c         | 11 +++++
 drivers/usb/gadget/udc/lpc32xx_udc.c    | 32 +++++++++++++
 drivers/usb/gadget/udc/m66592-udc.c     | 11 +++++
 drivers/usb/gadget/udc/mv_u3d_core.c    |  9 ++++
 drivers/usb/gadget/udc/mv_udc_core.c    |  9 ++++
 drivers/usb/gadget/udc/net2272.c        | 11 +++++
 drivers/usb/gadget/udc/net2280.c        | 50 +++++++++++++++-----
 drivers/usb/gadget/udc/omap_udc.c       | 22 +++++++++
 drivers/usb/gadget/udc/pch_udc.c        | 14 +++++-
 drivers/usb/gadget/udc/pxa25x_udc.c     | 32 +++++++++++++
 drivers/usb/gadget/udc/pxa27x_udc.h     | 33 +++++++------
 drivers/usb/gadget/udc/r8a66597-udc.c   | 10 ++++
 drivers/usb/gadget/udc/s3c-hsudc.c      | 15 ++++++
 drivers/usb/gadget/udc/s3c2410_udc.c    | 10 ++++
 drivers/usb/gadget/udc/udc-xilinx.c     |  9 ++++
 drivers/usb/isp1760/isp1760-udc.c       | 11 +++++
 drivers/usb/musb/musb_gadget.c          | 12 +++++
 drivers/usb/renesas_usbhs/mod_gadget.c  |  6 +++
 include/linux/usb/gadget.h              | 42 +++++++++++++++++
 35 files changed, 633 insertions(+), 153 deletions(-)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ