[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180610.123551.885190586229525170.davem@davemloft.net>
Date: Sun, 10 Jun 2018 12:35:51 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: Vadim.Lomovtsev@...iumnetworks.com
Cc: rric@...nel.org, sgoutham@...ium.com,
linux-arm-kernel@...ts.infradead.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, dnelson@...hat.com,
Vadim.Lomovtsev@...ium.com
Subject: Re: [PATCH] net: thunderx: prevent concurrent data re-writing by
nicvf_set_rx_mode
From: Vadim Lomovtsev <Vadim.Lomovtsev@...iumnetworks.com>
Date: Fri, 8 Jun 2018 02:27:59 -0700
> + /* Save message data locally to prevent them from
> + * being overwritten by next ndo_set_rx_mode call().
> + */
> + spin_lock(&nic->rx_mode_wq_lock);
> + mode = vf_work->mode;
> + mc = vf_work->mc;
> + vf_work->mc = NULL;
> + spin_unlock(&nic->rx_mode_wq_lock);
At the moment you drop this lock, the memory behind 'mc' can be
freed up by:
> + spin_lock(&nic->rx_mode_wq_lock);
> + kfree(nic->rx_mode_work.mc);
And you'll crash when you dereference it above via
__nicvf_set_rx_mode_task().
Powered by blists - more mailing lists