1. 17 Sep, 2014 10 commits
  2. 14 Jul, 2014 8 commits
  3. 11 Jun, 2014 5 commits
  4. 25 Apr, 2014 3 commits
  5. 24 Apr, 2014 3 commits
    • Alessandro Rubini's avatar
      zio_trigger_abort_disable() may sleep, waiting for CSET_HW_BUSY · bd476cb4
      Alessandro Rubini authored
      Previously, the enable/disable sysfs store had to complete atomically,
      as zio takes a spinlock to serialize the various concurrent enable and
      disable that may happen.
      
      Unfortunately, this is a problem when the hardware is keeping data
      structures busy, and commit b77ca7f0 is not enough to solve the
      problem: That commit uses udelay(10) in a loop, but in one
      installation of ours the hardware operation runs in a work queue,
      whereas the driving application has real-time priority.  So we really
      need to schedule (or change the priorities, which is denied to us).
      But we cannot schedule while holding a spinlock.
      
      This patch, thus, make the following changes:
      
      * zio_trigger_abort_disable() is renamed to __zio_trigger_abort_disable()
      and does not sleep, but it returns -EAGAIN if HW_BUSY.
      
      * a new zio_trigger_abort_disable() is offered, that retries while
      scheduling.  This covers all sysfs users, but one, so this keeps the
      patch smaller than I initially wrote it.
      
      * __zobj_enable() return int, not void: 0 or -EAGAIN (without
      sleeping, as it calls the new __zio_trigger_abort_disable()). It's an
      internal function in ./sysfs.c, so this is not a problem.
      
      * zobj_store_enable() accepts -AGAIN, and loops over if so.
      
      This is more difficult than expected (I loved b77ca7f0), but I see no
      easier solution to the weird RT priorities our users deploy.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      bd476cb4
    • Alessandro Rubini's avatar
      cset: rename BUSY to HW_BUSY · 1298bc57
      Alessandro Rubini authored
      This flag has one user no more, but I already found the name
      confusing while working on that only user -- a driver.
      
      So this renames the flag, to make clear to readers (and myself) that
      only hardware can set and clear the flag, obviously under cset lock.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      1298bc57
    • Federico Vaga's avatar
      bus: use bus_groups instead of bus_attrs on kernel > 3.11 · faf2a79c
      Federico Vaga authored
      The Linux kernel patch b4e46138f946442608647be58e78e3ad4d15534e
      removes bus_type.bus_attrs
      Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
      Acked-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      faf2a79c
  6. 02 Apr, 2014 1 commit
  7. 07 Mar, 2014 4 commits
  8. 04 Mar, 2014 1 commit
  9. 26 Feb, 2014 3 commits
  10. 24 Feb, 2014 2 commits