.. | .. |
---|
1751 | 1751 | |
---|
1752 | 1752 | mutex_lock(&rproc->lock); |
---|
1753 | 1753 | |
---|
1754 | | - if (rproc->state == RPROC_CRASHED || rproc->state == RPROC_OFFLINE) { |
---|
| 1754 | + if (rproc->state == RPROC_CRASHED) { |
---|
1755 | 1755 | /* handle only the first crash detected */ |
---|
1756 | 1756 | mutex_unlock(&rproc->lock); |
---|
1757 | 1757 | return; |
---|
| 1758 | + } |
---|
| 1759 | + |
---|
| 1760 | + if (rproc->state == RPROC_OFFLINE) { |
---|
| 1761 | + /* Don't recover if the remote processor was stopped */ |
---|
| 1762 | + mutex_unlock(&rproc->lock); |
---|
| 1763 | + goto out; |
---|
1758 | 1764 | } |
---|
1759 | 1765 | |
---|
1760 | 1766 | rproc->state = RPROC_CRASHED; |
---|
.. | .. |
---|
1766 | 1772 | if (!rproc->recovery_disabled) |
---|
1767 | 1773 | rproc_trigger_recovery(rproc); |
---|
1768 | 1774 | |
---|
| 1775 | +out: |
---|
1769 | 1776 | pm_relax(rproc->dev.parent); |
---|
1770 | 1777 | } |
---|
1771 | 1778 | |
---|