linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5] arm pl011 serial: support multi-irq request
@ 2021-07-01  1:38 Bing Fan
  2021-07-23 16:47 ` Qian Cai
  0 siblings, 1 reply; 14+ messages in thread
From: Bing Fan @ 2021-07-01  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-serial, linux-kernel

From: Bing Fan <tombinfan@tencent.com>

In order to make pl011 work better, multiple interrupts are
required, such as TXIM, RXIM, RTIM, error interrupt(FE/PE/BE/OE);
at the same time, pl011 to GIC does not merge the interrupt
lines(each serial-interrupt corresponding to different GIC hardware
interrupt), so need to enable and request multiple gic interrupt
numbers in the driver.

Signed-off-by: Bing Fan <tombinfan@tencent.com>
---
 drivers/tty/serial/amba-pl011.c | 34 ++++++++++++++++++++++++++++++---
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 78682c12156a..7bfe8efcc787 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1701,11 +1701,39 @@ static void pl011_write_lcr_h(struct uart_amba_port *uap, unsigned int lcr_h)
 	}
 }
 
+static void pl011_release_irq(struct uart_amba_port *uap, unsigned int max_cnt)
+{
+	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
+	int i;
+
+	for (i = 0; i < max_cnt; i++)
+		if (amba_dev->irq[i])
+			free_irq(amba_dev->irq[i], uap);
+}
+
 static int pl011_allocate_irq(struct uart_amba_port *uap)
 {
+	int ret = 0;
+	int i;
+	unsigned int virq;
+	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
+
 	pl011_write(uap->im, uap, REG_IMSC);
 
-	return request_irq(uap->port.irq, pl011_int, IRQF_SHARED, "uart-pl011", uap);
+	for (i = 0; i < AMBA_NR_IRQS; i++) {
+		virq = amba_dev->irq[i];
+		if (virq == 0)
+			break;
+
+		ret = request_irq(virq, pl011_int, IRQF_SHARED, dev_name(&amba_dev->dev), uap);
+		if (ret) {
+			dev_err(uap->port.dev, "request %u interrupt failed\n", virq);
+			pl011_release_irq(uap, i - 1);
+			break;
+		}
+	}
+
+	return ret;
 }
 
 /*
@@ -1864,7 +1892,7 @@ static void pl011_shutdown(struct uart_port *port)
 
 	pl011_dma_shutdown(uap);
 
-	free_irq(uap->port.irq, uap);
+	pl011_release_irq(uap, AMBA_NR_IRQS);
 
 	pl011_disable_uart(uap);
 
@@ -1894,7 +1922,7 @@ static void sbsa_uart_shutdown(struct uart_port *port)
 
 	pl011_disable_interrupts(uap);
 
-	free_irq(uap->port.irq, uap);
+	pl011_release_irq(uap, AMBA_NR_IRQS);
 
 	if (uap->port.ops->flush_buffer)
 		uap->port.ops->flush_buffer(port);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-01  1:38 [PATCH v5] arm pl011 serial: support multi-irq request Bing Fan
@ 2021-07-23 16:47 ` Qian Cai
  2021-07-26  7:17   ` Bing Fan
  0 siblings, 1 reply; 14+ messages in thread
From: Qian Cai @ 2021-07-23 16:47 UTC (permalink / raw)
  To: Bing Fan, gregkh, Bing Fan; +Cc: linux-serial, linux-kernel, Linux ARM



On 6/30/2021 9:38 PM, Bing Fan wrote:
> From: Bing Fan <tombinfan@tencent.com>
> 
> In order to make pl011 work better, multiple interrupts are
> required, such as TXIM, RXIM, RTIM, error interrupt(FE/PE/BE/OE);
> at the same time, pl011 to GIC does not merge the interrupt
> lines(each serial-interrupt corresponding to different GIC hardware
> interrupt), so need to enable and request multiple gic interrupt
> numbers in the driver.
> 
> Signed-off-by: Bing Fan <tombinfan@tencent.com>
> ---
>  drivers/tty/serial/amba-pl011.c | 34 ++++++++++++++++++++++++++++++---
>  1 file changed, 31 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 78682c12156a..7bfe8efcc787 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1701,11 +1701,39 @@ static void pl011_write_lcr_h(struct uart_amba_port *uap, unsigned int lcr_h)
>  	}
>  }
>  
> +static void pl011_release_irq(struct uart_amba_port *uap, unsigned int max_cnt)
> +{
> +	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
> +	int i;
> +
> +	for (i = 0; i < max_cnt; i++)
> +		if (amba_dev->irq[i])
> +			free_irq(amba_dev->irq[i], uap);
> +}
> +
>  static int pl011_allocate_irq(struct uart_amba_port *uap)
>  {
> +	int ret = 0;
> +	int i;
> +	unsigned int virq;
> +	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
> +
>  	pl011_write(uap->im, uap, REG_IMSC);
>  
> -	return request_irq(uap->port.irq, pl011_int, IRQF_SHARED, "uart-pl011", uap);
> +	for (i = 0; i < AMBA_NR_IRQS; i++) {
> +		virq = amba_dev->irq[i];

This could trigger a slab-out-of-bounds during booting.

[   18.716444] BUG: KASAN: slab-out-of-bounds in pl011_allocate_irq+0x1f8/0x2f8
[   18.724191] Read of size 4 at addr ffff00001a3a0508 by task swapper/0/1

[   18.733680] CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.14.0-rc2-next-20210723 #69
[   18.741941] Hardware name: MiTAC RAPTOR EV-883832-X3-0001/RAPTOR, BIOS 1.6 06/28/2020
[   18.750461] Call trace:
[   18.753597]  dump_backtrace+0x0/0x3b8
[   18.757956]  show_stack+0x20/0x30
[   18.761964]  dump_stack_lvl+0x8c/0xb8
[   18.766319]  print_address_description.constprop.0+0x74/0x3c8
[   18.772759]  kasan_report+0x1f0/0x208
[   18.777113]  __asan_report_load4_noabort+0x34/0x60
[   18.782596]  pl011_allocate_irq+0x1f8/0x2f8
[   18.787471]  sbsa_uart_startup+0x44/0x98
[   18.792086]  uart_startup.part.0+0x28c/0x618
[   18.797048]  uart_port_activate+0xf0/0x178
[   18.801836]  tty_port_open+0x118/0x1c8
[   18.806278]  uart_open+0x44/0x70
[   18.810199]  tty_open+0x248/0x960
[   18.814207]  chrdev_open+0x19c/0x440
[   18.818476]  do_dentry_open+0x3ac/0xdb0
[   18.823005]  vfs_open+0x98/0xd0
[   18.826838]  do_open.isra.0+0x4a8/0x8c0
[   18.831366]  path_openat+0x3ac/0xe28
[   18.835633]  do_filp_open+0x150/0x220
[   18.839987]  file_open_name+0x120/0x200
[   18.844515]  filp_open+0x40/0x80
[   18.848436]  console_on_rootfs+0x30/0x7c
[   18.853052]  kernel_init_freeable+0x74c/0x7d0
[   18.858100]  kernel_init+0x2c/0x140
[   18.862282]  ret_from_fork+0x10/0x18

[   18.868732] Allocated by task 1:
[   18.872651]  kasan_save_stack+0x28/0x58
[   18.877181]  __kasan_kmalloc+0x8c/0xb0
[   18.881622]  __kmalloc+0x260/0x3d0
[   18.885716]  platform_device_alloc+0x34/0x1b8
[   18.890766]  platform_device_register_full+0x68/0x418
[   18.896509]  acpi_create_platform_device.part.0+0x170/0x538
[   18.902776]  acpi_create_platform_device+0x8c/0xa8
[   18.908259]  acpi_default_enumeration+0x54/0xd0
[   18.913482]  acpi_bus_attach+0x664/0x7d0
[   18.918096]  acpi_bus_attach+0x178/0x7d0
[   18.922709]  acpi_bus_attach+0x178/0x7d0
[   18.927324]  acpi_bus_attach+0x178/0x7d0
[   18.931937]  acpi_bus_scan+0xa8/0x170
[   18.936291]  acpi_scan_init+0x220/0x554
[   18.940819]  acpi_init+0x1fc/0x27c
[   18.944912]  do_one_initcall+0x170/0xb98
[   18.949527]  kernel_init_freeable+0x718/0x7d0
[   18.954575]  kernel_init+0x2c/0x140
[   18.958759]  ret_from_fork+0x10/0x18

[   18.965214] The buggy address belongs to the object at ffff00001a3a0000
                which belongs to the cache kmalloc-2k of size 2048
[   18.979117] The buggy address is located 1288 bytes inside of
                2048-byte region [ffff00001a3a0000, ffff00001a3a0800)
[   18.992412] The buggy address belongs to the page:
[   18.997894] page:ffffffc000068e00 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x9a38
[   19.007805] head:ffffffc000068e00 order:2 compound_mapcount:0 compound_pincount:0
[   19.015977] flags: 0x7ffff800010200(slab|head|node=0|zone=0|lastcpupid=0xfffff)
[   19.023982] raw: 007ffff800010200 ffffffc000067508 ffffffc000069f08 ffff000012911280
[   19.032416] raw: 0000000000000000 00000000002a002a 00000001ffffffff 0000000000000000
[   19.040848] page dumped because: kasan: bad access detected

[   19.049291] Memory state around the buggy address:
[   19.054772]  ffff00001a3a0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   19.062684]  ffff00001a3a0480: 00 00 00 00 00 00 00 00 00 00 00 04 fc fc fc fc
[   19.070595] >ffff00001a3a0500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   19.078506]                       ^
[   19.082686]  ffff00001a3a0580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   19.090597]  ffff00001a3a0600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc


> +		if (virq == 0)
> +			break;
> +
> +		ret = request_irq(virq, pl011_int, IRQF_SHARED, dev_name(&amba_dev->dev), uap);
> +		if (ret) {
> +			dev_err(uap->port.dev, "request %u interrupt failed\n", virq);
> +			pl011_release_irq(uap, i - 1);
> +			break;
> +		}
> +	}
> +
> +	return ret;
>  }
>  
>  /*
> @@ -1864,7 +1892,7 @@ static void pl011_shutdown(struct uart_port *port)
>  
>  	pl011_dma_shutdown(uap);
>  
> -	free_irq(uap->port.irq, uap);
> +	pl011_release_irq(uap, AMBA_NR_IRQS);
>  
>  	pl011_disable_uart(uap);
>  
> @@ -1894,7 +1922,7 @@ static void sbsa_uart_shutdown(struct uart_port *port)
>  
>  	pl011_disable_interrupts(uap);
>  
> -	free_irq(uap->port.irq, uap);
> +	pl011_release_irq(uap, AMBA_NR_IRQS);
>  
>  	if (uap->port.ops->flush_buffer)
>  		uap->port.ops->flush_buffer(port);
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-23 16:47 ` Qian Cai
@ 2021-07-26  7:17   ` Bing Fan
  2021-07-26 16:39     ` Qian Cai
  0 siblings, 1 reply; 14+ messages in thread
