Re: [PATCH] serial: 8250: 8250_core: Fix irq name for 8250 serial irq
From: Jiri Slaby
Date: Thu Mar 16 2017 - 08:55:05 EST
On 03/16/2017, 01:46 PM, Jiri Slaby wrote:
> On 03/16/2017, 01:26 PM, Vignesh R wrote:
>> Using dev_name() as irq name during request_irq() might be misleading in
>> case of serial over PCI. Therefore use a better alternative name for
>> identifying serial port irqs as "serial" appended with serial_index of
>> the port. This ensures that "serial" string is always present in irq
>> name while port index will help in distinguishing b/w different ports.
>>
>> Signed-off-by: Vignesh R <vigneshr@xxxxxx>
>> ---
>>
>> Based on top of tty-next.
>>
>> drivers/tty/serial/8250/8250_core.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
>> index f83b69f30987..78bf621d6827 100644
>> --- a/drivers/tty/serial/8250/8250_core.c
>> +++ b/drivers/tty/serial/8250/8250_core.c
>> @@ -213,12 +213,20 @@ static int serial_link_irq_chain(struct uart_8250_port *up)
>>
>> ret = 0;
>> } else {
>> + char *irqname = kmalloc(20, GFP_KERNEL);
>> + if (!irqname) {
>> + spin_unlock_irq(&i->lock);
>
> GFP_KERNEL and spin_lock won't play well together.
And you never free the memory. Given we have struct device, can we use
devm_kmalloc after spin_unlock_irq (you have to check if we cannot
allocate multiple times)?
thanks,
--
js
suse labs