diff options
author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2020-11-02 15:31:27 -0500 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2020-11-02 15:58:32 -0500 |
commit | b02414c8f045ab3b9afc816c3735bc98c5c3d262 (patch) | |
tree | 75e60c0537587c50e6690847ffc0aa7515a03ece /mm/filemap.c | |
parent | 906695e59324635c62b5ae59df111151a546ca66 (diff) | |
download | linux-b02414c8f045ab3b9afc816c3735bc98c5c3d262.tar.gz linux-b02414c8f045ab3b9afc816c3735bc98c5c3d262.tar.bz2 linux-b02414c8f045ab3b9afc816c3735bc98c5c3d262.zip |
ring-buffer: Fix recursion protection transitions between interrupt context
The recursion protection of the ring buffer depends on preempt_count() to be
correct. But it is possible that the ring buffer gets called after an
interrupt comes in but before it updates the preempt_count(). This will
trigger a false positive in the recursion code.
Use the same trick from the ftrace function callback recursion code which
uses a "transition" bit that gets set, to allow for a single recursion for
to handle transitions between contexts.
Cc: stable@vger.kernel.org
Fixes: 567cd4da54ff4 ("ring-buffer: User context bit recursion checking")
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'mm/filemap.c')
0 files changed, 0 insertions, 0 deletions