Re: uas regression in 3.15 with Lacie Rugged USB3 and NEC uPD720200

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

 



On Tue, 2014-07-15 at 22:23 +0200, Julian Sikorski wrote:
> [   54.017997] sd 6:0:0:0: [sdb] Write cache: enabled, read cache:
> enabled, doesn't support DPO or FUA
> [   54.018119] sd 6:0:0:0: uas_sense_old: urb length 26 disagrees with
> IU sense data length 510, using 18 bytes of sense data
> [   85.060805] sd 6:0:0:0: uas_eh_abort_handler ffff8803120b7400 tag
> 0,
> inflight: IN
> [   85.061835] sd 6:0:0:0: abort completed
> [   85.062037] ------------[ cut here ]------------
> [   85.062191] kernel BUG at block/blk-core.c:2511!
> [   85.062328] invalid opcode: 0000 [#1] SMP
> [   85.062573] Modules linked in: uas usb_storage
> nf_conntrack_netbios_ns nf_conntrack_broadcast ccm ip6t_rpfilter
> ip6t_REJECT xt_conntrack bnep bluetooth ebtable_nat ebtable_broute
> bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6
> nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security
> ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4
> nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle
> iptable_security iptable_raw fuse iTCO_wdt iTCO_vendor_support
> x86_pkg_temp_thermal coretemp snd_hda_codec_realtek kvm_intel kvm arc4
> snd_hda_codec_generic snd_hda_codec_hdmi crct10dif_pclmul iwldvm
> crc32_pclmul crc32c_intel mac80211 sdhci_pci uvcvideo
> videobuf2_vmalloc
> videobuf2_memops videobuf2_core snd_hda_intel ghash_clmulni_intel
> videodev iwlwifi snd_hda_controller
> [   85.066723]  media snd_hda_codec sdhci cfg80211 snd_hwdep microcode
> jme snd_seq snd_seq_device snd_pcm mii serio_raw mmc_core jmb38x_ms
> rfkill memstick mei_me mei snd_timer shpchp lpc_ich i2c_i801 mfd_core
> i2c_core snd soundcore nfsd auth_rpcgss nfs_acl lockd sunrpc
> binfmt_misc
> firewire_ohci firewire_core crc_itu_t wmi video
> [   85.069089] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
> 3.15.4-200.fc20.x86_64+debug #1
> [   85.069297] Hardware name: CLEVO
> P150HMx/P150HMx, BIOS 4.6.4 08/09/2011
> [   85.069509] task: ffffffff81c184c0 ti: ffffffff81c00000 task.ti:
> ffffffff81c00000
> [   85.069716] RIP: 0010:[<ffffffff813986d0>]  [<ffffffff813986d0>]
> blk_finish_request+0xf0/0x100
> [   85.069987] RSP: 0018:ffff880321e03da0  EFLAGS: 00010002
> [   85.070122] RAX: 0000000000000286 RBX: ffff88031b73d730 RCX:
> 0000000000000000
> [   85.070261] RDX: ffff880321e0eb20 RSI: 00000000fffffffb RDI:
> ffff88031b73d730
> [   85.071768] RBP: ffff880321e03db0 R08: 0000000000000000 R09:
> 0000000000000001
> [   85.071907] R10: ffffffff81c184c0 R11: ffffffff81c18d80 R12:
> 00000000fffffffb
> [   85.072046] R13: ffff8803190625b0 R14: 0000000000000286 R15:
> ffff8803120b7400
> [   85.072186] FS:  0000000000000000(0000) GS:ffff880321e00000(0000)
> knlGS:0000000000000000
> [   85.072395] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   85.072531] CR2: 00007f6c210209c0 CR3: 0000000001c11000 CR4:
> 00000000000407f0
> [   85.072669] Stack:
> [   85.072794]  ffff88031b73d730 00000000fffffffb ffff880321e03de0
> ffffffff81398722
> [   85.073205]  ffff88031b73d730 0000000008000000 00000000fffffffb
> ffff88031b73d730
> [   85.073615]  ffff880321e03df0 ffffffff81398750 ffff880321e03e58
> ffffffff815265c1
> [   85.074024] Call Trace:
> [   85.074151]  <IRQ>
> [   85.074210]
> [   85.074387]  [<ffffffff81398722>] blk_end_bidi_request+0x42/0x60
> [   85.074523]  [<ffffffff81398750>] blk_end_request+0x10/0x20
> [   85.074664]  [<ffffffff815265c1>] scsi_io_completion+0x111/0x6a0
> [   85.074803]  [<ffffffff8151af03>] scsi_finish_command+0xb3/0x110
> [   85.074943]  [<ffffffff815263c7>] scsi_softirq_done+0x137/0x160
> [   85.075082]  [<ffffffff8139fe7b>] blk_done_softirq+0x9b/0xd0
> [   85.075223]  [<ffffffff8109caad>] __do_softirq+0x12d/0x480
> [   85.075361]  [<ffffffff8109d135>] irq_exit+0xc5/0xd0
> [   85.075499]  [<ffffffff817f0598>] do_IRQ+0x58/0xf0
> [   85.075635]  [<ffffffff817e4432>] common_interrupt+0x72/0x72
> [   85.075769]  <EOI>
> [   85.075827]
> [   85.076006]  [<ffffffff8162e494>] ? cpuidle_enter_state+0x54/0xd0
> [   85.076142]  [<ffffffff8162e547>] cpuidle_enter+0x17/0x20
> [   85.076280]  [<ffffffff810eef4e>] cpu_startup_entry+0x3ee/0x770
> [   85.076420]  [<ffffffff817c914a>] rest_init+0x13a/0x140
> [   85.076557]  [<ffffffff817c9015>] ? rest_init+0x5/0x140
> [   85.076695]  [<ffffffff81f1c006>] start_kernel+0x48d/0x4ae
> [   85.076833]  [<ffffffff81f1b982>] ? repair_env_string+0x5c/0x5c
> [   85.076972]  [<ffffffff81f1b120>] ? early_idt_handlers+0x120/0x120
> [   85.077112]  [<ffffffff81f1b5ee>] x86_64_start_reservations
> +0x2a/0x2c
> [   85.077252]  [<ffffffff81f1b73d>] x86_64_start_kernel+0x14d/0x170
> [   85.077388] Code: 89 de e8 84 18 00 00 e9 4b ff ff ff 83 7b 78 01
> 0f
> 85 58 ff ff ff 48 8b 43 60 48 8d b8 78 02 00 00 e8 d5 69 e2 ff e9 43
> ff
> ff ff <0f> 0b 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90
> [   85.081015] RIP  [<ffffffff813986d0>] blk_finish_request+0xf0/0x100
> [   85.081206]  RSP <ffff880321e03da0>

It looks like UAS is calling scsi_done() twice.

I may be dense, but it looks like uas_data_cmplt() will call
uas_try_complete() with only the UNLINK_DATA_URBS flag protecting
it from calling scsi_done() twice. As uas_unlink_data_urbs() uses
usb_unlink_urb() we are racing withthe completion handler.

	Regards
		Oliver


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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux