From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clemens Ladisch Subject: Re: [PATCH 1/3] ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6 Date: Thu, 04 Aug 2011 16:17:42 +0200 Message-ID: <4E3AAA06.3020204@ladisch.de> References: <1312466188-3428-1-git-send-email-zonque@gmail.com> <1312466188-3428-2-git-send-email-zonque@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by alsa0.perex.cz (Postfix) with ESMTP id 7A24A24466 for ; Thu, 4 Aug 2011 16:14:15 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Daniel Mack List-Id: alsa-devel@alsa-project.org Takashi Iwai wrote: > Daniel Mack wrote: >> @@ -352,7 +352,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no) >> continue; >> } >> if (((protocol == UAC_VERSION_1) && (fmt->bLength < 8)) || >> - ((protocol == UAC_VERSION_2) && (fmt->bLength != 6))) { >> + ((protocol == UAC_VERSION_2) && (fmt->bLength < 6))) { >> snd_printk(KERN_ERR "%d:%u:%d : invalid UAC_FORMAT_TYPE desc (protocol %d, bLength %d)\n", >> dev->devnum, iface_no, altno, protocol, fmt->bLength); >> continue; > > This patch isn't applicable to sound git tree. Any missing patch? Obviously some temporary debugging patch to log protocol/bLength. --8<---------------------------------------------------------------->8-- ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6 The Focusrite Scarlett 18i6 USB has them that way, which is probably a bug. Anyway, the driver should simply ignore this fact. Signed-off-by: Daniel Mack Reported-by: Nicolai Krakowiak Cc: stable@kernel.org Signed-off-by: Clemens Ladisch --- sound/usb/endpoint.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 1eea7e3..1867bbd 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -352,7 +352,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no) continue; } if (((protocol == UAC_VERSION_1) && (fmt->bLength < 8)) || - ((protocol == UAC_VERSION_2) && (fmt->bLength != 6))) { + ((protocol == UAC_VERSION_2) && (fmt->bLength < 6))) { snd_printk(KERN_ERR "%d:%u:%d : invalid UAC_FORMAT_TYPE desc\n", dev->devnum, iface_no, altno); continue;