Skip to content

Commit

Permalink
Annotate hardware config module parameters in sound/oss/
Browse files Browse the repository at this point in the history
When the kernel is running in secure boot mode, we lock down the kernel to
prevent userspace from modifying the running kernel image.  Whilst this
includes prohibiting access to things like /dev/mem, it must also prevent
access by means of configuring driver modules in such a way as to cause a
device to access or modify the kernel image.

To this end, annotate module_param* statements that refer to hardware
configuration and indicate for future reference what type of parameter they
specify.  The parameter parser in the core sees this information and can
skip such parameters with an error message if the kernel is locked down.
The module initialisation then runs as normal, but just sees whatever the
default values for those parameters is.

Note that we do still need to do the module initialisation because some
drivers have viable defaults set in case parameters aren't specified and
some drivers support automatic configuration (e.g. PNP or PCI) in addition
to manually coded parameters.

This patch annotates drivers in sound/oss/.

Suggested-by: Alan Cox <[email protected]>
Signed-off-by: David Howells <[email protected]>
cc: Jaroslav Kysela <[email protected]>
cc: Takashi Iwai <[email protected]>
cc: Andrew Veliath <[email protected]>
cc: [email protected]
  • Loading branch information
dhowells committed Apr 20, 2017
1 parent e992ef5 commit 232b0b0
Show file tree
Hide file tree
Showing 12 changed files with 61 additions and 61 deletions.
8 changes: 4 additions & 4 deletions sound/oss/ad1848.c
Original file line number Diff line number Diff line change
Expand Up @@ -2805,10 +2805,10 @@ static int __initdata dma = -1;
static int __initdata dma2 = -1;
static int __initdata type = 0;

module_param(io, int, 0); /* I/O for a raw AD1848 card */
module_param(irq, int, 0); /* IRQ to use */
module_param(dma, int, 0); /* First DMA channel */
module_param(dma2, int, 0); /* Second DMA channel */
module_param_hw(io, int, ioport, 0); /* I/O for a raw AD1848 card */
module_param_hw(irq, int, irq, 0); /* IRQ to use */
module_param_hw(dma, int, dma, 0); /* First DMA channel */
module_param_hw(dma2, int, dma, 0); /* Second DMA channel */
module_param(type, int, 0); /* Card type */
module_param(deskpro_xl, bool, 0); /* Special magic for Deskpro XL boxen */
module_param(deskpro_m, bool, 0); /* Special magic for Deskpro M box */
Expand Down
12 changes: 6 additions & 6 deletions sound/oss/aedsp16.c
Original file line number Diff line number Diff line change
Expand Up @@ -1303,17 +1303,17 @@ static int __initdata mpu_irq = -1;
static int __initdata mss_base = -1;
static int __initdata mpu_base = -1;

module_param(io, int, 0);
module_param_hw(io, int, ioport, 0);
MODULE_PARM_DESC(io, "I/O base address (0x220 0x240)");
module_param(irq, int, 0);
module_param_hw(irq, int, irq, 0);
MODULE_PARM_DESC(irq, "IRQ line (5 7 9 10 11)");
module_param(dma, int, 0);
module_param_hw(dma, int, dma, 0);
MODULE_PARM_DESC(dma, "dma line (0 1 3)");
module_param(mpu_irq, int, 0);
module_param_hw(mpu_irq, int, irq, 0);
MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ line (5 7 9 10 0)");
module_param(mss_base, int, 0);
module_param_hw(mss_base, int, ioport, 0);
MODULE_PARM_DESC(mss_base, "MSS emulation I/O base address (0x530 0xE80)");
module_param(mpu_base, int, 0);
module_param_hw(mpu_base, int, ioport, 0);
MODULE_PARM_DESC(mpu_base,"MPU-401 I/O base address (0x300 0x310 0x320 0x330)");
MODULE_AUTHOR("Riccardo Facchetti <[email protected]>");
MODULE_DESCRIPTION("Audio Excel DSP 16 Driver Version " VERSION);
Expand Down
4 changes: 2 additions & 2 deletions sound/oss/mpu401.c
Original file line number Diff line number Diff line change
Expand Up @@ -1748,8 +1748,8 @@ static struct address_info cfg;
static int io = -1;
static int irq = -1;

module_param(irq, int, 0);
module_param(io, int, 0);
module_param_hw(irq, int, irq, 0);
module_param_hw(io, int, ioport, 0);

