forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/tty/serial/omap-serial.c
....@@ -1311,10 +1311,13 @@
13111311
13121312 pm_runtime_get_sync(up->dev);
13131313
1314
- if (up->port.sysrq || oops_in_progress)
1315
- locked = spin_trylock_irqsave(&up->port.lock, flags);
1314
+ local_irq_save(flags);
1315
+ if (up->port.sysrq)
1316
+ locked = 0;
1317
+ else if (oops_in_progress)
1318
+ locked = spin_trylock(&up->port.lock);
13161319 else
1317
- spin_lock_irqsave(&up->port.lock, flags);
1320
+ spin_lock(&up->port.lock);
13181321
13191322 /*
13201323 * First save the IER then disable the interrupts
....@@ -1343,7 +1346,8 @@
13431346 pm_runtime_mark_last_busy(up->dev);
13441347 pm_runtime_put_autosuspend(up->dev);
13451348 if (locked)
1346
- spin_unlock_irqrestore(&up->port.lock, flags);
1349
+ spin_unlock(&up->port.lock);
1350
+ local_irq_restore(flags);
13471351 }
13481352
13491353 static int __init