[PATCH v3 01/23] serial: omap: define and use to_uart_omap_port()
From: tony@atomide.com (Tony Lindgren)
Date: 2012-08-24 20:08:10
Also in:
linux-omap, linux-serial, lkml
From: tony@atomide.com (Tony Lindgren)
Date: 2012-08-24 20:08:10
Also in:
linux-omap, linux-serial, lkml
* Felipe Balbi [off-list ref] [120823 03:37]:
current code only works because struct uart_port is the first member on the uart_omap_port structure. If, for whatever reason, someone puts another member as the first of the structure, that cast won't work anymore. In order to be safe, let's use a container_of() which, for now, gets optimized into a cast anyway. Tested-by: Shubhrajyoti D <redacted> Acked-by: Santosh Shilimkar <redacted> Signed-off-by: Felipe Balbi <redacted> --- arch/arm/plat-omap/include/plat/omap-serial.h | 2 ++ drivers/tty/serial/omap-serial.c | 36 +++++++++++++-------------- 2 files changed, 20 insertions(+), 18 deletions(-)diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h index 1a52725..f3b35d9 100644 --- a/arch/arm/plat-omap/include/plat/omap-serial.h +++ b/arch/arm/plat-omap/include/plat/omap-serial.h@@ -137,4 +137,6 @@ struct uart_omap_port { struct work_struct qos_work; }; +#define to_uart_omap_port(p) ((container_of((p), struct uart_omap_port, port))) + #endif /* __OMAP_SERIAL_H__ */
For the arch/arm/*omap*/* parts: Acked-by: Tony Lindgren <tony@atomide.com> FYI, note that there are ARM SoC patches to move various header files to live under include/linux/platform_data which may cause conflicts with these changes. Regards, Tony