[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5A618F0B.4090805@intel.com>
Date: Fri, 19 Jan 2018 14:24:11 +0800
From: Wei Wang <wei.w.wang@...el.com>
To: "Michael S. Tsirkin" <mst@...hat.com>
CC: virtio-dev@...ts.oasis-open.org, linux-kernel@...r.kernel.org,
virtualization@...ts.linux-foundation.org, kvm@...r.kernel.org,
linux-mm@...ck.org, mhocko@...nel.org, akpm@...ux-foundation.org,
pbonzini@...hat.com, liliang.opensource@...il.com,
yang.zhang.wz@...il.com, quan.xu0@...il.com, nilal@...hat.com,
riel@...hat.com
Subject: Re: [PATCH v22 2/3] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
On 01/18/2018 12:44 AM, Michael S. Tsirkin wrote:
> On Wed, Jan 17, 2018 at 01:10:11PM +0800, Wei Wang wrote:
>>
>> +static void virtballoon_changed(struct virtio_device *vdev)
>> +{
>> + struct virtio_balloon *vb = vdev->priv;
>> + unsigned long flags;
>> + __u32 cmd_id;
>> + s64 diff = towards_target(vb);
>> +
>> + if (diff) {
>> + spin_lock_irqsave(&vb->stop_update_lock, flags);
>> + if (!vb->stop_update)
> Why do you ignore stop_update for freeze?
> This means new wq entries can be added during remove
> causing use after free issues.
I think stop_update isn't needed, because the lock has already been
handled internally by the APIs. Similar examples like
mem_cgroup_css_free() in "mm/memcontrol.c", there is no such locks used
for cancel_work_sync(&memcg->high_work).
Best,
Wei
Powered by blists - more mailing lists