.. | .. |
---|
1307 | 1307 | |
---|
1308 | 1308 | pm_runtime_get_sync(up->dev); |
---|
1309 | 1309 | |
---|
1310 | | - local_irq_save(flags); |
---|
1311 | | - if (up->port.sysrq) |
---|
1312 | | - locked = 0; |
---|
1313 | | - else if (oops_in_progress) |
---|
1314 | | - locked = spin_trylock(&up->port.lock); |
---|
| 1310 | + if (up->port.sysrq || oops_in_progress) |
---|
| 1311 | + locked = spin_trylock_irqsave(&up->port.lock, flags); |
---|
1315 | 1312 | else |
---|
1316 | | - spin_lock(&up->port.lock); |
---|
| 1313 | + spin_lock_irqsave(&up->port.lock, flags); |
---|
1317 | 1314 | |
---|
1318 | 1315 | /* |
---|
1319 | 1316 | * First save the IER then disable the interrupts |
---|
.. | .. |
---|
1342 | 1339 | pm_runtime_mark_last_busy(up->dev); |
---|
1343 | 1340 | pm_runtime_put_autosuspend(up->dev); |
---|
1344 | 1341 | if (locked) |
---|
1345 | | - spin_unlock(&up->port.lock); |
---|
1346 | | - local_irq_restore(flags); |
---|
| 1342 | + spin_unlock_irqrestore(&up->port.lock, flags); |
---|
1347 | 1343 | } |
---|
1348 | 1344 | |
---|
1349 | 1345 | static int __init |
---|