From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2B86AC77B7A for ; Thu, 25 May 2023 08:32:11 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 2B93F204; Thu, 25 May 2023 10:31:19 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 2B93F204 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1685003529; bh=MgLr7MqRlMNvtouLruRRF3BkqAw1txzbuBWZPRm5oVw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=TeasOKa7H5HHLYSkZ9VjXdegpjfRQ9BfBf7r/R6WL2pss5TVfnxkxLsJn3/wyMqfd w0fCgRbG5yq820Lf4Vu51n41xAN0iUAZQ6CyiTKQYhh/vcLhCNLppCvb+u78siT9qH K7Vjt2jND4KwMvrLdGkn0aFkmcjBdfCTIsOsHsQg= Received: by alsa1.perex.cz (Postfix, from userid 50401) id E2885F8026A; Thu, 25 May 2023 10:30:30 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 56904F8026A; Thu, 25 May 2023 10:30:30 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 66354F80249; Thu, 25 May 2023 10:29:56 +0200 (CEST) Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id D7BA4F80053 for ; Thu, 25 May 2023 10:29:52 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz D7BA4F80053 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=kxdK/4im; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=QPIJcnVh Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1C5AD1FD7A; Thu, 25 May 2023 08:29:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1685003392; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Ej897aRyh6rgtw2EYtT4uF/xNsKz95dLFcGOdGf72W0=; b=kxdK/4im/elyyOn0MkMTWS+rJv3AExK2xvkPExNrnhp18/B+LvIxYxJ24COzcvw2SuFiUK uRSgoJ3GOyo/r2Cj1c/xIxYgslxyqAbzyYWmrScraYYXXt0ec9X7yq3PUCN3c5cm4z1Cta NSxYV+VGdYHTGOBkrFQHwuOlftH4rBQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1685003392; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Ej897aRyh6rgtw2EYtT4uF/xNsKz95dLFcGOdGf72W0=; b=QPIJcnVhOoXrKc/tvYed5wNXgUQB1xQvBX3r0iE2JfyLfdTCGxWotw5CTxOyj7+x56iNVB I0lPVQPRx3SuOeBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0081313356; Thu, 25 May 2023 08:29:51 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id j3T5On8cb2S+OgAAMHmgww (envelope-from ); Thu, 25 May 2023 08:29:51 +0000 Date: Thu, 25 May 2023 10:29:51 +0200 Message-ID: <87a5xsdda8.wl-tiwai@suse.de> From: Takashi Iwai To: Dan Carpenter Cc: alsa-devel@alsa-project.org Subject: Re: [bug report] ALSA: ump: Add legacy raw MIDI support In-Reply-To: <0fbc0b27-54b8-4cda-800e-37e7a03fed39@kili.mountain> References: <0fbc0b27-54b8-4cda-800e-37e7a03fed39@kili.mountain> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Message-ID-Hash: FLAZUBXPPRI5NLHZZ6IBOZ4BODOMSBDK X-Message-ID-Hash: FLAZUBXPPRI5NLHZZ6IBOZ4BODOMSBDK X-MailFrom: tiwai@suse.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Thu, 25 May 2023 10:00:10 +0200, Dan Carpenter wrote: > > Hello Takashi Iwai, > > The patch 0b5288f5fe63: "ALSA: ump: Add legacy raw MIDI support" from > May 23, 2023, leads to the following Smatch static checker warning: > > sound/core/ump_convert.c:460 do_convert_to_ump() > warn: right shifting more than type allows 8 vs 8 > > sound/core/ump_convert.c > 419 static int do_convert_to_ump(struct snd_ump_endpoint *ump, > 420 unsigned char group, unsigned char c, u32 *data) > 421 { > 422 /* bytes for 0x80-0xf0 */ > 423 static unsigned char cmd_bytes[8] = { > 424 3, 3, 3, 3, 2, 2, 3, 0 > 425 }; > 426 /* bytes for 0xf0-0xff */ > 427 static unsigned char system_bytes[16] = { > 428 0, 2, 3, 2, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1 > 429 }; > 430 struct ump_cvt_to_ump *cvt = &ump->out_cvts[group]; > 431 unsigned char bytes; > 432 > 433 if (c == UMP_MIDI1_MSG_SYSEX_START) { > 434 cvt->in_sysex = 1; > 435 cvt->len = 0; > 436 return 0; > 437 } > 438 if (c == UMP_MIDI1_MSG_SYSEX_END) { > 439 if (!cvt->in_sysex) > 440 return 0; /* skip */ > 441 return cvt_legacy_sysex_to_ump(cvt, group, data, true); > 442 } > 443 > 444 if ((c & 0xf0) == UMP_MIDI1_MSG_REALTIME) { > 445 bytes = system_bytes[c & 0x0f]; > 446 if (!bytes) > 447 return 0; /* skip */ > 448 if (bytes == 1) { > 449 data[0] = ump_compose(UMP_MSG_TYPE_SYSTEM, group, 0, c); > 450 return 4; > 451 } > 452 cvt->buf[0] = c; > 453 cvt->len = 1; > 454 cvt->cmd_bytes = bytes; > 455 cvt->in_sysex = 0; /* abort SysEx */ > 456 return 0; > 457 } > 458 > 459 if (c & 0x80) { > --> 460 bytes = cmd_bytes[(c >> 8) & 7]; > ^^^^^^ > Based on the if statement, it looks like c >> 4 was intended. Right, currently it's a bogus value. I'll submit the fix patch. Thanks! Takashi