Problem with nbcon console and amba-pl011 serial port
John Ogness
john.ogness at linutronix.de
Wed Jun 4 00:44:03 PDT 2025
On 2025-06-04, "Toshiyuki Sato (Fujitsu)" <fj6611ie at fujitsu.com> wrote:
>> Unrelated to this particular report, I am looking at commit 2eb2608618ce
>> ("serial: amba-pl011: Implement nbcon console") and I do not think it
>> implements atomic printing correctly.
>>
>> pl011_console_write_atomic() assumes uap->clk is disabled when it is
>> called. However, if it took over ownership from the printing kthread,
>> the uap->clk is already enabled. And then after printing its line it
>> disables uap->clk, even though the interrupted printing kthread expects
>> uap->clk to still be enabled once it regains ownership.
>
> I believe the Common Clock Framework manages the enable count for clocks.
> Specifically, uap->clk->core->enable_count is incremented by clk_enable
> and decremented by clk_disable.
> Wouldn't the clock remain enabled until enable_count reaches 0?
You are correct. I wasn't aware that the clock framework had a usage
counter to allow recursive calls. Sorry for the noise.
John
More information about the linux-arm-kernel
mailing list