Skip to content

Commit

Permalink
[PATCH] ARM: 2785/1: S3C24XX - serial calls request_irq() with IRQs d…
Browse files Browse the repository at this point in the history
…isabled

Patch from Ben Dooks

The request_irq() function is called by s3c24xx uart driver with
the local IRQs disabled. The request_irq() function can allocate
memory via kmalloc(), and this may sleep causing a warning about
sleeping in an invalid context.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Ben Dooks authored and Russell King committed Jul 3, 2005
1 parent e9dea0c commit 75f631d
Showing 1 changed file with 0 additions and 5 deletions.
5 changes: 0 additions & 5 deletions drivers/serial/s3c2410.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,14 +522,11 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
static int s3c24xx_serial_startup(struct uart_port *port)
{
struct s3c24xx_uart_port *ourport = to_ourport(port);
unsigned long flags;
int ret;

dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n",
port->mapbase, port->membase);

local_irq_save(flags);

rx_enabled(port) = 1;

ret = request_irq(RX_IRQ(port),
Expand Down Expand Up @@ -563,12 +560,10 @@ static int s3c24xx_serial_startup(struct uart_port *port)
/* the port reset code should have done the correct
* register setup for the port controls */

local_irq_restore(flags);
return ret;

err:
s3c24xx_serial_shutdown(port);
local_irq_restore(flags);
return ret;
}

Expand Down

0 comments on commit 75f631d

Please sign in to comment.