1. 14 Feb, 2015 4 commits
  2. 12 Feb, 2015 4 commits
    • Nicholas Bellinger's avatar
      iscsi-target: Avoid IN_LOGOUT failure case for iser-target · 72859d91
      Nicholas Bellinger authored
      This patch addresses a bug reported during iser-target login/logout
      stress testing, where iscsit_take_action_for_connection_exit() is
      incorrectly invoking iscsit_close_connection() twice during IN_LOGOUT
      state, after connection shutdown has already been initiated by
      iser-target code.
      
      Here is the backtrace:
      
      BUG: unable to handle kernel NULL pointer dereference at 00000000000001f0
      IP: [<ffffffffa033d992>] iscsit_take_action_for_connection_exit+0x62/0x110 [iscsi_target_mod]
      PGD 0
      Oops: 0000 [#1] SMP
      Modules linked in: target_core_pscsi(O) target_core_file(O) target_core_iblock(O) ib_isert(O) iscsi_target_mod(O) ib_srpt(O) tcm_loop(O) tcm_fc(O) target_core_mod(O) mst_pciconf(OE) bonding mlx5_ib(O) mlx5_core libfc scsi_transport_fc netconsole configfs nfsv3 nfs_acl mlx4_ib(O) rdma_ucm(O) ib_ucm(O) rdma_cm(O) iw_cm(O) ib_uverbs(O) libiscsi_tcp libiscsi scsi_transport_iscsi mlx4_en mlx4_core ib_ipoib(O) ib_cm(O) ib_sa(O) ib_umad(O) ib_mad(O) ib_core(O) ib_addr(O) rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs fscache lockd grace autofs4 sunrpc 8021q garp stp llc ipv6 dm_mirror dm_region_hash dm_log dm_multipath uinput ipmi_si ipmi_msghandler acpi_pad iTCO_wdt iTCO_vendor_support dcdbas microcode pcspkr wmi sb_edac edac_core sg lpc_ich mfd_core shpchp tg3 ptp pps_core dm_mod ext3(E) jbd(E) mbcache(E) sr_mod(E) cdrom(E) sd_mod(E) ahci(E) libahci(E) megaraid_sas(E) [last unloaded: target_core_mod]
      CPU: 2 PID: 5280 Comm: iscsi_ttx Tainted: G        W  OE  3.18.0-rc2+ #22
      Hardware name: Dell Inc. PowerEdge R720/0VWT90, BIOS 2.0.9 03/08/2013
      task: ffff8806132f9010 ti: ffff880601d6c000 task.ti: ffff880601d6c000
      RIP: 0010:[<ffffffffa033d992>] [<ffffffffa033d992>] iscsit_take_action_for_connection_exit+0x62/0x110 [iscsi_target_mod]
      RSP: 0018:ffff880601d6fe18  EFLAGS: 00010296
      RAX: 0000000000000000 RBX: ffff8805dc437800 RCX: 0000000000000006
      RDX: 0000000000000000 RSI: 0000000000000200 RDI: ffffffffa033d98b
      RBP: ffff880601d6fe28 R08: 0000000000000000 R09: 000000000000dd37
      R10: 00000000ec5d4202 R11: 0000000000000001 R12: ffff8805dc437bf4
      R13: ffff88061b831600 R14: ffff880601d6fe58 R15: ffff8806132f9010
      FS:  0000000000000000(0000) GS:ffff88032fa20000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00000000000001f0 CR3: 0000000001a14000 CR4: 00000000000407e0
      Stack:
      ffff8805dc437800 fffffffffffffe00 ffff880601d6feb8 ffffffffa034ed40
      ffff8806132f9010 ffff880601d6fe70 0f00000000000000 ffff8805d51fbef0
      0000000000000000 ffff8806132f9010 ffffffff8108e7f0 ffff880601d6fe70
      Call Trace:
      [<ffffffffa034ed40>] iscsi_target_tx_thread+0x160/0x220 [iscsi_target_mod]
      [<ffffffff8108e7f0>] ? bit_waitqueue+0xb0/0xb0
      [<ffffffffa034ebe0>] ? iscsit_handle_snack+0x190/0x190 [iscsi_target_mod]
      [<ffffffff8107017e>] kthread+0xce/0xf0
      [<ffffffff810700b0>] ? kthread_freezable_should_stop+0x70/0x70
      [<ffffffff815a0b6c>] ret_from_fork+0x7c/0xb0
      [<ffffffff810700b0>] ? kthread_freezable_should_stop+0x70/0x70
      Code: 06 0f 84 82 00 00 00 3c 08 74 4e f6 05 39 e6 02 00 04 0f 85 9e 00 00 00 c6 43 19 08 4c 89 e7 e8 65 2a 26 e1 48 8b 83 a0 04 00 00 <48> 8b 88 f0 01 00 00 80 b9 d8 04 00 00 02 74 2e f6 05 31 e6 02
      RIP  [<ffffffffa033d992>] iscsit_take_action_for_connection_exit+0x62/0x110 [iscsi_target_mod]
      RSP <ffff880601d6fe18>
      CR2: 00000000000001f0
      ---[ end trace a0c33436cd0836b4 ]---
      
      This special case is still required by ISCSI_TCP transport during a
      iscsit_handle_logout_cmd() failure case in iscsi_target_rx_opcode(),
      but must be avoided for iser-target.
      Reported-by: default avatarSagi Grimberg <sagig@mellanox.com>
      Reported-by: default avatarSlava Shwartsman <valyushash@gmail.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Slava Shwartsman <valyushash@gmail.com>
      Cc: stable@vger.kernel.org # 3.10+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      72859d91
    • Nicholas Bellinger's avatar
      target: Fix PR_APTPL_BUF_LEN buffer size limitation · f161d4b4
      Nicholas Bellinger authored
      This patch addresses the original PR_APTPL_BUF_LEN = 8k limitiation
      for write-out of PR APTPL metadata that Martin has recently been
      running into.
      
      It changes core_scsi3_update_and_write_aptpl() to use vzalloc'ed
      memory instead of kzalloc, and increases the default hardcoded
      length to 256k.
      
      It also adds logic in core_scsi3_update_and_write_aptpl() to double
      the original length upon core_scsi3_update_aptpl_buf() failure, and
      retries until the vzalloc'ed buffer is large enough to accommodate
      the outgoing APTPL metadata.
      Reported-by: default avatarMartin Svec <martin.svec@zoner.cz>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      f161d4b4
    • Nicholas Bellinger's avatar
      iscsi-target: Drop problematic active_ts_list usage · 3fd7b60f
      Nicholas Bellinger authored
      This patch drops legacy active_ts_list usage within iscsi_target_tq.c
      code.  It was originally used to track the active thread sets during
      iscsi-target shutdown, and is no longer used by modern upstream code.
      
      Two people have reported list corruption using traditional iscsi-target
      and iser-target with the following backtrace, that appears to be related
      to iscsi_thread_set->ts_list being used across both active_ts_list and
      inactive_ts_list.
      
      [   60.782534] ------------[ cut here ]------------
      [   60.782543] WARNING: CPU: 0 PID: 9430 at lib/list_debug.c:53 __list_del_entry+0x63/0xd0()
      [   60.782545] list_del corruption, ffff88045b00d180->next is LIST_POISON1 (dead000000100100)
      [   60.782546] Modules linked in: ib_srpt tcm_qla2xxx qla2xxx tcm_loop tcm_fc libfc scsi_transport_fc scsi_tgt ib_isert rdma_cm iw_cm ib_addr iscsi_target_mod target_core_pscsi target_core_file target_core_iblock target_core_mod configfs ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT xt_CHECKSUM iptable_mangle iptable_filter ip_tables bridge stp llc autofs4 sunrpc ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ib_ipoib ib_cm ib_uverbs ib_umad mlx4_en mlx4_ib ib_sa ib_mad ib_core mlx4_core dm_mirror dm_region_hash dm_log dm_mod vhost_net macvtap macvlan vhost tun kvm_intel kvm uinput iTCO_wdt iTCO_vendor_support microcode serio_raw pcspkr sb_edac edac_core sg i2c_i801 lpc_ich mfd_core mtip32xx igb i2c_algo_bit i2c_core ptp pps_core ioatdma dca wmi ext3(F) jbd(F) mbcache(F) sd_mod(F) crc_t10dif(F) crct10dif_common(F) ahci(F) libahci(F) isci(F) libsas(F) scsi_transport_sas(F) [last unloaded: speedstep_lib]
      [   60.782597] CPU: 0 PID: 9430 Comm: iscsi_ttx Tainted: GF 3.12.19+ #2
      [   60.782598] Hardware name: Supermicro X9DRX+-F/X9DRX+-F, BIOS 3.00 07/09/2013
      [   60.782599]  0000000000000035 ffff88044de31d08 ffffffff81553ae7 0000000000000035
      [   60.782602]  ffff88044de31d58 ffff88044de31d48 ffffffff8104d1cc 0000000000000002
      [   60.782605]  ffff88045b00d180 ffff88045b00d0c0 ffff88045b00d0c0 ffff88044de31e58
      [   60.782607] Call Trace:
      [   60.782611]  [<ffffffff81553ae7>] dump_stack+0x49/0x62
      [   60.782615]  [<ffffffff8104d1cc>] warn_slowpath_common+0x8c/0xc0
      [   60.782618]  [<ffffffff8104d2b6>] warn_slowpath_fmt+0x46/0x50
      [   60.782620]  [<ffffffff81280933>] __list_del_entry+0x63/0xd0
      [   60.782622]  [<ffffffff812809b1>] list_del+0x11/0x40
      [   60.782630]  [<ffffffffa06e7cf9>] iscsi_del_ts_from_active_list+0x29/0x50 [iscsi_target_mod]
      [   60.782635]  [<ffffffffa06e87b1>] iscsi_tx_thread_pre_handler+0xa1/0x180 [iscsi_target_mod]
      [   60.782642]  [<ffffffffa06fb9ae>] iscsi_target_tx_thread+0x4e/0x220 [iscsi_target_mod]
      [   60.782647]  [<ffffffffa06fb960>] ? iscsit_handle_snack+0x190/0x190 [iscsi_target_mod]
      [   60.782652]  [<ffffffffa06fb960>] ? iscsit_handle_snack+0x190/0x190 [iscsi_target_mod]
      [   60.782655]  [<ffffffff8106f99e>] kthread+0xce/0xe0
      [   60.782657]  [<ffffffff8106f8d0>] ? kthread_freezable_should_stop+0x70/0x70
      [   60.782660]  [<ffffffff8156026c>] ret_from_fork+0x7c/0xb0
      [   60.782662]  [<ffffffff8106f8d0>] ? kthread_freezable_should_stop+0x70/0x70
      [   60.782663] ---[ end trace 9662f4a661d33965 ]---
      
      Since this code is no longer used, go ahead and drop the problematic usage
      all-together.
      Reported-by: default avatarGavin Guo <gavin.guo@canonical.com>
      Reported-by: default avatarMoussa Ba <moussaba@micron.com>
      Cc: stable@vger.kernel.org # 3.1+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      3fd7b60f
    • Sagi Grimberg's avatar
      iscsi/iser-target: Support multi-sequence sendtargets text response · e4f4e801
      Sagi Grimberg authored
      In case sendtargets response is larger than initiator MRDSL, we
      send a partial sendtargets response (setting F=0, C=1, TTT!=0xffffffff),
      accept a consecutive empty text message and send the rest of the payload.
      In case we are done, we set F=1, C=0, TTT=0xffffffff.
      We do that by storing the sendtargets response bytes done under
      the session.
      
      This patch also makes iscsit_find_cmd_from_itt public for isert.
      
      (Re-add cmd->maxcmdsn_inc and clear in iscsit_build_text_rsp - nab)
      Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      e4f4e801
  3. 06 Feb, 2015 2 commits
  4. 04 Feb, 2015 12 commits
  5. 30 Jan, 2015 3 commits
  6. 20 Jan, 2015 1 commit
  7. 16 Jan, 2015 2 commits
  8. 21 Dec, 2014 3 commits
    • Linus Torvalds's avatar
      Linux 3.19-rc1 · 97bf6af1
      Linus Torvalds authored
      97bf6af1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux · 60815cf2
      Linus Torvalds authored
      Pull ACCESS_ONCE cleanup preparation from Christian Borntraeger:
       "kernel: Provide READ_ONCE and ASSIGN_ONCE
      
        As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com
        ACCESS_ONCE might fail with specific compilers for non-scalar
        accesses.
      
        Here is a set of patches to tackle that problem.
      
        The first patch introduce READ_ONCE and ASSIGN_ONCE.  If the data
        structure is larger than the machine word size memcpy is used and a
        warning is emitted.  The next patches fix up several in-tree users of
        ACCESS_ONCE on non-scalar types.
      
        This does not yet contain a patch that forces ACCESS_ONCE to work only
        on scalar types.  This is targetted for the next merge window as Linux
        next already contains new offenders regarding ACCESS_ONCE vs.
        non-scalar types"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux:
        s390/kvm: REPLACE barrier fixup with READ_ONCE
        arm/spinlock: Replace ACCESS_ONCE with READ_ONCE
        arm64/spinlock: Replace ACCESS_ONCE READ_ONCE
        mips/gup: Replace ACCESS_ONCE with READ_ONCE
        x86/gup: Replace ACCESS_ONCE with READ_ONCE
        x86/spinlock: Replace ACCESS_ONCE with READ_ONCE
        mm: replace ACCESS_ONCE with READ_ONCE or barriers
        kernel: Provide READ_ONCE and ASSIGN_ONCE
      60815cf2
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux · bfc7249c
      Linus Torvalds authored
      Pull clk framework updates from Mike Turquette:
       "This is much later than usual due to several last minute bugs that had
        to be addressed.  As usual the majority of changes are new drivers and
        modifications to existing drivers.  The core recieved many fixes along
        with the groundwork for several large changes coming in the future
        which will better parition clock providers from clock consumers"
      
      * tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux: (86 commits)
        clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain being gated
        ARM: OMAP3: clock: fix boot breakage in legacy mode
        ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs
        clk: Really fix deadlock with mmap_sem
        clk: mmp: fix sparse non static symbol warning
        clk: Change clk_ops->determine_rate to return a clk_hw as the best parent
        clk: change clk_debugfs_add_file to take a struct clk_hw
        clk: Don't expose __clk_get_accuracy
        clk: Don't try to use a struct clk* after it could have been freed
        clk: Remove unused function __clk_get_prepare_count
        clk: samsung: Fix double add of syscore ops after driver rebind
        clk: samsung: exynos4: set parent of sclk_hdmiphy to hdmi
        clk: samsung: exynos4415: Fix build with PM_SLEEP disabled
        clk: samsung: remove unnecessary inclusion of header files from clk.h
        clk: samsung: remove unnecessary CONFIG_OF from clk.c
        clk: samsung: Spelling s/bwtween/between/
        clk: rockchip: Add support for the mmc clock phases using the framework
        clk: rockchip: add bindings for the mmc clocks
        clk: rockchip: rk3288 export i2s0_clkout for use in DT
        clk: rockchip: use clock ID for DMC (memory controller) on rk3288
        ...
      bfc7249c
  9. 20 Dec, 2014 9 commits