Besides there's another bug that we retry rotating without resetting
nr_needed and start in __intel_cqm_rmid_rotate().
Those bugs combined together led to the following oops.
WARNING: at arch/x86/kernel/cpu/perf_event_intel_cqm.c:186 __put_rmid+0x28/0x80()
...
[<ffffffff8103a578>] __put_rmid+0x28/0x80
[<ffffffff8103a74a>] intel_cqm_rmid_rotate+0xba/0x440
[<ffffffff8109d8cb>] process_one_work+0x17b/0x470
[<ffffffff8109e69b>] worker_thread+0x11b/0x400
...
BUG: unable to handle kernel NULL pointer dereference at (null)
...
[<ffffffff8103a74a>] intel_cqm_rmid_rotate+0xba/0x440
[<ffffffff8109d8cb>] process_one_work+0x17b/0x470
[<ffffffff8109e69b>] worker_thread+0x11b/0x400
I've managed to forgot most if not all of that horror show. Vikas and
David seem to be working on a replacement, but until such a time it
would be good if this thing would not crash the kernel.
Guys, could you have a look? To me it appears to mostly have the right
shape, but like I said, I forgot most details...