Bug#276134: kernel-source-2.6.8: Minolta DIMAGE cameras stopped working with usb-st orage in 2.6.8
Package: kernel-source-2.6.8
Version: 2.6.8-7
Severity: normal
A change form 2.6.7 to 2.6.8 in the error return handling of
usb_stor_Bulk_max_lun() in usb-storage/transport.c exposed a problem
with Minolta DIMAGE cameras, causing probing to fail, and thus these
cameras cannot be used with 2.6.8. The included patch from the
linux-usb-devel list claims to restore functionality.
Arne
> List: linux-usb-devel
> Subject: [linux-usb-devel] PATCH: help vendors count to 1...
> From: Matthew Dharm <mdharm-usb () one-eyed-alien ! net>
> Date: 2004-08-22 18:54:59
> Message-ID: <20040822185459.GA30746 () one-eyed-alien ! net>
> [Download message RAW]
>
> This patch started out life as as356. All I did was re-generate it
> against
> the tip of the tree.
>
> It turns out that the Konica-Minolta DiMAGE A2 camera, in addition to
> all
> its other problems, returns a 0-length reply to the GetMaxLUN rquest.
> With this patch (accept a null reply as meaning a single LUN) it is
> somewhat useable.
>
> It's amazing to me that vendors have this much trouble counting to
> 1....
>
> Greg, please apply.
>
> Matt
>
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
>
>
> # This is a BitKeeper generated diff -Nru style patch.
> #
> # ChangeSet
> # 2004/08/22 11:49:19-07:00 mdharm@zen.san.one-eyed-alien.net
> # as356
> #
> # drivers/usb/storage/transport.c
> # 2004/08/22 11:48:49-07:00 mdharm@zen.san.one-eyed-alien.net +2 -1
> # as356
> #
> diff -Nru a/drivers/usb/storage/transport.c
> #b/drivers/usb/storage/transport.c
> --- a/drivers/usb/storage/transport.c Sun Aug 22 11:52:19 2004
> +++ b/drivers/usb/storage/transport.c Sun Aug 22 11:52:19 2004
> @@ -911,6 +911,7 @@
> int result;
>
> /* issue the command */
> + us->iobuf[0] = 0;
> result = usb_stor_control_msg(us, us->recv_ctrl_pipe,
> US_BULK_GET_MAX_LUN,
> USB_DIR_IN | USB_TYPE_CLASS |
> @@ -921,7 +922,7 @@
> result, us->iobuf[0]);
>
> /* if we have a successful request, return the result */
> - if (result == 1)
> + if (result >= 0)
> return us->iobuf[0];
>
> /*
>
>
> --
> Matthew Dharm Home:
> mdharm-usb@one-eyed-alien.net
> Maintainer, Linux USB Mass Storage Driver
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-1-686
Locale: LANG=C, LC_CTYPE=en_US
Versions of packages kernel-source-2.6.8 depends on:
ii binutils 2.15-4 The GNU assembler, linker
and bina
ii bzip2 1.0.2-1 A high-quality
block-sorting file
ii coreutils [fileutils] 5.2.1-2 The GNU core utilities
-- no debconf information
Reply to: