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:	Fri, 23 Oct 2015 15:32:33 +0300
From:	Daniel Baluta <daniel.baluta@...el.com>
To:	jic23@...nel.org, jlbec@...lplan.org, linux-iio@...r.kernel.org,
	linux-fsdevel@...r.kernel.org, lars@...afoo.de, hch@....de
Cc:	knaack.h@....de, linux-kernel@...r.kernel.org,
	octavian.purdila@...el.com, pebolle@...cali.nl,
	patrick.porlan@...el.com, adriana.reus@...el.com,
	constantin.musca@...el.com, marten@...uitiveaerial.com,
	daniel.baluta@...el.com, cristina.opriceana@...il.com,
	pmeerw@...erw.net, viro@...iv.linux.org.uk,
	akpm@...ux-foundation.org
Subject: [PATCH v9 0/5] Add initial configfs support for IIO

This patchset introduces IIO software triggers, offers a way of configuring
them via configfs and adds the IIO hrtimer based interrupt source to be used
with software triggers.

The arhitecture is now split in 3 parts, to remove all IIO trigger specific
parts from IIO configfs core:

(1) IIO configfs - creates the root of the IIO configfs subsys.
(2) IIO software triggers - software trigger implementation, dynamically
	creating /config/iio/triggers group.
(3) IIO hrtimer trigger - is the first interrupt source for software triggers
        (with syfs to follow). Each trigger type can implement its own set of
        attributes.

Lockdep seems to be happy with the locking in configfs patch.

Changes since v8:
   * patch 1/5
	* dynamically allocate groups as suggested by Christoph
	* add kernel-doc documentation to the newly introduced functions
   * patch 2/5
	* better isolation, here we only create the root of the IIO configfs
	subys, and let the other modules (e.g software triggers) to create their
	group.
   * patch 3/5
	* dynamically create triggers/ group to better isolate the code
	* fixes 0-day build warnings and compilation errors.
   * patch 4/5
	* none
   * patch 5/5
	* none

Changes since v7:
   * patch 1/5
        * do not add dentry parameter for create_default_group, we can
          retrieve it from group.
        * call configfs_detach_prep before configfs_detach_group in
          configfs_unregister_group.
        * call link_group/unlink_group under su_mutex lock
        * take configfs_dirent_lock when calling configfs_dir_set_ready
  * patch 2/5
        * export iio_triggers_group, this will be later used by sw triggers
  * patch 3/5
        * make iio_sw_trigger part of industrialio core
        * fix compilation problem reported by Vladimir and Lars. Things didn't
        get well when having IIO_SW_TRIGGER enabled and IIO_CONFIGFS disabled.
        * use format string in config_item_set_name
        * make iio_unregister_sw_trigger_type return type void.
  * patch 4/5
        * none
  * patch 5/5
        * include a small trigger type sample example.

Changes since v6:
        * implemented Lars-Peter's idea (https://lkml.org/lkml/2015/5/13/302)
        to switch from /config/iio/triggers/hrtimer-instance1 to
        /config/iio/triggers/instance1.

Changes since v5: (after Lars comments)
        * the most important change is that we moved sampling_frequency attribute
        from configfs to trigger's directory in /sys.
        * couple of const added to strings
        * documentation to public API in sw_trigger.h
        * replace pr_err with WARN_ONCE in trigger_make_group to avoid spamming
        kernel log, but without leaving user clueless in case of errors.
        * we still need to decide if we get a real gain by adding min/max limits
        for sampling frequency in /config dir. Anyhow, this can be done in a later
        patch.
        * fix race in hrtimer_remove

Changes since v4:
        * patch 1/4
                - fixed "new line" nit in industrialio-sw-trigger.c
                - added license header in sw_trigger.h o
        * patch 2/4
                - none
        * patch 3/4
                - none
        * patch 4/4
                - removed "Further work" chapter in iio_configfs.txt

                - added configfs-iio file in Documentation/ABI/testing

Daniel Baluta (5):
  configfs: Allow dynamic group creation
  iio: core: Introduce IIO configfs support
  iio: core: Introduce IIO software triggers
  iio: trigger: Introduce IIO hrtimer based trigger
  iio: Documentation: Add IIO configfs documentation

 Documentation/ABI/testing/configfs-iio |  21 ++++
 Documentation/iio/iio_configfs.txt     |  93 +++++++++++++++
 drivers/iio/Kconfig                    |  16 +++
 drivers/iio/Makefile                   |   2 +
 drivers/iio/industrialio-configfs.c    |  50 ++++++++
 drivers/iio/industrialio-sw-trigger.c  | 206 +++++++++++++++++++++++++++++++++
 drivers/iio/trigger/Kconfig            |  10 ++
 drivers/iio/trigger/Makefile           |   2 +
 drivers/iio/trigger/iio-trig-hrtimer.c | 193 ++++++++++++++++++++++++++++++
 fs/configfs/dir.c                      | 102 ++++++++++++++++
 include/linux/configfs.h               |   8 ++
 include/linux/iio/sw_trigger.h         |  71 ++++++++++++
 12 files changed, 774 insertions(+)
 create mode 100644 Documentation/ABI/testing/configfs-iio
 create mode 100644 Documentation/iio/iio_configfs.txt
 create mode 100644 drivers/iio/industrialio-configfs.c
 create mode 100644 drivers/iio/industrialio-sw-trigger.c
 create mode 100644 drivers/iio/trigger/iio-trig-hrtimer.c
 create mode 100644 include/linux/iio/sw_trigger.h

-- 
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