lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090525151313.GA2246@ime.usp.br>
Date:	Mon, 25 May 2009 12:13:14 -0300
From:	Rogério Brito <rbrito@....usp.br>
To:	Alan Stern <stern@...land.harvard.edu>
Cc:	Robert Hancock <hancockrwd@...il.com>,
	linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org
Subject: [PATCH] usb-storage: include USB drive in unusual_devs list

Hi again, Alan.

And thank you very much for your valuable (and always enlightening) comments.

On May 24 2009, Alan Stern wrote:
> I see the problem.  It's a bug in the Prolific drive.  The drive says
> that it has removable media, which is not true.  Then when the computer
> tells the drive to lock the media in place, the drive reports an error.  
> And it doesn't use the proper error code, so the computer doesn't
> know what went wrong.

Hummm, that's bad. :-(

> You can test this by setting a "quirks" option for usb-storage, to tell 
> it that the Prolific drive does not understand the "Lock" command:
> 
> 	modprobe usb-storage quirks=67b:2316:L

Well, I did that, but it, unfortunately, didn't seem to work:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chagas:~# dmesg | tail -n 45; cat /sys/module/usb_storage/parameters/quirks; lsusb
[ 2703.243277] Driver 'sd' needs updating - please use bus_type methods
[ 2703.243433] PM: Adding info for No Bus:0:0:0:0
[ 2703.249091] sd 0:0:0:0: [sda] 256000 512-byte hardware sectors: (131 MB/125 MiB)
[ 2703.252061] sd 0:0:0:0: [sda] Write Protect is off
[ 2703.252067] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
[ 2703.252071] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2703.252123] PM: Adding info for No Bus:sda
[ 2703.259056] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.259061]    : Sense Key : 0x0 [current] 
[ 2703.259067]    : ASC=0x0 ASCQ=0x0
[ 2703.267025] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2703.267032]  sda: sda1
[ 2703.273099] PM: Adding info for No Bus:sda1
[ 2703.278056] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.278061]    : Sense Key : 0x0 [current] 
[ 2703.278067]    : ASC=0x0 ASCQ=0x0
[ 2703.278171] PM: Adding info for No Bus:8:0
[ 2703.278195] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 2703.300019] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.300026]    : Sense Key : 0x0 [current] 
[ 2703.300033]    : ASC=0x0 ASCQ=0x0
[ 2703.603961] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.603968]    : Sense Key : 0x0 [current] 
[ 2703.603974]    : ASC=0x0 ASCQ=0x0
[ 2703.671981] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.671988]    : Sense Key : 0x0 [current] 
[ 2703.671994]    : ASC=0x0 ASCQ=0x0
[ 2703.693975] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.693981]    : Sense Key : 0x0 [current] 
[ 2703.693987]    : ASC=0x0 ASCQ=0x0
[ 2703.703974] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2703.703981]    : Sense Key : 0x0 [current] 
[ 2703.703987]    : ASC=0x0 ASCQ=0x0
[ 2704.006895] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2704.006902]    : Sense Key : 0x0 [current] 
[ 2704.006908]    : ASC=0x0 ASCQ=0x0
[ 2704.016920] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2704.016927]    : Sense Key : 0x0 [current] 
[ 2704.016933]    : ASC=0x0 ASCQ=0x0
[ 2704.318865] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2704.318871]    : Sense Key : 0x0 [current] 
[ 2704.318878]    : ASC=0x0 ASCQ=0x0
[ 2704.366850] sd 0:0:0:0: ioctl_internal_command return code = 8000002
[ 2704.366857]    : Sense Key : 0x0 [current] 
[ 2704.366863]    : ASC=0x0 ASCQ=0x0
67b:2316:L
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 004: ID 067b:2316 Prolific Technology, Inc. Flash Disk Security Device
Bus 004 Device 003: ID 067b:2317 Prolific Technology, Inc. Mass Storage Device
Bus 004 Device 002: ID 067b:2315 Prolific Technology, Inc. Flash Disk Embedded Hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
chagas:~#
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

> If that eliminates the errors, we can add a permanent quirk entry for 
> this device.

I can test whatever you want me to, so that this can be fixed. The above
lsusb log shows that, perhaps, the quirks option should be set for the
device 067b:2317, instead of 067b:2316, as you told me to?

(I'm going to verify it right now).

Yes, that works. Using 67b:2317:L as a quirk eliminates the messages.
And I do get the

[ 3454.054150] usb-storage 4-2.1:1.0: Quirks match for vid 067b pid 2317: 80

message. Therefore, a proposal:

This patch adds a quirk entry for the Leading Driver UD-11
usb flash drive.

As Alan Stern told me, the device doesn't deal correctly with
the locking media feature of the device, and this patch
incorporates it.

Compiled, tested, working.


Signed-off-by: Rogério Brito <rbrito@....usp.br>

---

The US_PR_DEVICE macro could be changed to US_PR_CBI, from what
I saw in the udevadm info tree.

--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -838,6 +838,19 @@ UNUSUAL_DEV( 0x066f, 0x8000, 0x0001, 0x0
 		US_SC_DEVICE, US_PR_DEVICE, NULL,
 		US_FL_FIX_CAPACITY ),
 
+/* Reported by Rogério Brito <rbrito@....usp.br> */
+/* 'lsusb' tells:
+ *    "Prolific Technology, Inc. Mass Storage Device"
+ * but 'udevadm info' says:
+ *    ATTR{manufacturer}=="Leading Driver Co.,LTD."
+ *    ATTR{product}=="USB Mass Storage Device"
+ */
+UNUSUAL_DEV( 0x067b, 0x2317, 0x0001, 0x001,
+		"Prolific Technology, Inc.",
+		"Mass Storage Device",
+		US_SC_DEVICE, US_PR_DEVICE, NULL,
+		US_FL_NOT_LOCKABLE ),
+
 /* Reported by Richard -=[]=- <micro_flyer@...mail.com> */
 /* Change to bcdDeviceMin (0x0100 to 0x0001) reported by
  * Thomas Bartosik <tbartdev@...-topmail.de> */


Actually, I just ventured myself and created a patch, attached (sorry, I
know that people don't like attached patches, but I don't want to mix


Thank you so much as always, Rogério Brito.

-- 
Rogério Brito : rbrito@...ckenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