Re: [PATCH 3.15 099/139] libiscsi, iser: Adjust data_length to include protection information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2014-06-28 at 10:47 -0700, Greg Kroah-Hartman wrote:
> 3.15-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> 
> commit d77e65350f2d82dfa0557707d505711f5a43c8fd upstream.
> 
> In case protection information exists over the wire
> iscsi header data length is required to include it.
> Use protection information aware scsi helpers to set
> the correct transfer length.
> 
> In order to avoid breakage, remove iser transfer length
> checks for each task as they are not always true and
> somewhat redundant anyway.
> 
> Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> Reviewed-by: Mike Christie <michaelc@xxxxxxxxxxx>
> Acked-by: Mike Christie <michaelc@xxxxxxxxxxx>
> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 
> ---
>  drivers/infiniband/ulp/iser/iser_initiator.c |   34 +++++++--------------------
>  drivers/scsi/libiscsi.c                      |   18 +++++++-------
>  2 files changed, 19 insertions(+), 33 deletions(-)

I'm a bit late to object, but this is causing a regression for me on
3.15.3 and 3.16-rc.  Using an iscsi_tcp rootfs, I'm seeing the NULL
pointer dereference below.  Reverting this patch resolves it.  Thanks,

Alex

[   19.672549] BUG: unable to handle kernel NULL pointer dereference at 000000000000000c
[   19.680405] IP: [<ffffffffa0019d38>] iscsi_tcp_segment_done+0x2a8/0x370 [libiscsi_tcp]
[   19.688338] PGD 0 
[   19.690365] Oops: 0000 [#1] SMP 
[   19.693624] Modules linked in: cfg80211 snd_hda_codec_analog snd_hda_codec_generic nfsd auth_rpcgss nfs_acl lockd sunrpc snd_hda_intel snd_hda_controller coretemp snd_hda_codec kvm_intel kvm snd_hwdep snd_seq i7core_edac ioatdma snd_seq_device lpc_ich edac_core snd_pcm serio_raw snd_timer shpchp tpm_tis pcspkr i2c_i801 snd mfd_core microcode tpm soundcore acpi_cpufreq nouveau video mxm_wmi drm_kms_helper igb tg3 ttm dca drm i2c_algo_bit ptp crc32c_intel pps_core i2c_core wmi iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi
[   19.741125] CPU: 3 PID: 98 Comm: kworker/u16:5 Tainted: G          I   3.15.3 #23
[   19.748602] Hardware name: LENOVO 4157CTO/LENOVO, BIOS 60KT41AUS 01/04/2011
[   19.755558] Workqueue: iscsi_q_6 iscsi_xmitworker [libiscsi]
[   19.761231] task: ffff8801e5cb0890 ti: ffff8801e5cc8000 task.ti: ffff8801e5cc8000
[   19.768702] RIP: 0010:[<ffffffffa0019d38>]  [<ffffffffa0019d38>] iscsi_tcp_segment_done+0x2a8/0x370 [libiscsi_tcp]
[   19.779060] RSP: 0018:ffff8801e5ccbc48  EFLAGS: 00010206
[   19.784365] RAX: 0000000000000000 RBX: ffff8801e5d9dec0 RCX: 0000000000000200
[   19.791490] RDX: 0000000000000e00 RSI: 0000000000000000 RDI: ffff8801e5d9dec0
[   19.798615] RBP: ffff8801e5ccbca8 R08: 0000000000000200 R09: 0000000000016640
[   19.805747] R10: ffff8801e3d48120 R11: 00000000000005a8 R12: 0000000000000200
[   19.812872] R13: ffff8801e5d9dd30 R14: 0000000000000000 R15: ffff8801e5d9dec0
[   19.819997] FS:  0000000000000000(0000) GS:ffff88037fcc0000(0000) knlGS:0000000000000000
[   19.828075] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   19.833812] CR2: 000000000000000c CR3: 0000000001c11000 CR4: 00000000000007e0
[   19.840938] Stack:
[   19.842947]  ffff8801e3d48000 ffff88036dde5400 ffff8801e5d9deb0 ffff8801e5ccbce8
[   19.850402]  ffff8801e5d9dec0 ffff8801e5ccbca8 00000000ef5a5f2a 0000000000000200
[   19.857856]  ffff8801e5d9dd30 ffff8801e5d9deb0 ffff8801e5ccbce8 ffff8801e5d9dec0
[   19.865310] Call Trace:
[   19.867760]  [<ffffffffa003456e>] iscsi_sw_tcp_pdu_xmit+0xde/0x2d0 [iscsi_tcp]
[   19.874979]  [<ffffffffa001952a>] iscsi_tcp_task_xmit+0xaa/0x2a0 [libiscsi_tcp]
[   19.882285]  [<ffffffff810ac2be>] ? dequeue_task_fair+0x42e/0x640
[   19.888379]  [<ffffffffa0025763>] iscsi_xmit_task+0x53/0xc0 [libiscsi]
[   19.894906]  [<ffffffffa00281e0>] iscsi_xmitworker+0x260/0x2f0 [libiscsi]
[   19.901691]  [<ffffffff8108d465>] process_one_work+0x175/0x430
[   19.907522]  [<ffffffff8108e0db>] worker_thread+0x11b/0x3a0
[   19.913096]  [<ffffffff8108dfc0>] ? rescuer_thread+0x390/0x390
[   19.918931]  [<ffffffff81094af1>] kthread+0xe1/0x100
[   19.923896]  [<ffffffff81094a10>] ? insert_kthread_work+0x40/0x40
[   19.929991]  [<ffffffff816a6cbc>] ret_from_fork+0x7c/0xb0
[   19.935389]  [<ffffffff81094a10>] ? insert_kthread_work+0x40/0x40
[   19.941481] Code: b8 00 00 e9 25 fe ff ff 0f 1f 00 48 8b 7b 30 e8 7f 9e 31 e1 8b 53 10 2b 53 14 44 89 f6 48 89 43 30 c7 43 40 00 00 00 00 48 89 df <8b> 40 0c 48 c7 03 00 00 00 00 39 c2 0f 47 d0 89 53 08 e8 41 fc 
[   19.961432] RIP  [<ffffffffa0019d38>] iscsi_tcp_segment_done+0x2a8/0x370 [libiscsi_tcp]
[   19.969451]  RSP <ffff8801e5ccbc48>
[   19.972935] CR2: 000000000000000c
[   19.976247] ---[ end trace f418fccfb3747914 ]---

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]