lkml.org 
[lkml]   [2018]   [Jan]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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

    \
     
     \ /
      Last update: 2018-01-19 07:22    [W:3.256 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site