1. 25 May, 2018 18 commits
    • NeilBrown's avatar
      staging: lustre: move lnet_debug_log_upcall declaration to tracefile.h · 17bcf37a
      NeilBrown authored
      Both files that use this variable include tracefile.h, and it
      seems a more suitable home for the declaration.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      17bcf37a
    • NeilBrown's avatar
      staging: lustre: make lnet_debugfs_symlink_def local to libcfs/modules.c · c4f90771
      NeilBrown authored
      This type is only used in libcfs/module.c, so make it local to there.
      If any other module ever wanted to add its own symlinks,
      it would probably be easiest to export lnet_debugfs_root
      and just call debugfs_create_symlink as required.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c4f90771
    • NeilBrown's avatar
      staging: lustre: clean up __LIBCFS_H macro · 1c36b6de
      NeilBrown authored
      There is some confusion with names here - make it all uniform.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1c36b6de
    • NeilBrown's avatar
      staging: lustre: replace libcfs_register_ioctl with a blocking notifier_chain · 912a8460
      NeilBrown authored
      libcfs allows other modules to register handlers for ioctls.
      The implementation it uses for this is nearly identical to a
      blocking notifier chain, so change to use that.
      
      The biggest difference is that the return value from notifier has a
      defined format, where libcfs_register_ioctl uses -EINVAL to mean
      "continue".  This requires a little bit of conversion.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      912a8460
    • NeilBrown's avatar
      staging: lustre: discard cfs_block_sigsinv() · 6afe572b
      NeilBrown authored
      cfs_block_sigsinv() and cfs_restore_sigs() are simple
      wrappers which save a couple of line of code and
      hurt readability for people not familiar with them.
      They aren't used often enough to be worthwhile,
      so discard them and open-code the functionality.
      
      The sigorsets() call isn't needed as or-ing with current->blocked is
      exactly what sigprocmask(SIG_BLOCK) does.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6afe572b
    • NeilBrown's avatar
      staging: lustre: move LERRCHKSUM() to libcfs_debug.h · 44a3c263
      NeilBrown authored
      This macro is only used for debug messages, so use
      it to the debug code.
      Also improve the documentation slightly.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      44a3c263
    • NeilBrown's avatar
      staging: lustre: discard CFS_TICK · 0f382119
      NeilBrown authored
      This undocumented macro seems to represent "a small amount of time".
      Sometimes it is used as-is, some times it is multiplied by 5 for no
      obvious reason.
      It does not appear that there is any connection between the different
      places it is used - they all just want a short period for different
      purposes and of different durarions.
      
      So discard CFS_TICK and lets each use-site just use whatever number
      of jiffies seems appropriate in that case.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0f382119
    • NeilBrown's avatar
      staging: lustre: discard LOWEST_BIT_SET() · 8cb65147
      NeilBrown authored
      This macro is only used once to test if a value is
      a power of two.  So use is_power_of_2() instead and
      discard the macro.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8cb65147
    • NeilBrown's avatar
      staging: lustre: discard cfs_cap_t, use kernel_cap_t · 18f92a6e
      NeilBrown authored
      lustre only sends 32bits of capabilities in on-the-wire RPC calls.
      It current strips off higher bits and uses a 32bit cfs_cap_t
      throughout.
      Though there is a small memory cost, it is cleaner to use
      kernel_cap_t throughout and only truncate when marshalling
      data for RPC calls.
      
      So this patch replaces cfs_cap_t with kernel_cap_t throughout,
      and where a cfs_cap_t was previous stored in a __u32, we now
      store cap.cap[0] instead.
      
      With this, we can remove include/linux/libcfs/curproc.h
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      18f92a6e
    • NeilBrown's avatar
      staging: lustre: simplify capability dropping. · f497115d
      NeilBrown authored
      Lustre has a 'squash credentials' concept similar to the "anon_uid"
      for nfsd.  When accessing a file with squashed credentials, we
      need to also drop capabilities.
      Linux has cap_drop_fs_set() and cap_drop_nfsd_set().  Rather than
      taking a completely different approach, this patch changes lustre
      to use this same cap_drop_*_set() approach.
      
      With this change we also drop CAP_MKNOD and CAP_MAC_OVERRIDE
      which are probably appropriate, and don't drop
      CAP_SYS_ADMIN or CAP_SYS_BOOT which should be irrelevant for
      file permission checking
      
      Calling both cap_drop_*_set() seems a bit clumsy, but gets
      the job done.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f497115d
    • NeilBrown's avatar
      staging: lustre: remove current_pid() and current_comm() · 63fd7d04
      NeilBrown authored
      Just use current->pid and current->comm directly, instead
      of having wrappers.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      63fd7d04
    • NeilBrown's avatar
      staging: lustre: remove conditional compilation from libcfs_cpu.c · 7b8e2026
      NeilBrown authored
      libcfs_cpu.c manages CPU partitions.  In the !CONFIG_SMP case, most
      of this disappears and 'static inline's from libcfs_cpu.h are used.
      However we still allocate a 'struct cfs_cpt_table' and keep some
      dummy data in it.  This is a bit pointless.
      
      This patch removes all the !CONFIG_SMP code from libcfs_cpu.c and
      conditionally compiles the whole file only when CONFIG_SMP.
      We no longer allocate a 'struct cfs_cpt_table' on !CONFIG_SMP,
      and don't even declare a structure.  The name "cfs_cpt_tab"
      becomes always "NULL", which allows some code to be optimized away.
      
      This means that cfs_cpt_tab can sometimes be NULL, so we need to
      discard the assertion that it isn't.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7b8e2026
    • NeilBrown's avatar
      staging: lustre: rename cfs_cpt_table to cfs_cpt_tab · 457d63ea
      NeilBrown authored
      The variable "cfs_cpt_table" has the same name as
      the structure "struct cfs_cpt_table".
      This makes it hard to use #define to make one disappear
      on a uni-processor build, but keep the other.
      So rename the variable to cfs_cpt_tab.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      457d63ea
    • NeilBrown's avatar
      staging: lustre: move files out of lustre/lnet/libcfs/linux/ · f72c3ab7
      NeilBrown authored
      There is no longer any value in having this separate
      subdirectory, so promote the files in it.
      Also tidy the Makefile a little to use the common "*-obj-y"
      macro name.  This will allow individual files to be conditionally
      compiled.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f72c3ab7
    • NeilBrown's avatar
      staging: lustre: refactor libcfs initialization. · 64bf0b1a
      NeilBrown authored
      Many lustre modules depend on libcfs having initialized
      properly, but do not explicit check that it did.
      When lustre is built as discrete modules, this does not
      cause a problem because if the libcfs module fails
      initialization, the other modules don't even get loaded.
      
      When lustre is compiled into the kernel, all module_init()
      routines get run, so they need to check the required initialization
      succeeded.
      
      This patch splits out the initialization of libcfs into a new
      libcfs_setup(), and has all modules call that.
      
      The misc_register() call is kept separate as it does not allocate any
      resources and if it fails, it fails hard - no point in retrying.
      Other set-up allocates resources and so is best delayed until they
      are needed, and can be worth retrying.
      
      Ideally, the initialization would happen at mount time (or similar)
      rather than at load time.  Doing this requires each module to
      check dependencies when they are activated rather than when
      they are loaded.  Achieving that is a much larger job that would
      have to progress in stages.
      
      For now, this change ensures that if some initialization in libcfs
      fails, other modules will fail-safe.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      64bf0b1a
    • NeilBrown's avatar
      staging: lustre: osc: tidy up osc_init() · e67f133d
      NeilBrown authored
      A module_init() function that registers the services
      of the module should do that last, after all other
      initialization has succeeded.
      This patch moves the class_register_type() call to the
      end and ensures everything else that might have been
      set up, is cleaned up on error.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e67f133d
    • Nishad Kamdar's avatar
      staging: comedi: comedidev.h: Fix SPDX-License-Identifier tag style · 03f17b5d
      Nishad Kamdar authored
      Replace // SPDX-License-Identifier: GPL-2.0+ by
      /* SPDX-License-Identifier: GPL-2.0+ */ as per licensing rule
      for C header files. Issue found by checkpatch. Part of
      Eudyptula Challenge.
      Signed-off-by: default avatarNishad Kamdar <nishadkamdar@gmail.com>
      Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      03f17b5d
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-for-4.18b' of... · 5e667ac2
      Greg Kroah-Hartman authored
      Merge tag 'iio-for-4.18b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      
      Jonathan writes:
      
      Second set of new device support, features and cleanup for IIO in the 4.18 cycle
      
      Usual mixture of new devices support and other stuff.  A couple of
      staging graduations in here and some old driver drops.
      
      New device support
      * ad5686
        - Add support for AD5691R, AD5692R, AD5693 and AD5693R i2c DACs
        - Add support for AD5681R, AD5682R, AD5683 and AD5683R SPI DACs
      * lmp91000
        - Add ID for LMP91002
      * stm32-dfsdm
        - Add support for the stm32mp1 devices.
      
      Drivers dropped
      * ADE7753
        - No longer easily available, no users came forward and needs a lot
          of work to move out of staging.
      * ADE7754
      * ADE7758
      * ADE7759
      
      Staging graduations
      - ad2s1200 - good cleanup from David Veenstra.
      - tsl2772 (was tsl2x7x) - Brian's quest is at an end and
        staging/iio/light is no more!
      
      Features
      * tools
        - loop forever on a negative number of loops being specified.
      * ltc 2632
        - add of_match_table
        - support an external reference regulator.
      * mag3110
        - Support continuous mode when running fast as it increases the
          posssible sampling rate.
      * ti-ads8688
        - Add trigger and buffer support to this ADC.
      
      Cleanups / minor tweaks.
      * tools
        - tidy up types in iio_generic_buffer.
      * ad2s1200
        - Whitespace cleanup.
        - Drop pointless initializations.
        - Improve kernel docs.
        - Reorder to setup the SPI prior to device registration (race fix).
        - Change to modern gpiod framework.
        - Drop platform data and move to DT bindings. There are no in
          kernel users of the platform data. Any out of tree boards will
          need changes.
        - Add an explicit compatible table.
        - Provide _scale for angular velocity and angle channels.
        - Add David Veenstra to copyright notice as this cleanup was non
          trivial.
      * ade8366
        - Avoid a race by ensuring channel init is before registration
          with the subsystem.
      * afe
        - binding spelling fix.
      * imx7d-adc
        - typo fix in Freescale
      * inv_mpu6050
        - tidy up an ugly loop to take advantage of known entry condition.
        - add a comment explaining why the sensible sampling frequencies
          are more limited than might be immediately apparent (aliasing).
      * mma8452
        - reduce the sleep time on data not ready when running at high
          frequency.
      * stm32-dfsdm
        - add missing header.
      * tsl2583
        - fix integration_time_availabe which was in microsecs rather the
          millisecs.
      * tsl2x7x/tsl2772
        - Whitespace cleanup.
        - Change to direct returns where sensible.
        - Turn the chip off in the registration error path.
        - Use macro to reduce repition when setting up the device_info
          structures.
        - Change the _available attributes over to read_avail callback,
          and the range definitions that supports.
        - Fix some wrong period values.
        - Add some range checkign for _write_raw.
        - Rename the driver to tsl2772 to avoid wild card clash problems
          in future.
      5e667ac2
  2. 22 May, 2018 5 commits
  3. 20 May, 2018 17 commits