1. 06 4月, 2017 3 次提交
    • M
      IB/core: Add idr based standard types · 6be60aed
      Matan Barak 提交于
      This patch adds the standard idr based types. These types are
      used in downstream patches in order to initialize, destroy and
      lookup IB standard objects which are based on idr objects.
      
      An idr object requires filling out several parameters. Its op pointer
      should point to uverbs_idr_ops and its size should be at least the
      size of ib_uobject. We add a macro to make the type declaration easier.
      Signed-off-by: NMatan Barak <matanb@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Reviewed-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      6be60aed
    • M
      IB/core: Add support for idr types · 38321256
      Matan Barak 提交于
      The new ioctl infrastructure supports driver specific objects.
      Each such object type has a hot unplug function, allocation size and
      an order of destruction.
      
      When a ucontext is created, a new list is created in this ib_ucontext.
      This list contains all objects created under this ib_ucontext.
      When a ib_ucontext is destroyed, we traverse this list several time
      destroying the various objects by the order mentioned in the object
      type description. If few object types have the same destruction order,
      they are destroyed in an order opposite to their creation.
      
      Adding an object is done in two parts.
      First, an object is allocated and added to idr tree. Then, the
      command's handlers (in downstream patches) could work on this object
      and fill in its required details.
      After a successful command, the commit part is called and the user
      objects become ucontext visible. If the handler failed, alloc_abort
      should be called.
      
      Removing an uboject is done by calling lookup_get with the write flag
      and finalizing it with destroy_commit. A major change from the previous
      code is that we actually destroy the kernel object itself in
      destroy_commit (rather than just the uobject).
      
      We should make sure idr (per-uverbs-file) and list (per-ucontext) could
      be accessed concurrently without corrupting them.
      Signed-off-by: NMatan Barak <matanb@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      38321256
    • M
      IB/core: Refactor idr to be per uverbs_file · 771addf6
      Matan Barak 提交于
      The current code creates an idr per type. Since types are currently
      common for all drivers and known in advance, this was good enough.
      However, the proposed ioctl based infrastructure allows each driver
      to declare only some of the common types and declare its own specific
      types.
      
      Thus, we decided to implement idr to be per uverbs_file.
      Signed-off-by: NMatan Barak <matanb@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NHaggai Eran <haggaie@mellanox.com>
      Reviewed-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      771addf6
  2. 19 3月, 2017 26 次提交
  3. 17 3月, 2017 1 次提交
  4. 16 3月, 2017 4 次提交
  5. 15 3月, 2017 6 次提交
    • R
      cpufreq: intel_pstate: Avoid percentages in limits-related computations · e4c204ce
      Rafael J. Wysocki 提交于
      Currently, intel_pstate_update_perf_limits() first converts the
      policy minimum and maximum limits into percentages of the maximum
      turbo frequency (rounding up to an integer) and then converts these
      percentages to fractions (by using fixed-point arithmetic to divide
      them by 100).
      
      That introduces a rounding error unnecessarily, because the fractions
      can be obtained by carrying out fixed-point divisions directly on the
      input numbers.
      
      Rework the computations in intel_pstate_hwp_set() to use fractions
      instead of percentages (and drop redundant local variables from
      there) and modify intel_pstate_update_perf_limits() to compute the
      fractions directly and percentages out of them.
      
      While at it, introduce percent_ext_fp() for converting percentages
      to fractions (with extended number of fraction bits) and use it in
      the computations.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e4c204ce
    • A
      drm: amd: remove broken include path · 655d9ca9
      Arnd Bergmann 提交于
      The AMD ACP driver adds "-I../acp -I../acp/include" to the gcc command
      line, which makes no sense, since these are evaluated relative to the
      build directory. When we build with "make W=1", they instead cause
      a warning:
      
      cc1: error: ../acp/: No such file or directory [-Werror=missing-include-dirs]
      cc1: error: ../acp/include: No such file or directory [-Werror=missing-include-dirs]
      cc1: all warnings being treated as errors
      ../scripts/Makefile.build:289: recipe for target 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.o' failed
      ../scripts/Makefile.build:289: recipe for target 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.o' failed
      ../scripts/Makefile.build:289: recipe for target 'drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o' failed
      
      This removes the subdir-ccflags variable that evidently did not
      serve any purpose here.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      655d9ca9
    • M
      qed: Enable iSCSI Out-of-Order · 6b116b1d
      Mintz, Yuval 提交于
      Missing in the initial submission, qed fails to propagate qedi's
      request to enable OOO to firmware.
      
      Fixes: fc831825 ("qed: Add support for hardware offloaded iSCSI")
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6b116b1d
    • M
      qed: Correct out-of-bound access in OOO history · db31d330
      Mintz, Yuval 提交于
      Need to set the number of entries in database, otherwise the logic
      would quickly surpass the array.
      
      Fixes: 1d6cff4f ("qed: Add iSCSI out of order packet handling")
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db31d330
    • R
      qed: Fix interrupt flags on Rx LL2 · 1df2aded
      Ram Amrani 提交于
      Before iterating over the the LL2 Rx ring, the ring's
      spinlock is taken via spin_lock_irqsave().
      The actual processing of the packet [including handling
      by the protocol driver] is done without said lock,
      so qed releases the spinlock and re-claims it afterwards.
      
      Problem is that the final spin_lock_irqrestore() at the end
      of the iteration uses the original flags saved from the
      initial irqsave() instead of the flags from the most recent
      irqsave(). So it's possible that the interrupt status would
      be incorrect at the end of the processing.
      
      Fixes: 0a7fb11c ("qed: Add Light L2 support");
      CC: Ram Amrani <Ram.Amrani@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1df2aded
    • M
      qed: Free previous connections when releasing iSCSI · 4621ceb2
      Mintz, Yuval 提交于
      Fixes: fc831825 ("qed: Add support for hardware offloaded iSCSI")
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4621ceb2