8250: remove unnecessary variable tmout from wait_for_xmitr()
Subsystems (2)
PATCH 1/1 8250: remove unnecessary variable tmout from wait_for_xmitr()
This fixes a sparse warning about symbol tmout shadowing an earlier one.
Signed-off-by Andre Haupt <[email protected]>
--- drivers/serial/8250.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/serial/8250.c +0 -1
@@ -1727,7 +1727,6 @@ static inline void wait_for_xmitr(struct uart_8250_port *up, int bits)/* Wait up to 1s for flow control if necessary */ if (up->port.flags &UPF_CONS_FLOW ) { -unsigned int tmout;for (tmout =1000000 ; tmout; tmout--) {unsigned int msr =serial_in (up,UART_MSR ); up->msr_saved_flags |= msr &MSR_SAVE_FLAGS ;
Signature · 1 line
1.4.4.4
Hi,
Quoted 6 lines · Andre Haupt
This fixes a sparse warning about symbol tmout shadowing an earlier one.
Signed-off-by Andre Haupt <[email protected]>--- drivers/serial/8250.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
The whole timeout loops look somewhat odd. How about the following, totally untested, solution?
This converts the function to use more common timeout-loop constructs, gets rid of the shadowed variable and localises another variable even more! Hooray!
Hannes
Signed-off-by Johannes Weiner <[email protected]>
---
drivers/serial/8250.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)
drivers/serial/8250.c +9 -9
@@ -1712,30 +1712,30 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state)*/ static inline void wait_for_xmitr (struct uart_8250_port *up,int bits) { -unsigned int status, tmout =10000 ; +unsigned int tmout;/* Wait up to 10ms for the character(s) to be sent. */ + tmout = jiffies +jiffies_to_msecs (10 );do { - status =serial_in (up,UART_LSR ); +unsigned int status =serial_in (up,UART_LSR ); - up->lsr_saved_flags |= status &LSR_SAVE_FLAGS ; - -if (--tmout =0 ) + up->lsr_saved_flags |= (status &LSR_SAVE_FLAGS ); +if ((status & bits) = bits)break ;udelay (1 ); - }while ((status & bits) != bits); + }while (time_after_eq (tmout, jiffies));/* Wait up to 1s for flow control if necessary */ if (up->port.flags &UPF_CONS_FLOW ) { -unsigned int tmout; -for (tmout =1000000 ; tmout; tmout--) { + tmout = jiffies +jiffies_to_msecs (1000 ); +do {unsigned int msr =serial_in (up,UART_MSR ); up->msr_saved_flags |= msr &MSR_SAVE_FLAGS ;if (msr &UART_MSR_CTS )break ;udelay (1 );touch_nmi_watchdog (); - } + }while (time_after_eq (tmout, jiffies)); } }