1. 07 Sep, 2012 3 commits
    • Paolo Bonzini's avatar
      target: fail REPORT LUNS with less than 16 bytes of payload · 9b16b9ed
      Paolo Bonzini authored
      SPC says:
      
      "The ALLOCATION LENGTH field is defined in 4.3.5.6. The allocation length
      should be at least 16.  Device servers compliant with SPC return CHECK
      CONDITION status, with the sense key set to ILLEGAL REQUEST, and the
      additional sense code set to INVALID FIELD IN CDB when the allocation
      length is less than 16 bytes".
      
      Testcase: sg_raw -r8 /dev/sdb a0 00 00 00 00 00 00 00 00 08 00 00
          should fail with ILLEGAL REQUEST / INVALID FIELD IN CDB sense
          does not fail without the patch
          fails correctly with the patch
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      9b16b9ed
    • Paolo Bonzini's avatar
      target: report too-small parameter lists everywhere · 0d7f1299
      Paolo Bonzini authored
      Several places were not checking that the parameter list length
      was large enough, and thus accessing invalid memory.  Zero-length
      parameter lists are just a special case of this.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      0d7f1299
    • Paolo Bonzini's avatar
      target: go through normal processing for zero-length PSCSI commands · 306c11b2
      Paolo Bonzini authored
      Right now, commands with a zero-size payload are skipped completely.
      This is wrong; such commands should be passed down to the device and
      processed normally.
      
      For physical backends, this ignores completely things such as START
      STOP UNIT.  For virtual backends, we have a hack in place to clear a
      unit attention state on a zero-size REQUEST SENSE, but we still do
      not report errors properly on zero-length commands---out-of-bounds
      0-block reads and writes, too small parameter list lengths, etc.
      
      This patch fixes this for PSCSI.  Uses of transport_kmap_data_sg are
      guarded with a check for non-zero cmd->data_length; for all other
      commands a zero length is handled properly in pscsi_execute_cmd.
      The sole exception will be for now REPORT LUNS, which is handled
      through the normal SPC emulation.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      306c11b2
  2. 06 Sep, 2012 3 commits
  3. 27 Aug, 2012 1 commit
  4. 23 Aug, 2012 1 commit
    • Nicholas Bellinger's avatar
      target: Fix ->data_length re-assignment bug with SCSI overflow · 4c054ba6
      Nicholas Bellinger authored
      This patch fixes a long-standing bug with SCSI overflow handling
      where se_cmd->data_length was incorrectly being re-assigned to
      the larger CDB extracted allocation length, resulting in a number
      of fabric level errors that would end up causing a session reset
      in most cases.  So instead now:
      
       - Only re-assign se_cmd->data_length durining UNDERFLOW (to use the
         smaller value)
       - Use existing se_cmd->data_length for OVERFLOW (to use the smaller
         value)
      
      This fix has been tested with the following CDB to generate an
      SCSI overflow:
      
        sg_raw -r512 /dev/sdc 28 0 0 0 0 0 0 0 9 0
      
      Tested using iscsi-target, tcm_qla2xxx, loopback and tcm_vhost fabric
      ports.  Here is a bit more detail on each case:
      
       - iscsi-target: Bug with open-iscsi with overflow, sg_raw returns
                       -3584 bytes of data.
       - tcm_qla2xxx: Working as expected, returnins 512 bytes of data
       - loopback: sg_raw returns CHECK_CONDITION, from overflow rejection
                   in transport_generic_map_mem_to_cmd()
       - tcm_vhost: Same as loopback
      Reported-by: default avatarRoland Dreier <roland@purestorage.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Boaz Harrosh <bharrosh@panasas.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      4c054ba6
  5. 21 Aug, 2012 1 commit
  6. 20 Aug, 2012 2 commits
  7. 18 Aug, 2012 1 commit
    • Nicholas Bellinger's avatar
      target: Fix regression bug with handling of zero-length data CDBs · 74f4cf29
      Nicholas Bellinger authored
      This patch fixes a regression bug with the handling of zero-length
      data CDBs within transport_generic_new_cmd() code.  The bug was introduced
      with the following commit as part of the single task conversion work:
      
        commit 4101f0a8
        Author: Christoph Hellwig <hch@infradead.org>
        Date:   Tue Apr 24 00:25:03 2012 -0400
      
            target: always allocate a single task
      
      where the zero-length check for SCF_SCSI_DATA_SG_IO_CDB was incorrectly
      changed to SCF_SCSI_CONTROL_SG_IO_CDB because of the seperate comment
      in transport_generic_new_cmd() wrt to control CDBs zero-length handling
      introduced in:
      
        commit 91ec1d35
        Author: Nicholas Bellinger <nab@linux-iscsi.org>
        Date:   Fri Jan 13 12:01:34 2012 -0800
      
            target: Add workaround for zero-length control CDB handling
      
      So go ahead and change transport_generic_new_cmd() to handle control+data
      zero-length CDBs in the same manner for this special case.
      
      Tested with iscsi-target + loopback fabric port LUNs on 3.6-rc0 code.
      
      This patch will also need to be picked up for 3.5-stable.
      
      (hch: Add proper comment in transport_generic_new_cmd)
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Andy Grover <agrover@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      74f4cf29
  8. 17 Aug, 2012 6 commits
    • Nicholas Bellinger's avatar
      target/pscsi: Fix bug with REPORT_LUNs handling for SCSI passthrough · 1d2a2cd9
      Nicholas Bellinger authored
      This patch fixes a regression bug in pscsi_transport_complete() callback
      code where *pt was being NULL dereferenced during REPORT_LUNS handling,
      that was introduced with the spc/sbc refactoring in:
      
      commit 1fd032ee
      Author: Christoph Hellwig <hch@infradead.org>
      Date:   Sun May 20 11:59:15 2012 -0400
      
          target: move code for CDB emulation
      
      As this is a special case for pscsi_parse_cdb() to call spc_parse_cdb() to
      allow TCM to handle REPORT_LUN emulation, pscsi_plugin_task will have not
      been allocated..
      
      So now in pscsi_transport_complete() just check for existence of *pt and
      return for this special case.
      Reported-by: default avatarAlex Elsayed <eternaleye+usenet@gmail.com>
      Cc: Alex Elsayed <eternaleye+usenet@gmail.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      1d2a2cd9
    • Nicholas Bellinger's avatar
      tcm_vhost: Change vhost_scsi_target->vhost_wwpn to char * · 5b7517f8
      Nicholas Bellinger authored
      This patch changes the vhost_scsi_target->vhost_wwpn[] type used
      by VHOST_SCSI_* ioctls to 'char *' as requested by Blue Swirl in
      order to match the latest QEMU vhost-scsi RFC-v3 userspace code.
      
      Queuing this up into target-pending/master for a -rc3 PULL.
      Reported-by: default avatarBlue Swirl <blauwirbel@gmail.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      5b7517f8
    • Yi Zou's avatar
      target: fix NULL pointer dereference bug alloc_page() fails to get memory · d0e27c88
      Yi Zou authored
      I am hitting this bug when the target is low in memory that fails the
      alloc_page() for the newly submitted command. This is a sort of off-by-one
      bug causing NULL pointer dereference in __free_page() since 'i' here is
      really the counter of total pages that have been successfully allocated here.
      Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
      Cc: Andy Grover <agrover@redhat.com>
      Cc: Nicholas Bellinger <nab@linux-iscsi.org>
      Cc: Open-FCoE.org <devel@open-fcoe.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      d0e27c88
    • Mark Rustad's avatar
      tcm_fc: Avoid debug overhead when not debugging · 1fa8f450
      Mark Rustad authored
      Stop doing a pile of work related to debugging messages when
      the ft_debug_logging flag is not set. Use unlikely to add the
      check in a way that the check can be inlined without inlining the
      whole thing.
      Signed-off-by: default avatarMark Rustad <mark.d.rustad@intel.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      1fa8f450
    • Nicholas Bellinger's avatar
      tcm_vhost: Post-merge review changes requested by MST · 101998f6
      Nicholas Bellinger authored
      This patch contains the post RFC-v5 (post-merge) changes, this includes:
      
      - Add locking comment
      - Move vhost_scsi_complete_cmd ahead of TFO callbacks in order to
        drop forward declarations
      - Drop extra '!= NULL' usage in vhost_scsi_complete_cmd_work()
      - Change vhost_scsi_*_handle_kick() to use pr_debug
      - Fix possible race in vhost_scsi_set_endpoint() for vs->vs_tpg checking
        + assignment.
      - Convert tv_tpg->tpg_vhost_count + ->tv_tpg_port_count from atomic_t ->
        int, and make sure reference is protected by ->tv_tpg_mutex.
      - Drop unnecessary vhost_scsi->vhost_ref_cnt
      - Add 'err:' label for exception path in vhost_scsi_clear_endpoint()
      - Add enum for VQ numbers, add usage in vhost_scsi_open()
      - Add vhost_scsi_flush() + vhost_scsi_flush_vq() following
        drivers/vhost/net.c
      - Add smp_wmb() + vhost_scsi_flush() call during vhost_scsi_set_features()
      - Drop unnecessary copy_from_user() usage with GET_ABI_VERSION ioctl
      - Add missing vhost_scsi_compat_ioctl() caller for vhost_scsi_fops
      - Fix function parameter definition first line to follow existing
        vhost code style
      - Change 'vHost' usage -> 'vhost' in handful of locations
      - Change -EPERM -> -EBUSY usage for two failures in tcm_vhost_drop_nexus()
      - Add comment for tcm_vhost_workqueue in tcm_vhost_init()
      - Make GET_ABI_VERSION return 'int' + add comment in tcm_vhost.h
      Reported-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Cc: Anthony Liguori <aliguori@us.ibm.com>
      Cc: Zhi Yong Wu <wuzhy@cn.ibm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      101998f6
    • Fengguang Wu's avatar
      tcm_vhost: Fix incorrect IS_ERR() usage in vhost_scsi_map_iov_to_sgl · f0e0e9bb
      Fengguang Wu authored
      Fix up a new coccinelle warnings reported by Fengguang Wu + Intel
      0-DAY kernel build testing backend:
      
      drivers/vhost/tcm_vhost.c:537:23-29: ERROR: allocation function on line
      533 returns NULL not ERR_PTR on failure
      
      vim +537 drivers/vhost/tcm_vhost.c
         534          if (!sg)
         535                  return -ENOMEM;
         536          pr_debug("%s sg %p sgl_count %u is_err %ld\n", __func__,
       > 537                 sg, sgl_count, IS_ERR(sg));
         538          sg_init_table(sg, sgl_count);
         539
         540          tv_cmd->tvc_sgl = sg;
      Signed-off-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      f0e0e9bb
  9. 16 Aug, 2012 11 commits
  10. 15 Aug, 2012 3 commits
    • Dave Airlie's avatar
      Merge branch 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes · 2e26c73a
      Dave Airlie authored
      * 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6:
        drm/nv86/fifo: suspend fix
        drm/nouveau: disable copy engine on NVAF
        nouveau: fixup scanout enable in nvc0_pm
        drm/nouveau/aux: mask off higher bits of auxch index in i2c table entry
        drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate
        drm/nve0/fifo: add support for the flip completion swmthd
      2e26c73a
    • Dave Airlie's avatar
      Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-fixes · a389b6a1
      Dave Airlie authored
      Daniel Vetter writes:
      
      "A few important fixers:
      - fix various lvds backlight issues, regressed in 3.6 (Takashi Iwai)
      - make the retina mbp work (ignore bogus edp bpc value in vbt)
      - fix a gmbus regression introduced in (iirc) 3.4 (Jani Nikula)
      - fix an edp panel power sequence regression, fixes the new macbook air
      - apply the tlb invalidate w/a
      
      Otherwise we still have another gmbus regression (patches are awaiting
      tested-bys) and there's something odd going with some rare systems not
      entering rc6 often enough (and hence blowing through too much power).  It
      seems to be a timing-related issue and can be mitigated by frobbing the
      magic tuning parameters. We're still working on that one. Also, we still
      have some fallout from the hw context support, but you can only hit that
      with mesa master."
      
      * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel:
        drm/i915: Apply post-sync write for pipe control invalidates
        drm/i915: reorder edp disabling to fix ivb MacBook Air
        drm/i915: ensure i2c adapter is all set before adding it
        drm/i915: ignore eDP bpc settings from vbt
        drm/i915: Fix blank panel at reopening lid
      a389b6a1
    • David S. Miller's avatar
      sparc64: Be less verbose during vmemmap population. · 2856cc2e
      David S. Miller authored
      On a 2-node machine with 256GB of ram we get 512 lines of
      console output, which is just too much.
      
      This mimicks Yinghai Lu's x86 commit c2b91e2e
      (x86_64/mm: check and print vmemmap allocation continuous) except that
      we aren't ever going to get contiguous block pointers in between calls
      so just print when the virtual address or node changes.
      
      This decreases the output by an order of 16.
      
      Also demote this to KERN_DEBUG.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2856cc2e
  11. 14 Aug, 2012 5 commits
    • Chris Wilson's avatar
      drm/i915: Apply post-sync write for pipe control invalidates · 7d54a904
      Chris Wilson authored
      When invalidating the TLBs it is documentated as requiring a post-sync
      write. Failure to do so seems to result in a GPU hang.
      
      Exposure to this hang on IVB seems to be a result of removing the extra
      stalls required for SNB pipecontrol workarounds:
      
      commit 6c6cf5aa
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Fri Jul 20 18:02:28 2012 +0100
      
          drm/i915: Only apply the SNB pipe control w/a to gen6
      
      Note: Manually switch the pipe_control cmd to 4 dwords to avoid a
      (silent) functional conflict with -next. This way will get a loud (but
      conflict with next (since the scratch_addr has been deleted there).
      
      Reported-and-tested-by: yex.tian@intel.com
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53322Acked-by: default avatarBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      [danvet: added note about merge conflict with -next.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      7d54a904
    • Daniel Vetter's avatar
      drm/i915: reorder edp disabling to fix ivb MacBook Air · 35a38556
      Daniel Vetter authored
      eDP is tons of fun. It turns out that at least the new MacBook Air 5,1
      model absolutely doesn't like the new force vdd dance we've introduced
      in
      
      commit 6cb49835
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun May 20 17:14:50 2012 +0200
      
          drm/i915: enable vdd when switching off the eDP panel
      
      But that patch also tried to fix some neat edp sequence issue with the
      force_vdd timings. Closer inspection reveals that we've raised
      force_vdd only to do the aux channel communication dp_sink_dpms. If we
      move the edp_panel_off below that, we don't need any force_vdd for the
      disable sequence, which makes the Air happy.
      
      Unfortunately the reporter of the original bug that the above commit
      fixed is travelling, so we can't test whether this regresses things.
      But my theory is that since we don't check for any power-off ->
      force_vdd-on delays in edp_panel_vdd_on, this was the actual
      root-cause of this failure. With that force_vdd dance completely
      eliminated, I'm hopeful the original bug stays fixed, too.
      
      For reference the old bug, which hopefully doesn't get broken by this:
      
      https://bugzilla.kernel.org/show_bug.cgi?id=43163
      
      In any case, regression fixers win over plain bugfixes, so this needs
      to go in asap.
      
      v2: The crucial pieces seems to be to clear the force_vdd flag
      uncoditionally, too, in edp_panel_off. Looks like this is left behind
      by the firmware somehow.
      
      v3: The Apple firmware seems to switch off the panel on it's own, hence
      we still need to keep force_vdd on, but properly clear it when switching
      the panel off.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45671Tested-by: default avatarRoberto Romer <sildurin@gmail.com>
      Tested-by: default avatarDaniel Wagner <wagi@monom.org>
      Tested-by: default avatarKeith Packard <keithp@keithp.com>
      Cc: stable@vger.kernel.org
      Cc: Keith Packard <keithp@keithp.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      35a38556
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · ddf343f6
      Linus Torvalds authored
      Pull s390 patches from Martin Schwidefsky:
       "Included are bug fixes and a patch to enable system call filtering
        with BPF."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/compat: fix mmap compat system calls
        s390/compat: fix compat wrappers for process_vm system calls
        s390: do not clobber personality flags in sys_32_personality()
        s390/seccomp: add support for system call filtering using BPF
        s390/sclp_sdias: Add missing break and "fall through"
        s390/mm: remove MAX_PHYSADDR_BITS define
      ddf343f6
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 930a93a5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Radeon and intel fixes mostly, one fix to the mgag200 driver to not
        hang on certain server variants."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (32 commits)
        drm/radeon: fix typo in function header comment
        drm/radeon/kms: implement timestamp userspace query (v2)
        drm/radeon/kms: add MSAA texture support for r600-evergreen
        drm/radeon/kms: reorder code in r600_check_texture_resource
        drm/radeon: fence virtual address and free it once idle v4
        drm/radeon: fix some missing parens in asic macros
        drm/radeon: add some new SI pci ids
        drm/radeon: fix ordering in pll picking on dce4+
        drm/radeon: do not reenable crtc after moving vram start address
        drm/radeon: fix bank tiling parameters on cayman
        drm/radeon: fix bank tiling parameters on evergreen
        drm/radeon: fix bank tiling parameters on SI
        drm/radeon: properly handle crtc powergating
        drm/radeon: properly handle SS overrides on TN (v2)
        drm/radeon/dce4+: set a more reasonable cursor watermark
        drm/radeon: fix handling for ddc type 5 on combios
        drm/mgag200: fix G200ER pll picking algorithm
        drm/edid: Fix potential memory leak in edid_load()
        drm/udl: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(.. [1]
        drm/radeon/kms: allow "invalid" DB formats as a means to disable DB
        ...
      930a93a5
    • Arnd Bergmann's avatar
      GPIO: gpio-pxa: fix building without CONFIG_OF · f43e04ec
      Arnd Bergmann authored
      Commit 72121572 ("GPIO: gpio-pxa: fix devicetree functions") added an
      "xlate" function pointer to the irq_domain_ops, but this function is nor
      declared or defined anywhere when CONFIG_OF is disabled, causing the
      build error:
      
        drivers/gpio/gpio-pxa.c:532:11: error: 'irq_domain_xlate_twocell' undeclared here (not in a function)
      
      Extending the DT-only code section to cover the irq_domain_ops and the
      pxa_gpio_dt_ids solves this problem and makes it clearer which code is
      actually used without DT.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f43e04ec
  12. 13 Aug, 2012 3 commits