static int __init init_mpu401(void)
{
Expand Down
20 changes: 10 additions & 10 deletions sound/oss/msnd_pinnacle.c
Original file line number Diff line number Diff line change
Expand Up @@ -1727,22 +1727,22 @@ static int
calibrate_signal __initdata = CONFIG_MSND_CALSIGNAL;
#endif /* MODULE */

module_param (io, int, 0);
module_param (irq, int, 0);
module_param (mem, int, 0);
module_param_hw (io, int, ioport, 0);
module_param_hw (irq, int, irq, 0);
module_param_hw (mem, int, iomem, 0);
module_param (write_ndelay, int, 0);
module_param (fifosize, int, 0);
module_param (calibrate_signal, int, 0);
#ifndef MSND_CLASSIC
module_param (digital, bool, 0);
module_param (cfg, int, 0);
module_param_hw (cfg, int, ioport, 0);
module_param (reset, int, 0);
module_param (mpu_io, int, 0);
module_param (mpu_irq, int, 0);
module_param (ide_io0, int, 0);
module_param (ide_io1, int, 0);
module_param (ide_irq, int, 0);
module_param (joystick_io, int, 0);
module_param_hw (mpu_io, int, ioport, 0);
module_param_hw (mpu_irq, int, irq, 0);
module_param_hw (ide_io0, int, ioport, 0);
module_param_hw (ide_io1, int, ioport, 0);
module_param_hw (ide_irq, int, irq, 0);
module_param_hw (joystick_io, int, ioport, 0);
#endif

static int __init msnd_init(void)
Expand Down
2 changes: 1 addition & 1 deletion sound/oss/opl3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1200,7 +1200,7 @@ static int me;

static int io = -1;

module_param(io, int, 0);
module_param_hw(io, int, ioport, 0);

static int __init init_opl3 (void)
{
Expand Down
18 changes: 9 additions & 9 deletions sound/oss/pas2_card.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,15 +383,15 @@ static int __initdata sb_irq = -1;
static int __initdata sb_dma = -1;
static int __initdata sb_dma16 = -1;

module_param(io, int, 0);
module_param(irq, int, 0);
module_param(dma, int, 0);
module_param(dma16, int, 0);

module_param(sb_io, int, 0);
module_param(sb_irq, int, 0);
module_param(sb_dma, int, 0);
module_param(sb_dma16, int, 0);
module_param_hw(io, int, ioport, 0);
module_param_hw(irq, int, irq, 0);
module_param_hw(dma, int, dma, 0);
module_param_hw(dma16, int, dma, 0);

module_param_hw(sb_io, int, ioport, 0);
module_param_hw(sb_irq, int, irq, 0);
module_param_hw(sb_dma, int, dma, 0);
module_param_hw(sb_dma16, int, dma, 0);

module_param(joystick, bool, 0);
module_param(symphony, bool, 0);
Expand Down
14 changes: 7 additions & 7 deletions sound/oss/pss.c
Original file line number Diff line number Diff line change
Expand Up @@ -1139,19 +1139,19 @@ static bool pss_no_sound = 0; /* Just configure non-sound components */
static bool pss_keep_settings = 1; /* Keep hardware settings at module exit */
static char *pss_firmware = "/etc/sound/pss_synth";

module_param(pss_io, int, 0);
module_param_hw(pss_io, int, ioport, 0);
MODULE_PARM_DESC(pss_io, "Set i/o base of PSS card (probably 0x220 or 0x240)");
module_param(mss_io, int, 0);
module_param_hw(mss_io, int, ioport, 0);
MODULE_PARM_DESC(mss_io, "Set WSS (audio) i/o base (0x530, 0x604, 0xE80, 0xF40, or other. Address must end in 0 or 4 and must be from 0x100 to 0xFF4)");
module_param(mss_irq, int, 0);
module_param_hw(mss_irq, int, irq, 0);
MODULE_PARM_DESC(mss_irq, "Set WSS (audio) IRQ (3, 5, 7, 9, 10, 11, 12)");
module_param(mss_dma, int, 0);
module_param_hw(mss_dma, int, dma, 0);
MODULE_PARM_DESC(mss_dma, "Set WSS (audio) DMA (0, 1, 3)");
module_param(mpu_io, int, 0);
module_param_hw(mpu_io, int, ioport, 0);
MODULE_PARM_DESC(mpu_io, "Set MIDI i/o base (0x330 or other. Address must be on 4 location boundaries and must be from 0x100 to 0xFFC)");
module_param(mpu_irq, int, 0);
module_param_hw(mpu_irq, int, irq, 0);
MODULE_PARM_DESC(mpu_irq, "Set MIDI IRQ (3, 5, 7, 9, 10, 11, 12)");
module_param(pss_cdrom_port, int, 0);
module_param_hw(pss_cdrom_port, int, ioport, 0);
MODULE_PARM_DESC(pss_cdrom_port, "Set the PSS CDROM port i/o base (0x340 or other)");
module_param(pss_enable_joystick, bool, 0);
MODULE_PARM_DESC(pss_enable_joystick, "Enables the PSS joystick port (1 to enable, 0 to disable)");
Expand Down
10 changes: 5 additions & 5 deletions sound/oss/sb_card.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ static int __initdata uart401 = 0;
static int __initdata pnp = 0;
#endif

module_param(io, int, 000);
module_param_hw(io, int, ioport, 000);
MODULE_PARM_DESC(io, "Soundblaster i/o base address (0x220,0x240,0x260,0x280)");
module_param(irq, int, 000);
module_param_hw(irq, int, irq, 000);
MODULE_PARM_DESC(irq, "IRQ (5,7,9,10)");
module_param(dma, int, 000);
module_param_hw(dma, int, dma, 000);
MODULE_PARM_DESC(dma, "8-bit DMA channel (0,1,3)");
module_param(dma16, int, 000);
module_param_hw(dma16, int, dma, 000);
MODULE_PARM_DESC(dma16, "16-bit DMA channel (5,6,7)");
module_param(mpu_io, int, 000);
module_param_hw(mpu_io, int, ioport, 000);
MODULE_PARM_DESC(mpu_io, "MPU base address");
module_param(type, int, 000);
MODULE_PARM_DESC(type, "You can set this to specific card type (doesn't " \
Expand Down
18 changes: 9 additions & 9 deletions sound/oss/trix.c
Original file line number Diff line number Diff line change
Expand Up @@ -413,15 +413,15 @@ static int __initdata sb_irq = -1;
static int __initdata mpu_io = -1;
static int __initdata mpu_irq = -1;

module_param(io, int, 0);
module_param(irq, int, 0);
module_param(dma, int, 0);
module_param(dma2, int, 0);
module_param(sb_io, int, 0);
module_param(sb_dma, int, 0);
module_param(sb_irq, int, 0);
module_param(mpu_io, int, 0);
module_param(mpu_irq, int, 0);
module_param_hw(io, int, ioport, 0);
module_param_hw(irq, int, irq, 0);
module_param_hw(dma, int, dma, 0);
module_param_hw(dma2, int, dma, 0);
module_param_hw(sb_io, int, ioport, 0);
module_param_hw(sb_dma, int, dma, 0);
module_param_hw(sb_irq, int, irq, 0);
module_param_hw(mpu_io, int, ioport, 0);
module_param_hw(mpu_irq, int, irq, 0);
module_param(joystick, bool, 0);

static int __init init_trix(void)
Expand Down
4 changes: 2 additions & 2 deletions sound/oss/uart401.c
Original file line number Diff line number Diff line change
Expand Up @@ -429,8 +429,8 @@ static struct address_info cfg_mpu;
static int io = -1;
static int irq = -1;

module_param(io, int, 0444);
module_param(irq, int, 0444);
module_param_hw(io, int, ioport, 0444);
module_param_hw(irq, int, irq, 0444);


static int __init init_uart401(void)
Expand Down
4 changes: 2 additions & 2 deletions sound/oss/uart6850.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,8 +315,8 @@ static struct address_info cfg_mpu;
static int __initdata io = -1;
static int __initdata irq = -1;

module_param(io, int, 0);
module_param(irq, int, 0);
module_param_hw(io, int, ioport, 0);
module_param_hw(irq, int, irq, 0);

static int __init init_uart6850(void)
{
Expand Down
8 changes: 4 additions & 4 deletions sound/oss/waveartist.c
Original file line number Diff line number Diff line change
Expand Up @@ -2036,8 +2036,8 @@ __setup("waveartist=", setup_waveartist);
#endif

MODULE_DESCRIPTION("Rockwell WaveArtist RWA-010 sound driver");
module_param(io, int, 0); /* IO base */
module_param(irq, int, 0); /* IRQ */
module_param(dma, int, 0); /* DMA */
module_param(dma2, int, 0); /* DMA2 */
module_param_hw(io, int, ioport, 0); /* IO base */
module_param_hw(irq, int, irq, 0); /* IRQ */
module_param_hw(dma, int, dma, 0); /* DMA */
module_param_hw(dma2, int, dma, 0); /* DMA2 */
MODULE_LICENSE("GPL");

0 comments on commit 232b0b0

Please sign in to comment.