From: Bing Fan @ 2021-07-26  7:17 UTC (permalink / raw)
  To: Qian Cai, gregkh, Bing Fan; +Cc: linux-serial, linux-kernel, Linux ARM

[-- Attachment #1: Type: text/plain, Size: 6709 bytes --]

Hello,

I tried to reproduce, but unfortunately, it didn't, and the dmesg log as 
attachment.

I had enabled CONFIG_KASAN and CONFIG_SLUB_DEBUG_ON configs.

Can you describe the flow of your operation?


Thanks.



在 7/24/2021 0:47, Qian Cai 写道:
>
> On 6/30/2021 9:38 PM, Bing Fan wrote:
>> From: Bing Fan <tombinfan@tencent.com>
>>
>> In order to make pl011 work better, multiple interrupts are
>> required, such as TXIM, RXIM, RTIM, error interrupt(FE/PE/BE/OE);
>> at the same time, pl011 to GIC does not merge the interrupt
>> lines(each serial-interrupt corresponding to different GIC hardware
>> interrupt), so need to enable and request multiple gic interrupt
>> numbers in the driver.
>>
>> Signed-off-by: Bing Fan <tombinfan@tencent.com>
>> ---
>>   drivers/tty/serial/amba-pl011.c | 34 ++++++++++++++++++++++++++++++---
>>   1 file changed, 31 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
>> index 78682c12156a..7bfe8efcc787 100644
>> --- a/drivers/tty/serial/amba-pl011.c
>> +++ b/drivers/tty/serial/amba-pl011.c
>> @@ -1701,11 +1701,39 @@ static void pl011_write_lcr_h(struct uart_amba_port *uap, unsigned int lcr_h)
>>   	}
>>   }
>>   
>> +static void pl011_release_irq(struct uart_amba_port *uap, unsigned int max_cnt)
>> +{
>> +	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
>> +	int i;
>> +
>> +	for (i = 0; i < max_cnt; i++)
>> +		if (amba_dev->irq[i])
>> +			free_irq(amba_dev->irq[i], uap);
>> +}
>> +
>>   static int pl011_allocate_irq(struct uart_amba_port *uap)
>>   {
>> +	int ret = 0;
>> +	int i;
>> +	unsigned int virq;
>> +	struct amba_device *amba_dev = container_of(uap->port.dev, struct amba_device, dev);
>> +
>>   	pl011_write(uap->im, uap, REG_IMSC);
>>   
>> -	return request_irq(uap->port.irq, pl011_int, IRQF_SHARED, "uart-pl011", uap);
>> +	for (i = 0; i < AMBA_NR_IRQS; i++) {
>> +		virq = amba_dev->irq[i];
> This could trigger a slab-out-of-bounds during booting.
>
> [   18.716444] BUG: KASAN: slab-out-of-bounds in pl011_allocate_irq+0x1f8/0x2f8
> [   18.724191] Read of size 4 at addr ffff00001a3a0508 by task swapper/0/1
>
> [   18.733680] CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.14.0-rc2-next-20210723 #69
> [   18.741941] Hardware name: MiTAC RAPTOR EV-883832-X3-0001/RAPTOR, BIOS 1.6 06/28/2020
> [   18.750461] Call trace:
> [   18.753597]  dump_backtrace+0x0/0x3b8
> [   18.757956]  show_stack+0x20/0x30
> [   18.761964]  dump_stack_lvl+0x8c/0xb8
> [   18.766319]  print_address_description.constprop.0+0x74/0x3c8
> [   18.772759]  kasan_report+0x1f0/0x208
> [   18.777113]  __asan_report_load4_noabort+0x34/0x60
> [   18.782596]  pl011_allocate_irq+0x1f8/0x2f8
> [   18.787471]  sbsa_uart_startup+0x44/0x98
> [   18.792086]  uart_startup.part.0+0x28c/0x618
> [   18.797048]  uart_port_activate+0xf0/0x178
> [   18.801836]  tty_port_open+0x118/0x1c8
> [   18.806278]  uart_open+0x44/0x70
> [   18.810199]  tty_open+0x248/0x960
> [   18.814207]  chrdev_open+0x19c/0x440
> [   18.818476]  do_dentry_open+0x3ac/0xdb0
> [   18.823005]  vfs_open+0x98/0xd0
> [   18.826838]  do_open.isra.0+0x4a8/0x8c0
> [   18.831366]  path_openat+0x3ac/0xe28
> [   18.835633]  do_filp_open+0x150/0x220
> [   18.839987]  file_open_name+0x120/0x200
> [   18.844515]  filp_open+0x40/0x80
> [   18.848436]  console_on_rootfs+0x30/0x7c
> [   18.853052]  kernel_init_freeable+0x74c/0x7d0
> [   18.858100]  kernel_init+0x2c/0x140
> [   18.862282]  ret_from_fork+0x10/0x18
>
> [   18.868732] Allocated by task 1:
> [   18.872651]  kasan_save_stack+0x28/0x58
> [   18.877181]  __kasan_kmalloc+0x8c/0xb0
> [   18.881622]  __kmalloc+0x260/0x3d0
> [   18.885716]  platform_device_alloc+0x34/0x1b8
> [   18.890766]  platform_device_register_full+0x68/0x418
> [   18.896509]  acpi_create_platform_device.part.0+0x170/0x538
> [   18.902776]  acpi_create_platform_device+0x8c/0xa8
> [   18.908259]  acpi_default_enumeration+0x54/0xd0
> [   18.913482]  acpi_bus_attach+0x664/0x7d0
> [   18.918096]  acpi_bus_attach+0x178/0x7d0
> [   18.922709]  acpi_bus_attach+0x178/0x7d0
> [   18.927324]  acpi_bus_attach+0x178/0x7d0
> [   18.931937]  acpi_bus_scan+0xa8/0x170
> [   18.936291]  acpi_scan_init+0x220/0x554
> [   18.940819]  acpi_init+0x1fc/0x27c
> [   18.944912]  do_one_initcall+0x170/0xb98
> [   18.949527]  kernel_init_freeable+0x718/0x7d0
> [   18.954575]  kernel_init+0x2c/0x140
> [   18.958759]  ret_from_fork+0x10/0x18
>
> [   18.965214] The buggy address belongs to the object at ffff00001a3a0000
>                  which belongs to the cache kmalloc-2k of size 2048
> [   18.979117] The buggy address is located 1288 bytes inside of
>                  2048-byte region [ffff00001a3a0000, ffff00001a3a0800)
> [   18.992412] The buggy address belongs to the page:
> [   18.997894] page:ffffffc000068e00 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x9a38
> [   19.007805] head:ffffffc000068e00 order:2 compound_mapcount:0 compound_pincount:0
> [   19.015977] flags: 0x7ffff800010200(slab|head|node=0|zone=0|lastcpupid=0xfffff)
> [   19.023982] raw: 007ffff800010200 ffffffc000067508 ffffffc000069f08 ffff000012911280
> [   19.032416] raw: 0000000000000000 00000000002a002a 00000001ffffffff 0000000000000000
> [   19.040848] page dumped because: kasan: bad access detected
>
> [   19.049291] Memory state around the buggy address:
> [   19.054772]  ffff00001a3a0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> [   19.062684]  ffff00001a3a0480: 00 00 00 00 00 00 00 00 00 00 00 04 fc fc fc fc
> [   19.070595] >ffff00001a3a0500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [   19.078506]                       ^
> [   19.082686]  ffff00001a3a0580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [   19.090597]  ffff00001a3a0600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>
>> +		if (virq == 0)
>> +			break;
>> +
>> +		ret = request_irq(virq, pl011_int, IRQF_SHARED, dev_name(&amba_dev->dev), uap);
>> +		if (ret) {
>> +			dev_err(uap->port.dev, "request %u interrupt failed\n", virq);
>> +			pl011_release_irq(uap, i - 1);
>> +			break;
>> +		}
>> +	}
>> +
>> +	return ret;
>>   }
>>   
>>   /*
>> @@ -1864,7 +1892,7 @@ static void pl011_shutdown(struct uart_port *port)
>>   
>>   	pl011_dma_shutdown(uap);
>>   
>> -	free_irq(uap->port.irq, uap);
>> +	pl011_release_irq(uap, AMBA_NR_IRQS);
>>   
>>   	pl011_disable_uart(uap);
>>   
>> @@ -1894,7 +1922,7 @@ static void sbsa_uart_shutdown(struct uart_port *port)
>>   
>>   	pl011_disable_interrupts(uap);
>>   
>> -	free_irq(uap->port.irq, uap);
>> +	pl011_release_irq(uap, AMBA_NR_IRQS);
>>   
>>   	if (uap->port.ops->flush_buffer)
>>   		uap->port.ops->flush_buffer(port);
>>

[-- Attachment #2: dmesg_log-20210726.txt --]
[-- Type: text/plain, Size: 16150 bytes --]

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.14.0-rc2-00265-gf0fddcec6b62-dirty (ubuntu@VM-71-95-ubuntu) (aarch64-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0, GNU ld (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 2.32.0.20190321) #1 SMP PREEMPT Mon Jul 26 11:50:29 CST 2021
[    0.000000] Machine model: linux,dummy-virt
[    0.000000] efi: UEFI not found.
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x13f7f7c00-0x13f7f9fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] cma: Reserved 32 MiB at 0x00000000fe000000
[    0.000000] kasan: KernelAddressSanitizer initialized
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv0.2 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] percpu: Embedded 24 pages/cpu s57944 r8192 d32168 u98304
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: kernel page table isolation forced ON by KASLR
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1032192
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: console=ttyAMA0 mymodule.dyndbg=+p
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000fa000000-0x00000000fe000000] (64MB)
[    0.000000] Memory: 3340912K/4194304K available (21760K kernel code, 14458K rwdata, 15040K rodata, 19712K init, 781K bss, 820624K reserved, 32768K cma-reserved)
[    0.000000] **********************************************************
[    0.000000] **   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE   **
[    0.000000] **                                                      **
[    0.000000] ** This system shows unhashed kernel memory addresses   **
[    0.000000] ** via the console, logs, and other interfaces. This    **
[    0.000000] ** might reduce the security of your system.            **
[    0.000000] **                                                      **
[    0.000000] ** If you see this message and you are not debugging    **
[    0.000000] ** the kernel, report this immediately to your system   **
[    0.000000] ** administrator!                                       **
[    0.000000] **                                                      **
[    0.000000] **   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE   **
[    0.000000] **********************************************************
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: 224 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000080a0000
[    0.000000] random: get_random_bytes called from start_kernel+0x1e0/0x3b0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns
[    0.000170] sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns
[    0.019458] Console: colour dummy device 80x25
[    0.036216] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)
[    0.036667] pid_max: default: 32768 minimum: 301
[    0.041724] LSM: Security Framework initializing
[    0.046115] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.046546] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.199827] rcu: Hierarchical SRCU implementation.
[    0.228501] EFI services will not be available.
[    0.234741] smp: Bringing up secondary CPUs ...
[    0.342763] Detected VIPT I-cache on CPU1
[    0.344617] GICv3: CPU1: found redistributor 1 region 0:0x00000000080c0000
[    0.345313] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.354955] smp: Brought up 1 node, 2 CPUs
[    0.355258] SMP: Total of 2 processors activated.
[    0.355476] CPU features: detected: 32-bit EL0 Support
[    0.355582] CPU features: detected: 32-bit EL1 Support
[    0.355795] CPU features: detected: CRC32 instructions
[    0.460818] CPU: All CPU(s) started at EL1
[    0.462063] alternatives: patching kernel code
[    0.530153] devtmpfs: initialized
[    0.792117] KASLR enabled
[    0.801232] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.801753] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.828500] pinctrl core: initialized pinctrl subsystem
[    0.914305] DMI not present or invalid.
[    0.958452] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    1.013085] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    1.016270] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    1.019875] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    1.021981] audit: initializing netlink subsys (disabled)
[    1.030082] audit: type=2000 audit(0.832:1): state=initialized audit_enabled=0 res=1
[    1.095051] thermal_sys: Registered thermal governor 'step_wise'
[    1.095256] thermal_sys: Registered thermal governor 'power_allocator'
[    1.099111] cpuidle: using governor menu
[    1.107995] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    1.109572] ASID allocator initialised with 32768 entries
[    1.178112] Serial: AMBA PL011 UART driver
[    1.508188] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 47, base_baud = 0) is a PL011 rev1
[    1.548912] printk: console [ttyAMA0] enabled
[    2.175513] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    2.176084] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    2.176497] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    2.177190] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    2.247197] cryptd: max_cpu_qlen set to 1000
[    2.334461] ACPI: Interpreter disabled.
[    2.411311] iommu: Default domain type: Translated 
[    2.419557] vgaarb: loaded
[    2.440182] SCSI subsystem initialized
[    2.464958] usbcore: registered new interface driver usbfs
[    2.468399] usbcore: registered new interface driver hub
[    2.470538] usbcore: registered new device driver usb
[    2.495608] pps_core: LinuxPPS API ver. 1 registered
[    2.496162] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.498181] PTP clock support registered
[    2.504184] EDAC MC: Ver: 3.0.0
[    2.565208] FPGA manager framework
[    2.573760] Advanced Linux Sound Architecture Driver Initialized.
[    2.648162] clocksource: Switched to clocksource arch_sys_counter
[    2.666360] VFS: Disk quotas dquot_6.6.0
[    2.668335] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.680156] pnp: PnP ACPI: disabled
[    3.006844] NET: Registered PF_INET protocol family
[    3.022597] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    3.073969] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    3.076304] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    3.081830] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    3.087222] TCP: Hash tables configured (established 32768 bind 32768)
[    3.092941] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    3.094876] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    3.113542] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    3.149849] RPC: Registered named UNIX socket transport module.
[    3.150541] RPC: Registered udp transport module.
[    3.150903] RPC: Registered tcp transport module.
[    3.151279] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    3.152412] PCI: CLS 0 bytes, default 64
[    3.172442] hw perfevents: enabled with armv8_pmuv3 PMU driver, 5 counters available
[    3.174421] Unpacking initramfs...
[    3.175285] kvm [1]: HYP mode not available
[    3.306448] Initialise system trusted keyrings
[    3.314131] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[    3.915834] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    3.962708] NFS: Registering the id_resolver key type
[    3.964718] Key type id_resolver registered
[    3.965267] Key type id_legacy registered
[    3.971848] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    3.972940] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    3.978970] 9p: Installing v9fs 9p2000 file system support
[    4.050879] Key type asymmetric registered
[    4.052102] Asymmetric key parser 'x509' registered
[    4.055131] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    4.056607] io scheduler mq-deadline registered
[    4.132579] io scheduler kyber registered
[    4.405333] pl061_gpio 9030000.pl061: PL061 GPIO chip registered
[    4.456878] pci-host-generic 4010000000.pcie: host bridge /pcie@10000000 ranges:
[    4.459391] pci-host-generic 4010000000.pcie:       IO 0x003eff0000..0x003effffff -> 0x0000000000
[    4.462093] pci-host-generic 4010000000.pcie:      MEM 0x0010000000..0x003efeffff -> 0x0010000000
[    4.462894] pci-host-generic 4010000000.pcie:      MEM 0x8000000000..0xffffffffff -> 0x8000000000
[    4.465172] pci-host-generic 4010000000.pcie: Memory resource size exceeds max for 32 bits
[    4.823275] pci-host-generic 4010000000.pcie: ECAM at [mem 0x4010000000-0x401fffffff] for [bus 00-ff]
[    4.834115] pci-host-generic 4010000000.pcie: PCI host bridge to bus 0000:00
[    4.835466] pci_bus 0000:00: root bus resource [bus 00-ff]
[    4.836627] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    4.837358] pci_bus 0000:00: root bus resource [mem 0x10000000-0x3efeffff]
[    4.838059] pci_bus 0000:00: root bus resource [mem 0x8000000000-0xffffffffff]
[    4.843295] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000
[    4.861167] pci 0000:00:01.0: [1af4:1000] type 00 class 0x020000
[    4.862515] pci 0000:00:01.0: reg 0x10: [io  0x0000-0x001f]
[    4.863241] pci 0000:00:01.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]
[    4.864676] pci 0000:00:01.0: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[    4.888668] pci 0000:00:01.0: BAR 6: assigned [mem 0x10000000-0x1003ffff pref]
[    4.889947] pci 0000:00:01.0: BAR 4: assigned [mem 0x8000000000-0x8000003fff 64bit pref]
[    4.890883] pci 0000:00:01.0: BAR 0: assigned [io  0x1000-0x101f]
[    4.935918] EINJ: ACPI disabled.
[    5.445731] virtio-pci 0000:00:01.0: enabling device (0000 -> 0003)
[    5.672546] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    5.750260] SuperH (H)SCI(F) driver initialized
[    5.765283] msm_serial: driver initialized
[    5.818982] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    6.181408] loop: module loaded
[    6.233318] megasas: 07.717.02.00-rc1
[    6.390018] physmap-flash 0.flash: physmap platform flash device: [mem 0x00000000-0x03ffffff]
[    6.394209] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
[    6.397208] Intel/Sharp Extended Query Table at 0x0031
[    6.399223] Using buffer write method
[    6.590786] physmap-flash 0.flash: physmap platform flash device: [mem 0x04000000-0x07ffffff]
[    6.593407] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
[    6.594863] Intel/Sharp Extended Query Table at 0x0031
[    6.599423] Using buffer write method
[    6.601192] Concatenating MTD devices:
[    6.601697] (0): "0.flash"
[    6.602018] (1): "0.flash"
[    6.602361] into device "0.flash"
[    7.090868] Freeing initrd memory: 58712K
[    7.598312] libphy: Fixed MDIO Bus: probed
[    7.694659] tun: Universal TUN/TAP device driver, 1.6
[    7.768326] thunder_xcv, ver 1.0
[    7.770755] thunder_bgx, ver 1.0
[    7.773238] nicpf, ver 1.0
[    7.812928] hclge is initializing
[    7.813788] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    7.814337] hns3: Copyright (c) 2017 Huawei Corporation.
[    7.817829] e1000: Intel(R) PRO/1000 Network Driver
[    7.818297] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    7.821175] e1000e: Intel(R) PRO/1000 Network Driver
[    7.821542] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    7.824561] igb: Intel(R) Gigabit Ethernet Network Driver
[    7.824965] igb: Copyright (c) 2007-2014 Intel Corporation.
[    7.826873] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    7.827280] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    7.836971] sky2: driver version 1.30
[    7.869138] VFIO - User Level meta-driver version: 0.3
[    7.946211] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    7.947112] ehci-pci: EHCI PCI platform driver
[    7.949747] ehci-platform: EHCI generic platform driver
[    7.953324] ehci-orion: EHCI orion driver
[    7.956327] ehci-exynos: EHCI Exynos driver
[    7.958917] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    7.960449] ohci-pci: OHCI PCI platform driver
[    7.963010] ohci-platform: OHCI generic platform driver
[    7.966367] ohci-exynos: OHCI Exynos driver
[    7.983160] usbcore: registered new interface driver usb-storage
[    8.079956] rtc-pl031 9010000.pl031: registered as rtc0
[    8.081608] rtc-pl031 9010000.pl031: setting system clock to 2021-07-26T06:37:33 UTC (1627281453)
[    8.101601] i2c /dev entries driver
[    8.274460] sdhci: Secure Digital Host Controller Interface driver
[    8.275053] sdhci: Copyright(c) Pierre Ossman
[    8.293647] Synopsys Designware Multimedia Card Interface Driver
[    8.319816] sdhci-pltfm: SDHCI platform and OF driver helper
[    8.359486] ledtrig-cpu: registered to indicate activity on CPUs
[    8.413754] usbcore: registered new interface driver usbhid
[    8.414394] usbhid: USB HID core driver
[    8.565818] NET: Registered PF_PACKET protocol family
[    8.575530] 9pnet: Installing 9P2000 support
[    8.578042] Key type dns_resolver registered
[    8.586677] Loading compiled-in X.509 certificates
[    8.641609] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    8.772737] ALSA device list:
[    8.773240]   No soundcards found.
[    8.785545] uart-pl011 9000000.pl011: no DMA platform data
[    8.924633] Freeing unused kernel memory: 19712K
[    8.927109] Run /init as init process

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-26  7:17   ` Bing Fan
@ 2021-07-26 16:39     ` Qian Cai
  2021-07-26 20:36       ` Robin Murphy
  0 siblings, 1 reply; 14+ messages in thread
From: Qian Cai @ 2021-07-26 16:39 UTC (permalink / raw)
  To: Bing Fan, gregkh, Bing Fan; +Cc: linux-serial, linux-kernel, Linux ARM



On 7/26/2021 3:17 AM, Bing Fan wrote:
> Hello,
> 
> I tried to reproduce, but unfortunately, it didn't, and the dmesg log as
> attachment.
> 
> I had enabled CONFIG_KASAN and CONFIG_SLUB_DEBUG_ON configs.
> 
> Can you describe the flow of your operation?
> 
Nothing fancy. Just boot a baremetal ARM server on linux-next could trigger it.
The .config is here.

https://www.lsbug.org/tmp/arm64.conf

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-26 16:39     ` Qian Cai
@ 2021-07-26 20:36       ` Robin Murphy
  2021-07-26 20:56         ` Qian Cai
  0 siblings, 1 reply; 14+ messages in thread
From: Robin Murphy @ 2021-07-26 20:36 UTC (permalink / raw)
  To: Qian Cai, Bing Fan, gregkh, Bing Fan
  Cc: linux-serial, linux-kernel, Linux ARM

On 2021-07-26 17:39, Qian Cai wrote:
> 
> 
> On 7/26/2021 3:17 AM, Bing Fan wrote:
>> Hello,
>>
>> I tried to reproduce, but unfortunately, it didn't, and the dmesg log as
>> attachment.
>>
>> I had enabled CONFIG_KASAN and CONFIG_SLUB_DEBUG_ON configs.
>>
>> Can you describe the flow of your operation?
>>
> Nothing fancy. Just boot a baremetal ARM server on linux-next could trigger it.
> The .config is here.

The important point you're missing, but which the KASAN dump does hint 
at, is that that is a machine with SBSA generic UARTs booting via ACPI - 
I know it doesn't do DT at all because I have one too. What matters 
there is that pl011 binds as a platform driver, *not* an amba driver.

Robin.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-26 20:36       ` Robin Murphy
@ 2021-07-26 20:56         ` Qian Cai
  2021-07-26 21:14           ` Robin Murphy
  0 siblings, 1 reply; 14+ messages in thread
From: Qian Cai @ 2021-07-26 20:56 UTC (permalink / raw)
  To: Robin Murphy, Bing Fan, gregkh, Bing Fan
  Cc: linux-serial, linux-kernel, Linux ARM



On 7/26/2021 4:36 PM, Robin Murphy wrote:
> The important point you're missing, but which the KASAN dump does hint at, is
> that that is a machine with SBSA generic UARTs booting via ACPI - I know it
> doesn't do DT at all because I have one too. What matters there is that pl011
> binds as a platform driver, *not* an amba driver.

Thanks for pointing out, Robin. I just yet to see an ARM server booting from DT
those days.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-26 20:56         ` Qian Cai
@ 2021-07-26 21:14           ` Robin Murphy
  2021-07-27  2:57             ` Bing Fan
  0 siblings, 1 reply; 14+ messages in thread
From: Robin Murphy @ 2021-07-26 21:14 UTC (permalink / raw)
  To: Qian Cai, Bing Fan, gregkh, Bing Fan
  Cc: linux-serial, linux-kernel, Linux ARM

On 2021-07-26 21:56, Qian Cai wrote:
> 
> 
> On 7/26/2021 4:36 PM, Robin Murphy wrote:
>> The important point you're missing, but which the KASAN dump does hint at, is
>> that that is a machine with SBSA generic UARTs booting via ACPI - I know it
>> doesn't do DT at all because I have one too. What matters there is that pl011
>> binds as a platform driver, *not* an amba driver.
> 
> Thanks for pointing out, Robin. I just yet to see an ARM server booting from DT
> those days.

Unlikely in production datacentre/cloud environments, indeed, although 
some of the mid-range kit like LX2160 does start to blur the line of 
what might be considered "server", and that's one example which *does* 
have full-featured DT support (even if it also aspires to ACPI...)

What I thought was worth clarifying for the general audience is that the 
relevant aspects of "server" here should in fact still be possible to 
reproduce on something like a Raspberry Pi or a tiny QEMU VM, if one can 
figure out the ACPI runes :)

Thanks,
Robin.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-26 21:14           ` Robin Murphy
@ 2021-07-27  2:57             ` Bing Fan
  2021-08-12 14:31               ` Qian Cai
  0 siblings, 1 reply; 14+ messages in thread
From: Bing Fan @ 2021-07-27  2:57 UTC (permalink / raw)
  To: Robin Murphy, Qian Cai, gregkh, Bing Fan
  Cc: linux-serial, linux-kernel, Linux ARM

hello,

Thanks very much for analysis. And i have get the cause of the problem.

I will add pl011_allocate_multi_irqs/pl011_release_multi_irqs functions 
for amba drivers,

and call them in pl011_startup/pl011_shutdown respectively.


Reserved pl011_allocate_irq/pl011_release_irq functions for platform 
drivers.

Please help to confirm, is this ok?





在 7/27/2021 5:14, Robin Murphy 写道:
> On 2021-07-26 21:56, Qian Cai wrote:
>>
>>
>> On 7/26/2021 4:36 PM, Robin Murphy wrote:
>>> The important point you're missing, but which the KASAN dump does 
>>> hint at, is
>>> that that is a machine with SBSA generic UARTs booting via ACPI - I 
>>> know it
>>> doesn't do DT at all because I have one too. What matters there is 
>>> that pl011
>>> binds as a platform driver, *not* an amba driver.
>>
>> Thanks for pointing out, Robin. I just yet to see an ARM server 
>> booting from DT
>> those days.
>
> Unlikely in production datacentre/cloud environments, indeed, although 
> some of the mid-range kit like LX2160 does start to blur the line of 
> what might be considered "server", and that's one example which *does* 
> have full-featured DT support (even if it also aspires to ACPI...)
>
> What I thought was worth clarifying for the general audience is that 
> the relevant aspects of "server" here should in fact still be possible 
> to reproduce on something like a Raspberry Pi or a tiny QEMU VM, if 
> one can figure out the ACPI runes :)
>
> Thanks,
> Robin.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-07-27  2:57             ` Bing Fan
@ 2021-08-12 14:31               ` Qian Cai
       [not found]                 ` <67cd6c830e33491e99ea4d2480f4a89d@tencent.com>
  0 siblings, 1 reply; 14+ messages in thread
From: Qian Cai @ 2021-08-12 14:31 UTC (permalink / raw)
  To: Bing Fan, Robin Murphy, gregkh, Bing Fan
  Cc: linux-serial, linux-kernel, Linux ARM



On 7/26/2021 10:57 PM, Bing Fan wrote:
> hello,
> 
> Thanks very much for analysis. And i have get the cause of the problem.
> 
> I will add pl011_allocate_multi_irqs/pl011_release_multi_irqs functions for amba drivers,
> 
> and call them in pl011_startup/pl011_shutdown respectively.
> 
> 
> Reserved pl011_allocate_irq/pl011_release_irq functions for platform drivers.
> 
> Please help to confirm, is this ok?

Bing, are you still working on this? It is getting annoying that this commit will also
cause the whole serial console useless and the system unable to login. I am happy to
help if needed.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Internet]Re: [PATCH v5] arm pl011 serial: support multi-irq request
       [not found]                   ` <09918b566884413898f63b92ddd037a0@tencent.com>
@ 2021-08-13 13:42                     ` Qian Cai
  2021-08-13 15:01                       ` gregkh
  0 siblings, 1 reply; 14+ messages in thread
From: Qian Cai @ 2021-08-13 13:42 UTC (permalink / raw)
  To: tombinfan(范兵), Bing Fan, Robin Murphy, gregkh
  Cc: linux-serial, linux-kernel, Linux ARM



On 8/12/2021 11:32 PM, tombinfan(范兵) wrote:
> hello,
> 
> I have sent the modified patch to the following mailboxes. THX
> 
> gregkh@linuxfoundation.org
> linux-serial@vger.kernel.org
> linux-kernel@vger.kernel.org

Thanks for the pointer. It is good to get some reviews from Arm
people in the first place, so we don't break Arm like this.

Anyway, for anyone who might be watching, here is the new patch,

https://lore.kernel.org/linux-serial/1628825490-18937-1-git-send-email-hptsfb@gmail.com/

Unfortunately, I saw Greg mentioned that it was not based on
tty-next, so not something I can apply easily on linux-next here
as well.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Internet]Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-08-13 13:42                     ` [Internet]Re: " Qian Cai
@ 2021-08-13 15:01                       ` gregkh
  2021-08-13 15:09                         ` Robin Murphy
  0 siblings, 1 reply; 14+ messages in thread
From: gregkh @ 2021-08-13 15:01 UTC (permalink / raw)
  To: Qian Cai
  Cc: tombinfan(范兵),
	Bing Fan, Robin Murphy, linux-serial, linux-kernel, Linux ARM

On Fri, Aug 13, 2021 at 09:42:52AM -0400, Qian Cai wrote:
> 
> 
> On 8/12/2021 11:32 PM, tombinfan(范兵) wrote:
> > hello,
> > 
> > I have sent the modified patch to the following mailboxes. THX
> > 
> > gregkh@linuxfoundation.org
> > linux-serial@vger.kernel.org
> > linux-kernel@vger.kernel.org
> 
> Thanks for the pointer. It is good to get some reviews from Arm
> people in the first place, so we don't break Arm like this.
> 
> Anyway, for anyone who might be watching, here is the new patch,
> 
> https://lore.kernel.org/linux-serial/1628825490-18937-1-git-send-email-hptsfb@gmail.com/
> 
> Unfortunately, I saw Greg mentioned that it was not based on
> tty-next, so not something I can apply easily on linux-next here
> as well.

That is because the code in tty-next (and linux-next), looks to already
do exactly what you submitted, right?

So is this working now for everyone in linux-next?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Internet]Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-08-13 15:01                       ` gregkh
@ 2021-08-13 15:09                         ` Robin Murphy
  2021-08-13 15:14                           ` gregkh
  0 siblings, 1 reply; 14+ messages in thread
From: Robin Murphy @ 2021-08-13 15:09 UTC (permalink / raw)
  To: gregkh, Qian Cai
  Cc: tombinfan(范兵),
	Bing Fan, linux-serial, linux-kernel, Linux ARM

On 2021-08-13 16:01, gregkh wrote:
> On Fri, Aug 13, 2021 at 09:42:52AM -0400, Qian Cai wrote:
>>
>>
>> On 8/12/2021 11:32 PM, tombinfan(范兵) wrote:
>>> hello,
>>>
>>> I have sent the modified patch to the following mailboxes. THX
>>>
>>> gregkh@linuxfoundation.org
>>> linux-serial@vger.kernel.org
>>> linux-kernel@vger.kernel.org
>>
>> Thanks for the pointer. It is good to get some reviews from Arm
>> people in the first place, so we don't break Arm like this.
>>
>> Anyway, for anyone who might be watching, here is the new patch,
>>
>> https://lore.kernel.org/linux-serial/1628825490-18937-1-git-send-email-hptsfb@gmail.com/
>>
>> Unfortunately, I saw Greg mentioned that it was not based on
>> tty-next, so not something I can apply easily on linux-next here
>> as well.
> 
> That is because the code in tty-next (and linux-next), looks to already
> do exactly what you submitted, right?
> 
> So is this working now for everyone in linux-next?

AFAICS commit b0819465be8b in linux-next still results in 
amba_device-specific code being called from sbsa_uart_startup() and 
sbsa_uart_shutdown(), which is what blows up.

Robin.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Internet]Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-08-13 15:09                         ` Robin Murphy
@ 2021-08-13 15:14                           ` gregkh
  2021-08-13 15:28                             ` Qian Cai
  0 siblings, 1 reply; 14+ messages in thread
From: gregkh @ 2021-08-13 15:14 UTC (permalink / raw)
  To: Robin Murphy
  Cc: Qian Cai, tombinfan(范兵),
	Bing Fan, linux-serial, linux-kernel, Linux ARM

On Fri, Aug 13, 2021 at 04:09:50PM +0100, Robin Murphy wrote:
> On 2021-08-13 16:01, gregkh wrote:
> > On Fri, Aug 13, 2021 at 09:42:52AM -0400, Qian Cai wrote:
> > > 
> > > 
> > > On 8/12/2021 11:32 PM, tombinfan(范兵) wrote:
> > > > hello,
> > > > 
> > > > I have sent the modified patch to the following mailboxes. THX
> > > > 
> > > > gregkh@linuxfoundation.org
> > > > linux-serial@vger.kernel.org
> > > > linux-kernel@vger.kernel.org
> > > 
> > > Thanks for the pointer. It is good to get some reviews from Arm
> > > people in the first place, so we don't break Arm like this.
> > > 
> > > Anyway, for anyone who might be watching, here is the new patch,
> > > 
> > > https://lore.kernel.org/linux-serial/1628825490-18937-1-git-send-email-hptsfb@gmail.com/
> > > 
> > > Unfortunately, I saw Greg mentioned that it was not based on
> > > tty-next, so not something I can apply easily on linux-next here
> > > as well.
> > 
> > That is because the code in tty-next (and linux-next), looks to already
> > do exactly what you submitted, right?
> > 
> > So is this working now for everyone in linux-next?
> 
> AFAICS commit b0819465be8b in linux-next still results in
> amba_device-specific code being called from sbsa_uart_startup() and
> sbsa_uart_shutdown(), which is what blows up.

Ick,  ok, can someone send me a revert with this information in it
please?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Internet]Re: [PATCH v5] arm pl011 serial: support multi-irq request
  2021-08-13 15:14                           ` gregkh
@ 2021-08-13 15:28                             ` Qian Cai
  0 siblings, 0 replies; 14+ messages in thread
From: Qian Cai @ 2021-08-13 15:28 UTC (permalink / raw)
  To: gregkh, Robin Murphy
  Cc: tombinfan(范兵),
	Bing Fan, linux-serial, linux-kernel, Linux ARM



On 8/13/2021 11:14 AM, gregkh wrote:
>> AFAICS commit b0819465be8b in linux-next still results in
>> amba_device-specific code being called from sbsa_uart_startup() and
>> sbsa_uart_shutdown(), which is what blows up.
> 
> Ick,  ok, can someone send me a revert with this information in it
> please?

I guess Bin won't be around to response in his timezone on Friday, so
I'll send a revert shortly.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-08-13 15:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-01  1:38 [PATCH v5] arm pl011 serial: support multi-irq request Bing Fan
2021-07-23 16:47 ` Qian Cai
2021-07-26  7:17   ` Bing Fan
2021-07-26 16:39     ` Qian Cai
2021-07-26 20:36       ` Robin Murphy
2021-07-26 20:56         ` Qian Cai
2021-07-26 21:14           ` Robin Murphy
2021-07-27  2:57             ` Bing Fan
2021-08-12 14:31               ` Qian Cai
     [not found]                 ` <67cd6c830e33491e99ea4d2480f4a89d@tencent.com>
     [not found]                   ` <09918b566884413898f63b92ddd037a0@tencent.com>
2021-08-13 13:42                     ` [Internet]Re: " Qian Cai
2021-08-13 15:01                       ` gregkh
2021-08-13 15:09                         ` Robin Murphy
2021-08-13 15:14                           ` gregkh
2021-08-13 15:28                             ` Qian Cai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).