hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
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