Messages in this thread | | | Date | Mon, 13 Dec 2021 12:39:24 +0100 | Subject | Re: [PATCH v3 5/5] tty: serial: samsung: Fix console registration from module | From | Krzysztof Kozlowski <> |
| |
On 04/12/2021 20:57, Sam Protsenko wrote: > On modern Exynos SoCs (like Exynos850) the UART can be implemented as a > part of USI IP-core. In such case, USI driver is used to initialize USI > registers, and it also calls of_platform_populate() to instantiate all > sub-nodes (e.g. serial node) of USI node. When serial driver is > built-in, but USI driver is a module, and CONFIG_SERIAL_SAMSUNG_CONSOLE > is enabled, next call chain will happen when loading USI module from > user space: > > usi_init > v > usi_probe > v > of_platform_populate > v > s3c24xx_serial_probe > v > uart_add_one_port > v > uart_configure_port > v > register_console > v > try_enable_new_console > v > s3c24xx_serial_console_setup > > But because the serial driver is built-in, and > s3c24xx_serial_console_setup() is marked with __init keyword, that > symbol will discarded and long gone by that time already, causing failed > paging request. > > That happens during the next config combination: > > EXYNOS_USI=m > SERIAL_SAMSUNG=y > SERIAL_SAMSUNG_CONSOLE=y > > That config should be completely possible, so rather than limiting > SERIAL_SAMSUNG choice to "m" only when USI=m, remove __init keyword for > all affected functions. > > Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> > --- > Changes in v3: > - (none) > > Changes in v2: > - This patch is added in v2 > > drivers/tty/serial/samsung_tty.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Best regards, Krzysztof
| |