2022-03-04 08:43:34

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 6/7] tty: serial: samsung: constify variables and pointers

Constify variables, data pointed by several pointers and
"udivslot_table" static array. This makes code a bit safer.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
drivers/tty/serial/samsung_tty.c | 38 ++++++++++++++++----------------
1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index eecefff5c4a4..00e7c34fad46 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -164,7 +164,7 @@ static void s3c24xx_serial_tx_chars(struct s3c24xx_uart_port *ourport);
#define portaddrl(port, reg) \
((unsigned long *)(unsigned long)((port)->membase + (reg)))

-static u32 rd_reg(struct uart_port *port, u32 reg)
+static u32 rd_reg(const struct uart_port *port, u32 reg)
{
switch (port->iotype) {
case UPIO_MEM:
@@ -179,7 +179,7 @@ static u32 rd_reg(struct uart_port *port, u32 reg)

#define rd_regl(port, reg) (readl_relaxed(portaddr(port, reg)))

-static void wr_reg(struct uart_port *port, u32 reg, u32 val)
+static void wr_reg(const struct uart_port *port, u32 reg, u32 val)
{
switch (port->iotype) {
case UPIO_MEM:
@@ -195,7 +195,7 @@ static void wr_reg(struct uart_port *port, u32 reg, u32 val)

/* Byte-order aware bit setting/clearing functions. */

-static inline void s3c24xx_set_bit(struct uart_port *port, int idx,
+static inline void s3c24xx_set_bit(const struct uart_port *port, int idx,
unsigned int reg)
{
unsigned long flags;
@@ -208,7 +208,7 @@ static inline void s3c24xx_set_bit(struct uart_port *port, int idx,
local_irq_restore(flags);
}

-static inline void s3c24xx_clear_bit(struct uart_port *port, int idx,
+static inline void s3c24xx_clear_bit(const struct uart_port *port, int idx,
unsigned int reg)
{
unsigned long flags;
@@ -221,19 +221,19 @@ static inline void s3c24xx_clear_bit(struct uart_port *port, int idx,
local_irq_restore(flags);
}

-static inline struct s3c24xx_uart_port *to_ourport(const struct uart_port *port)
+static inline struct s3c24xx_uart_port *to_ourport(struct uart_port *port)
{
return container_of(port, struct s3c24xx_uart_port, port);
}

/* translate a port to the device name */

-static inline const char *s3c24xx_serial_portname(struct uart_port *port)
+static inline const char *s3c24xx_serial_portname(const struct uart_port *port)
{
return to_platform_device(port->dev)->name;
}

-static int s3c24xx_serial_txempty_nofifo(struct uart_port *port)
+static int s3c24xx_serial_txempty_nofifo(const struct uart_port *port)
{
return rd_regl(port, S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE;
}
@@ -358,7 +358,7 @@ static void s3c24xx_serial_tx_dma_complete(void *args)

static void enable_tx_dma(struct s3c24xx_uart_port *ourport)
{
- struct uart_port *port = &ourport->port;
+ const struct uart_port *port = &ourport->port;
u32 ucon;

/* Mask Tx interrupt */
@@ -387,7 +387,7 @@ static void enable_tx_dma(struct s3c24xx_uart_port *ourport)

static void enable_tx_pio(struct s3c24xx_uart_port *ourport)
{
- struct uart_port *port = &ourport->port;
+ const struct uart_port *port = &ourport->port;
u32 ucon, ufcon;

/* Set ufcon txtrig */
@@ -580,9 +580,9 @@ static inline const struct s3c24xx_uart_info
}

static inline const struct s3c2410_uartcfg
- *s3c24xx_port_to_cfg(struct uart_port *port)
+ *s3c24xx_port_to_cfg(const struct uart_port *port)
{
- struct s3c24xx_uart_port *ourport;
+ const struct s3c24xx_uart_port *ourport;

if (port->dev == NULL)
return NULL;
@@ -591,7 +591,7 @@ static inline const struct s3c2410_uartcfg
return ourport->cfg;
}

-static int s3c24xx_serial_rx_fifocnt(struct s3c24xx_uart_port *ourport,
+static int s3c24xx_serial_rx_fifocnt(const struct s3c24xx_uart_port *ourport,
unsigned long ufstat)
{
const struct s3c24xx_uart_info *info = ourport->info;
@@ -947,8 +947,8 @@ static irqreturn_t s3c24xx_serial_tx_irq(int irq, void *id)
/* interrupt handler for s3c64xx and later SoC's.*/
static irqreturn_t s3c64xx_serial_handle_irq(int irq, void *id)
{
- struct s3c24xx_uart_port *ourport = id;
- struct uart_port *port = &ourport->port;
+ const struct s3c24xx_uart_port *ourport = id;
+ const struct uart_port *port = &ourport->port;
unsigned int pend = rd_regl(port, S3C64XX_UINTP);
irqreturn_t ret = IRQ_HANDLED;

@@ -966,8 +966,8 @@ static irqreturn_t s3c64xx_serial_handle_irq(int irq, void *id)
/* interrupt handler for Apple SoC's.*/
static irqreturn_t apple_serial_handle_irq(int irq, void *id)
{
- struct s3c24xx_uart_port *ourport = id;
- struct uart_port *port = &ourport->port;
+ const struct s3c24xx_uart_port *ourport = id;
+ const struct uart_port *port = &ourport->port;
unsigned int pend = rd_regl(port, S3C2410_UTRSTAT);
irqreturn_t ret = IRQ_NONE;

@@ -1499,7 +1499,7 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
* This table takes the fractional value of the baud divisor and gives
* the recommended setting for the UDIVSLOT register.
*/
-static u16 udivslot_table[16] = {
+static const u16 udivslot_table[16] = {
[0] = 0x0000,
[1] = 0x0080,
[2] = 0x0808,
@@ -1675,7 +1675,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,

static const char *s3c24xx_serial_type(struct uart_port *port)
{
- struct s3c24xx_uart_port *ourport = to_ourport(port);
+ const struct s3c24xx_uart_port *ourport = to_ourport(port);

switch (ourport->info->type) {
case TYPE_S3C24XX:
@@ -2450,7 +2450,7 @@ s3c24xx_port_configured(unsigned int ucon)

static int s3c24xx_serial_get_poll_char(struct uart_port *port)
{
- struct s3c24xx_uart_port *ourport = to_ourport(port);
+ const struct s3c24xx_uart_port *ourport = to_ourport(port);
unsigned int ufstat;

ufstat = rd_regl(port, S3C2410_UFSTAT);
--
2.32.0


2022-03-07 08:51:32

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH 6/7] tty: serial: samsung: constify variables and pointers

On 04. 03. 22, 9:03, Krzysztof Kozlowski wrote:
> Constify variables, data pointed by several pointers and
> "udivslot_table" static array. This makes code a bit safer.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>

Reviewed-by: Jiri Slaby <[email protected]>

> ---
> drivers/tty/serial/samsung_tty.c | 38 ++++++++++++++++----------------
> 1 file changed, 19 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
> index eecefff5c4a4..00e7c34fad46 100644
> --- a/drivers/tty/serial/samsung_tty.c
> +++ b/drivers/tty/serial/samsung_tty.c
> @@ -164,7 +164,7 @@ static void s3c24xx_serial_tx_chars(struct s3c24xx_uart_port *ourport);
> #define portaddrl(port, reg) \
> ((unsigned long *)(unsigned long)((port)->membase + (reg)))
>
> -static u32 rd_reg(struct uart_port *port, u32 reg)
> +static u32 rd_reg(const struct uart_port *port, u32 reg)
> {
> switch (port->iotype) {
> case UPIO_MEM:
> @@ -179,7 +179,7 @@ static u32 rd_reg(struct uart_port *port, u32 reg)
>
> #define rd_regl(port, reg) (readl_relaxed(portaddr(port, reg)))
>
> -static void wr_reg(struct uart_port *port, u32 reg, u32 val)
> +static void wr_reg(const struct uart_port *port, u32 reg, u32 val)
> {
> switch (port->iotype) {
> case UPIO_MEM:
> @@ -195,7 +195,7 @@ static void wr_reg(struct uart_port *port, u32 reg, u32 val)
>
> /* Byte-order aware bit setting/clearing functions. */
>
> -static inline void s3c24xx_set_bit(struct uart_port *port, int idx,
> +static inline void s3c24xx_set_bit(const struct uart_port *port, int idx,
> unsigned int reg)
> {
> unsigned long flags;
> @@ -208,7 +208,7 @@ static inline void s3c24xx_set_bit(struct uart_port *port, int idx,
> local_irq_restore(flags);
> }
>
> -static inline void s3c24xx_clear_bit(struct uart_port *port, int idx,
> +static inline void s3c24xx_clear_bit(const struct uart_port *port, int idx,
> unsigned int reg)
> {
> unsigned long flags;
> @@ -221,19 +221,19 @@ static inline void s3c24xx_clear_bit(struct uart_port *port, int idx,
> local_irq_restore(flags);
> }
>
> -static inline struct s3c24xx_uart_port *to_ourport(const struct uart_port *port)
> +static inline struct s3c24xx_uart_port *to_ourport(struct uart_port *port)
> {
> return container_of(port, struct s3c24xx_uart_port, port);
> }
>
> /* translate a port to the device name */
>
> -static inline const char *s3c24xx_serial_portname(struct uart_port *port)
> +static inline const char *s3c24xx_serial_portname(const struct uart_port *port)
> {
> return to_platform_device(port->dev)->name;
> }
>
> -static int s3c24xx_serial_txempty_nofifo(struct uart_port *port)
> +static int s3c24xx_serial_txempty_nofifo(const struct uart_port *port)
> {
> return rd_regl(port, S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE;
> }
> @@ -358,7 +358,7 @@ static void s3c24xx_serial_tx_dma_complete(void *args)
>
> static void enable_tx_dma(struct s3c24xx_uart_port *ourport)
> {
> - struct uart_port *port = &ourport->port;
> + const struct uart_port *port = &ourport->port;
> u32 ucon;
>
> /* Mask Tx interrupt */
> @@ -387,7 +387,7 @@ static void enable_tx_dma(struct s3c24xx_uart_port *ourport)
>
> static void enable_tx_pio(struct s3c24xx_uart_port *ourport)
> {
> - struct uart_port *port = &ourport->port;
> + const struct uart_port *port = &ourport->port;
> u32 ucon, ufcon;
>
> /* Set ufcon txtrig */
> @@ -580,9 +580,9 @@ static inline const struct s3c24xx_uart_info
> }
>
> static inline const struct s3c2410_uartcfg
> - *s3c24xx_port_to_cfg(struct uart_port *port)
> + *s3c24xx_port_to_cfg(const struct uart_port *port)
> {
> - struct s3c24xx_uart_port *ourport;
> + const struct s3c24xx_uart_port *ourport;
>
> if (port->dev == NULL)
> return NULL;
> @@ -591,7 +591,7 @@ static inline const struct s3c2410_uartcfg
> return ourport->cfg;
> }
>
> -static int s3c24xx_serial_rx_fifocnt(struct s3c24xx_uart_port *ourport,
> +static int s3c24xx_serial_rx_fifocnt(const struct s3c24xx_uart_port *ourport,
> unsigned long ufstat)
> {
> const struct s3c24xx_uart_info *info = ourport->info;
> @@ -947,8 +947,8 @@ static irqreturn_t s3c24xx_serial_tx_irq(int irq, void *id)
> /* interrupt handler for s3c64xx and later SoC's.*/
> static irqreturn_t s3c64xx_serial_handle_irq(int irq, void *id)
> {
> - struct s3c24xx_uart_port *ourport = id;
> - struct uart_port *port = &ourport->port;
> + const struct s3c24xx_uart_port *ourport = id;
> + const struct uart_port *port = &ourport->port;
> unsigned int pend = rd_regl(port, S3C64XX_UINTP);
> irqreturn_t ret = IRQ_HANDLED;
>
> @@ -966,8 +966,8 @@ static irqreturn_t s3c64xx_serial_handle_irq(int irq, void *id)
> /* interrupt handler for Apple SoC's.*/
> static irqreturn_t apple_serial_handle_irq(int irq, void *id)
> {
> - struct s3c24xx_uart_port *ourport = id;
> - struct uart_port *port = &ourport->port;
> + const struct s3c24xx_uart_port *ourport = id;
> + const struct uart_port *port = &ourport->port;
> unsigned int pend = rd_regl(port, S3C2410_UTRSTAT);
> irqreturn_t ret = IRQ_NONE;
>
> @@ -1499,7 +1499,7 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
> * This table takes the fractional value of the baud divisor and gives
> * the recommended setting for the UDIVSLOT register.
> */
> -static u16 udivslot_table[16] = {
> +static const u16 udivslot_table[16] = {
> [0] = 0x0000,
> [1] = 0x0080,
> [2] = 0x0808,
> @@ -1675,7 +1675,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
>
> static const char *s3c24xx_serial_type(struct uart_port *port)
> {
> - struct s3c24xx_uart_port *ourport = to_ourport(port);
> + const struct s3c24xx_uart_port *ourport = to_ourport(port);
>
> switch (ourport->info->type) {
> case TYPE_S3C24XX:
> @@ -2450,7 +2450,7 @@ s3c24xx_port_configured(unsigned int ucon)
>
> static int s3c24xx_serial_get_poll_char(struct uart_port *port)
> {
> - struct s3c24xx_uart_port *ourport = to_ourport(port);
> + const struct s3c24xx_uart_port *ourport = to_ourport(port);
> unsigned int ufstat;
>
> ufstat = rd_regl(port, S3C2410_UFSTAT);


--
js
suse labs