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]
Date:   Wed, 15 Nov 2017 14:51:47 -0600
From:   Alan Tull <atull@...nel.org>
To:     Moritz Fischer <mdf@...nel.org>
Cc:     Alan Tull <atull@...nel.org>, linux-kernel@...r.kernel.org,
        linux-fpga@...r.kernel.org
Subject: [PATCH v2 0/5] fpga: don't use drvdata in common fpga code

This patch set goes on top of v6 of the non-dt support patchset that has
been acked and I've asked Greg KH to send upstream.

This patchset changes the fpga_*_register functions to not set drvdata,
and changes parameters for register/unregister functions.  Also a
bug fix due to changes in the DT overlay code.

Setting drvdata is fine for DT based devices, that will have one
manager, bridge, or region device per platform device.  PCIe based
devices may have multiple FPGA mgr/bridge/regions under one pcie
device.  Without these changes, PCIe-based solutions have to create an
extra device for each child mgr/bridge/region to hold drvdata.

Also changing the fpga_*_register/unregister functions to take the
corresponding struct as the only parameter wherever they weren't already.

* int fpga_bridge_register(struct fpga_bridge *br)
* int fpga_mgr_register(struct fpga_manager *mgr)
* int fpga_region_register(struct fpga_region *region)
* void fpga_bridge_unregister(struct fpga_bridge *br)
* void fpga_mgr_unregister(struct fpga_manager *mgr)
* int fpga_region_unregister(struct fpga_region *region)

Other changes:

- Callers of fpga_(bridge|mgr)_register, are changed to alloc the
bridge/mgr struct and partly fill it, adding name, ops and priv.
- Caller uses devm for allocating the mgr/bridge structures.
- Change the FPGA Region DT notifier to return NOTIFY_STOP if
the overlay should be accepted.

I posted a branch to the linux-fpga repo on kernel.org which has both
the v6 non-DT support patchset and this v2 patchset for convenience.
Branch name is next-20171113-non-dt-support-v6+v2

Alan

Alan Tull (5):
  fpga: region: don't use drvdata in common fpga code
  fpga: manager: don't use drvdata in common fpga code
  fpga: bridge: don't use drvdata in common fpga code
  fpga: region: change fpga_region_register to have one param
  fpga: region: return NOTIFY_STOP if overlay shoud be accepted

 Documentation/fpga/fpga-mgr.txt     | 24 ++++++++++++-----
 Documentation/fpga/fpga-region.txt  |  3 +--
 drivers/fpga/altera-cvp.c           | 18 ++++++++++---
 drivers/fpga/altera-fpga2sdram.c    | 20 +++++++++++---
 drivers/fpga/altera-freeze-bridge.c | 18 ++++++++++---
 drivers/fpga/altera-hps2fpga.c      | 16 ++++++++---
 drivers/fpga/altera-pr-ip-core.c    | 17 ++++++++++--
 drivers/fpga/altera-ps-spi.c        | 18 ++++++++++---
 drivers/fpga/fpga-bridge.c          | 53 ++++++++++++++-----------------------
 drivers/fpga/fpga-mgr.c             | 49 +++++++++++++---------------------
 drivers/fpga/fpga-region.c          | 13 ++++++---
 drivers/fpga/ice40-spi.c            | 20 +++++++++++---
 drivers/fpga/of-fpga-region.c       |  9 ++++---
 drivers/fpga/socfpga-a10.c          | 16 ++++++++---
 drivers/fpga/socfpga.c              | 18 ++++++++++---
 drivers/fpga/ts73xx-fpga.c          | 18 ++++++++++---
 drivers/fpga/xilinx-pr-decoupler.c  | 15 ++++++++---
 drivers/fpga/xilinx-spi.c           | 18 ++++++++++---
 drivers/fpga/zynq-fpga.c            | 16 ++++++++---
 include/linux/fpga/fpga-bridge.h    |  7 ++---
 include/linux/fpga/fpga-mgr.h       |  8 +++---
 include/linux/fpga/fpga-region.h    |  4 ++-
 22 files changed, 270 insertions(+), 128 deletions(-)

-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