Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

serial: use container_of to resolve uart_sio_port from uart_port

Use container_of instead of casting first structure member.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Fabian Frederick and committed by
Greg Kroah-Hartman
b6b30d67 0a0661dd

+28 -14
+28 -14
drivers/tty/serial/m32r_sio.c
··· 249 249 250 250 static void m32r_sio_stop_tx(struct uart_port *port) 251 251 { 252 - struct uart_sio_port *up = (struct uart_sio_port *)port; 252 + struct uart_sio_port *up = 253 + container_of(port, struct uart_sio_port, port); 253 254 254 255 if (up->ier & UART_IER_THRI) { 255 256 up->ier &= ~UART_IER_THRI; ··· 261 260 static void m32r_sio_start_tx(struct uart_port *port) 262 261 { 263 262 #ifdef CONFIG_SERIAL_M32R_PLDSIO 264 - struct uart_sio_port *up = (struct uart_sio_port *)port; 263 + struct uart_sio_port *up = 264 + container_of(port, struct uart_sio_port, port); 265 265 struct circ_buf *xmit = &up->port.state->xmit; 266 266 267 267 if (!(up->ier & UART_IER_THRI)) { ··· 276 274 } 277 275 while((serial_in(up, UART_LSR) & UART_EMPTY) != UART_EMPTY); 278 276 #else 279 - struct uart_sio_port *up = (struct uart_sio_port *)port; 277 + struct uart_sio_port *up = 278 + container_of(port, struct uart_sio_port, port); 280 279 281 280 if (!(up->ier & UART_IER_THRI)) { 282 281 up->ier |= UART_IER_THRI; ··· 288 285 289 286 static void m32r_sio_stop_rx(struct uart_port *port) 290 287 { 291 - struct uart_sio_port *up = (struct uart_sio_port *)port; 288 + struct uart_sio_port *up = 289 + container_of(port, struct uart_sio_port, port); 292 290 293 291 up->ier &= ~UART_IER_RLSI; 294 292 up->port.read_status_mask &= ~UART_LSR_DR; ··· 298 294 299 295 static void m32r_sio_enable_ms(struct uart_port *port) 300 296 { 301 - struct uart_sio_port *up = (struct uart_sio_port *)port; 297 + struct uart_sio_port *up = 298 + container_of(port, struct uart_sio_port, port); 302 299 303 300 up->ier |= UART_IER_MSI; 304 301 serial_out(up, UART_IER, up->ier); ··· 586 581 587 582 static unsigned int m32r_sio_tx_empty(struct uart_port *port) 588 583 { 589 - struct uart_sio_port *up = (struct uart_sio_port *)port; 584 + struct uart_sio_port *up = 585 + container_of(port, struct uart_sio_port, port); 590 586 unsigned long flags; 591 587 unsigned int ret; 592 588 ··· 615 609 616 610 static int m32r_sio_startup(struct uart_port *port) 617 611 { 618 - struct uart_sio_port *up = (struct uart_sio_port *)port; 612 + struct uart_sio_port *up = 613 + container_of(port, struct uart_sio_port, port); 619 614 int retval; 620 615 621 616 sio_init(); ··· 659 652 660 653 static void m32r_sio_shutdown(struct uart_port *port) 661 654 { 662 - struct uart_sio_port *up = (struct uart_sio_port *)port; 655 + struct uart_sio_port *up = 656 + container_of(port, struct uart_sio_port, port); 663 657 664 658 /* 665 659 * Disable interrupts from this port ··· 689 681 static void m32r_sio_set_termios(struct uart_port *port, 690 682 struct ktermios *termios, struct ktermios *old) 691 683 { 692 - struct uart_sio_port *up = (struct uart_sio_port *)port; 684 + struct uart_sio_port *up = 685 + container_of(port, struct uart_sio_port, port); 693 686 unsigned char cval = 0; 694 687 unsigned long flags; 695 688 unsigned int baud, quot; ··· 789 780 static void m32r_sio_pm(struct uart_port *port, unsigned int state, 790 781 unsigned int oldstate) 791 782 { 792 - struct uart_sio_port *up = (struct uart_sio_port *)port; 783 + struct uart_sio_port *up = 784 + container_of(port, struct uart_sio_port, port); 793 785 794 786 if (up->pm) 795 787 up->pm(port, state, oldstate); ··· 835 825 836 826 static void m32r_sio_release_port(struct uart_port *port) 837 827 { 838 - struct uart_sio_port *up = (struct uart_sio_port *)port; 828 + struct uart_sio_port *up = 829 + container_of(port, struct uart_sio_port, port); 839 830 unsigned long start, offset = 0, size = 0; 840 831 841 832 size <<= up->port.regshift; ··· 873 862 874 863 static int m32r_sio_request_port(struct uart_port *port) 875 864 { 876 - struct uart_sio_port *up = (struct uart_sio_port *)port; 865 + struct uart_sio_port *up = 866 + container_of(port, struct uart_sio_port, port); 877 867 struct resource *res = NULL; 878 868 int ret = 0; 879 869 ··· 901 889 902 890 static void m32r_sio_config_port(struct uart_port *port, int unused) 903 891 { 904 - struct uart_sio_port *up = (struct uart_sio_port *)port; 892 + struct uart_sio_port *up = 893 + container_of(port, struct uart_sio_port, port); 905 894 unsigned long flags; 906 895 907 896 spin_lock_irqsave(&up->port.lock, flags); ··· 1013 1000 1014 1001 static void m32r_sio_console_putchar(struct uart_port *port, int ch) 1015 1002 { 1016 - struct uart_sio_port *up = (struct uart_sio_port *)port; 1003 + struct uart_sio_port *up = 1004 + container_of(port, struct uart_sio_port, port); 1017 1005 1018 1006 wait_for_xmitr(up); 1019 1007 sio_out(up, SIOTXB, ch);