From: Arnd Bergmann <arnd@kernel.org>
To: Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Cc: Arnd Bergmann <arnd@arndb.de>,
alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: [PATCH] ALSA: emu10k1: fix 64-bit integer division
Date: Wed, 17 May 2023 22:19:17 +0200 [thread overview]
Message-ID: <20230517201920.592909-1-arnd@kernel.org> (raw)
From: Arnd Bergmann <arnd@arndb.de>
Division of 64-bit values causes a link failure on 32-bit targets, depending
on compiler version and target architecture:
ERROR: modpost: "__divdi3" [sound/pci/emu10k1/snd-emu10k1.ko] undefined!
ERROR: modpost: "__udivdi3" [sound/pci/emu10k1/snd-emu10k1.ko] undefined!
Replace these with the safe div_u64() helpers.
Fixes: bb5ceb43b7bf ("ALSA: emu10k1: fix non-zero mixer control defaults in highres mode")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
sound/pci/emu10k1/emufx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index f64b2b4eb348..7c28789720d1 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -1156,7 +1156,7 @@ snd_emu10k1_init_mono_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
ctl->max = 0x7fffffff;
ctl->tlv = snd_emu10k1_db_linear;
ctl->translation = EMU10K1_GPR_TRANSLATION_NEGATE;
- defval = defval * 0x80000000LL / 100 - 1;
+ defval = div_u64(defval * 0x80000000LL, 100) - 1;
} else {
ctl->min = 0;
ctl->max = 100;
@@ -1178,7 +1178,7 @@ snd_emu10k1_init_stereo_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
ctl->max = 0x7fffffff;
ctl->tlv = snd_emu10k1_db_linear;
ctl->translation = EMU10K1_GPR_TRANSLATION_NEGATE;
- defval = defval * 0x80000000LL / 100 - 1;
+ defval = div_u64(defval * 0x80000000LL, 100) - 1;
} else {
ctl->min = 0;
ctl->max = 100;
--
2.39.2
next reply other threads:[~2023-05-17 20:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-17 20:19 Arnd Bergmann [this message]
2023-05-17 20:28 ` [PATCH] ALSA: emu10k1: fix 64-bit integer division Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230517201920.592909-1-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=oswald.buddenhagen@gmx.de \
--cc=perex@perex.cz \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.