lkml.org 
[lkml]   [2023]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] Fixing directly deferencing a __rcu pointer warning
    On Thu, Oct 26, 2023 at 04:06:24PM +0200, Mateusz Guzik wrote:
    > On 10/26/23, Michael S. Tsirkin <mst@redhat.com> wrote:
    > > On Thu, Oct 26, 2023 at 05:46:21PM +0530, Abhinav Singh wrote:
    > >> This patch fixes the warning about directly dereferencing a pointer
    > >> tagged with __rcu annotation.
    > >>
    > >> Dereferencing the pointers tagged with __rcu directly should
    > >> always be avoided according to the docs. There is a rcu helper
    > >> functions rcu_dereference(...) to use when dereferencing a __rcu
    > >> pointer. This functions returns the non __rcu tagged pointer which
    > >> can be dereferenced just like a normal pointers.
    > >>
    > >> Signed-off-by: Abhinav Singh <singhabhinav9051571833@gmail.com>
    > >
    > > Well yes but these need to be called under rcu_read_lock.
    > > Who does it here?
    > > If no one then maybe you found an actual bug and we need to
    > > fix it not paper over it.
    > >
    >
    > There is no bug here.
    >
    > p is the newly created thread, ->real_cred was initialized just prior
    > to this code and there is nobody to whack the creds from under it.
    >
    > Second bit in the patch changes one real_parent deref, but leaves 2
    > others just above it. Once more no bug since the entire thing happens
    > under tasklist_lock, but the patch should either sort all these cases
    > or none.
    >
    > I think it would help if the submitter had shown warnings they see.

    Yes, and this must be tested under lockdep, which I think would
    spit out warnings for this patch.

    What should be used here I'm not sure. IIUC rcu_dereference_protected(p, 1)
    is discouraged now?

    --
    MST

    \
     
     \ /
      Last update: 2023-10-26 17:19    [W:2.400 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site