tty: atmel_serial: define macro for RX size
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Fri, 5 Apr 2024 06:08:25 +0000 (08:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Apr 2024 13:28:04 +0000 (15:28 +0200)
It is repeated in the code and there is also a big warning by
ATMEL_SERIAL_RINGSIZE. So define ATMEL_SERIAL_RX_SIZE and use it
appropriatelly.

The macro uses array_size() and kmalloc_array() is switched to
kmalloc().

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Richard Genoud <richard.genoud@gmail.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20240405060826.2521-15-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index 69ec80ffc97b0441ec8a607ea4de59a7f10011c0..5cde5077c42903ef1370d5a844677828a4d97133 100644 (file)
@@ -96,7 +96,9 @@ struct atmel_uart_char {
  * can contain up to 1024 characters in PIO mode and up to 4096 characters in
  * DMA mode.
  */
-#define ATMEL_SERIAL_RINGSIZE 1024
+#define ATMEL_SERIAL_RINGSIZE  1024
+#define ATMEL_SERIAL_RX_SIZE   array_size(sizeof(struct atmel_uart_char), \
+                                          ATMEL_SERIAL_RINGSIZE)
 
 /*
  * at91: 6 USARTs and one DBGU port (SAM9260)
@@ -1208,7 +1210,7 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
        BUG_ON(!PAGE_ALIGNED(ring->buf));
        sg_set_page(&atmel_port->sg_rx,
                    virt_to_page(ring->buf),
-                   sizeof(struct atmel_uart_char) * ATMEL_SERIAL_RINGSIZE,
+                   ATMEL_SERIAL_RX_SIZE,
                    offset_in_page(ring->buf));
        nent = dma_map_sg(port->dev,
                          &atmel_port->sg_rx,
@@ -2947,9 +2949,7 @@ static int atmel_serial_probe(struct platform_device *pdev)
 
        if (!atmel_use_pdc_rx(&atmel_port->uart)) {
                ret = -ENOMEM;
-               data = kmalloc_array(ATMEL_SERIAL_RINGSIZE,
-                                    sizeof(struct atmel_uart_char),
-                                    GFP_KERNEL);
+               data = kmalloc(ATMEL_SERIAL_RX_SIZE, GFP_KERNEL);
                if (!data)
                        goto err_clk_disable_unprepare;
                atmel_port->rx_ring.buf = data;