On 1/23/23 9:35 AM, Nadav Amit wrote:
+ if (IS_ENABLED(CONFIG_MMU_LAZY_TLB_REFCOUNT)) {
+ mmdrop(mm);
+ } else {
+ /*
+ * mmdrop_lazy_tlb must provide a full memory barrier, see the
+ * membarrier comment finish_task_switch which relies on this.
+ */
+ smp_mb();
+ }
}
Considering the fact that mmdrop_lazy_tlb() replaced mmdrop() in various
locations in which smp_mb() was not required, this comment might be
confusing. IOW, for the cases in most cases where mmdrop_lazy_tlb()
replaced mmdrop(), this comment was irrelevant, and therefore it now
becomes confusing.
I am not sure the include the smp_mb() here instead of "open-coding" it
helps.
I think that I now understand why you do need the smp_mb() here, so
ignore my comment.