From: Matwey V. Kornilov Date: Fri, 19 Feb 2016 05:29:10 +0000 (+0300) Subject: tty: serial: Use GFP_ATOMIC instead of GFP_KERNEL in serial8250_em485_init() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=b18a183eaac25bd8dc51eab85437c7253f5c31d1;p=openwrt%2Fstaging%2Fblogic.git tty: serial: Use GFP_ATOMIC instead of GFP_KERNEL in serial8250_em485_init() serial8250_em485_init() is supposed to be protected with p->port.lock spinlock. This may lead to issues when kmalloc sleeps, so it is better to use GFP_ATOMIC in this spinlocked context. Fixes: e490c9144cfa ("tty: Add software emulated RS485 support for 8250") Reported-by: Ильяс Гасанов Signed-off-by: Matwey V. Kornilov Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index e376cfaf8ab7..2ffda79a462a 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -588,7 +588,7 @@ int serial8250_em485_init(struct uart_8250_port *p) if (p->em485 != NULL) return 0; - p->em485 = kmalloc(sizeof(struct uart_8250_em485), GFP_KERNEL); + p->em485 = kmalloc(sizeof(struct uart_8250_em485), GFP_ATOMIC); if (p->em485 == NULL) return -ENOMEM;