Messages in this thread | | | Date | Tue, 20 Sep 2011 18:03:10 +0100 | From | Stefan Hajnoczi <> | Subject | Re: [PATCH v5 3.1.0-rc4-tip 4/26] uprobes: Define hooks for mmap/munmap. |
| |
On Tue, Sep 20, 2011 at 05:30:40PM +0530, Srikar Dronamraju wrote: > +static void build_probe_list(struct inode *inode, struct list_head *head) > +{ > + struct uprobe *uprobe; > + struct rb_node *n; > + unsigned long flags; > + > + n = uprobes_tree.rb_node; > + spin_lock_irqsave(&uprobes_treelock, flags);
Not sure whether grabbing root.rb_node outside the spinlock is safe? If the tree is rotated on another CPU you could catch and out-of-date node?
> +static void dec_mm_uprobes_count(struct vm_area_struct *vma, > + struct inode *inode) > +{ > + struct uprobe *uprobe; > + struct rb_node *n; > + unsigned long flags; > + > + n = uprobes_tree.rb_node; > + spin_lock_irqsave(&uprobes_treelock, flags);
Same here.
Stefan
| |