Re: [PATCH v3] sound/oss/dmasound: fix build when drivers are mixed =y/=m

From: Guenter Roeck
Date: Fri Apr 15 2022 - 09:49:00 EST


On Tue, Apr 05, 2022 at 04:41:18PM -0700, Randy Dunlap wrote:
> When CONFIG_DMASOUND_ATARI=m and CONFIG_DMASOUND_Q40=y (or vice versa),
> dmasound_core.o can be built without dmasound_deinit() being defined,
> causing a build error:
>
> ERROR: modpost: "dmasound_deinit" [sound/oss/dmasound/dmasound_atari.ko] undefined!
>
> Modify dmasound_core.c and dmasound.h so that dmasound_deinit() is
> always available.
>
> The mixed modes (=y/=m) also mean that several variables and structs
> have to be declared in all cases.
>
> Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
> Suggested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Link: lore.kernel.org/r/202204032138.EFT9qGEd-lkp@xxxxxxxxx
> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Cc: Jaroslav Kysela <perex@xxxxxxxx>
> Cc: Takashi Iwai <tiwai@xxxxxxxx>
> Cc: alsa-devel@xxxxxxxxxxxxxxxx
> ---

m68k:allmodconfig fails to build with this patch in the tree.

Error log:
sound/oss/dmasound/dmasound_core.c:1431:12: error: 'dmasound_setup' defined but not used

... because __setup() is empty if MODULE is defined.

Guenter