Re: [PATCH v4 1/4] usb: dbc: early driver for xhci debug capability

From: Lu Baolu
Date: Wed Nov 09 2016 - 20:20:44 EST


Hi,

On 11/09/2016 05:37 PM, Thomas Gleixner wrote:
> On Tue, 1 Nov 2016, Lu Baolu wrote:
>> +static void early_xdbc_write(struct console *con, const char *str, u32 n)
>> +{
>> + int chunk, ret;
>> + static char buf[XDBC_MAX_PACKET];
>> + int use_cr = 0;
>> +
>> + if (!xdbc.xdbc_reg)
>> + return;
>> + memset(buf, 0, XDBC_MAX_PACKET);
> How is that dealing with reentrancy?
>
> early_printk() does not protect against it. Peter has a patch to prevent
> concurrent access from different cpus, but it cannot and will never prevent
> reentrancy on the same cpu (interrupt, nmi).

I can use a spinlock_irq to protect reentrancy of interrupt on the same
cpu. But I have no idea about the nmi one. This seems to be a common
issue for all early printk drivers.

Peter, any idea?

Best regards,
Lu Baolu