Commit 74cde1a
irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
On systems without HW-based collections (i.e. anything except GIC-500),
we rely on firmware to perform the ITS save/restore. This doesn't
really work, as although FW can properly save everything, it cannot
fully restore the state of the command queue (the read-side is reset
to the head of the queue). This results in the ITS consuming previously
processed commands, potentially corrupting the state.
Instead, let's always save the ITS state on suspend, disabling it in the
process, and restore the full state on resume. This saves us from broken
FW as long as it doesn't enable the ITS by itself (for which we can't do
anything).
This amounts to simply dropping the ITS_FLAGS_SAVE_SUSPEND_STATE.
Signed-off-by: Xu Qiang <xuqiang36@huawei.com>
[maz: added warning on resume, rewrote commit message]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20201107104226.14282-1-xuqiang36@huawei.com1 parent d001e41 commit 74cde1a
1 file changed
Lines changed: 3 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | 45 | | |
47 | 46 | | |
48 | 47 | | |
| |||
4741 | 4740 | | |
4742 | 4741 | | |
4743 | 4742 | | |
4744 | | - | |
4745 | | - | |
4746 | | - | |
4747 | 4743 | | |
4748 | 4744 | | |
4749 | 4745 | | |
| |||
4762 | 4758 | | |
4763 | 4759 | | |
4764 | 4760 | | |
4765 | | - | |
4766 | | - | |
4767 | | - | |
4768 | 4761 | | |
4769 | 4762 | | |
4770 | 4763 | | |
| |||
4784 | 4777 | | |
4785 | 4778 | | |
4786 | 4779 | | |
4787 | | - | |
4788 | | - | |
4789 | | - | |
4790 | 4780 | | |
4791 | 4781 | | |
4792 | 4782 | | |
4793 | 4783 | | |
4794 | 4784 | | |
4795 | 4785 | | |
4796 | 4786 | | |
| 4787 | + | |
| 4788 | + | |
4797 | 4789 | | |
| 4790 | + | |
4798 | 4791 | | |
4799 | 4792 | | |
4800 | 4793 | | |
| |||
5074 | 5067 | | |
5075 | 5068 | | |
5076 | 5069 | | |
5077 | | - | |
5078 | | - | |
5079 | | - | |
5080 | 5070 | | |
5081 | 5071 | | |
5082 | 5072 | | |
| |||
0 commit comments