Messages in this thread | | | Date | Tue, 26 Mar 2013 18:48:00 +0100 | From | Roger Pau Monné <> | Subject | Re: [PATCH RFC 08/12] xen-blkback: use balloon pages for all mappings |
| |
On 04/03/13 21:22, Konrad Rzeszutek Wilk wrote: >> @@ -194,14 +260,15 @@ static void add_persistent_gnt(struct rb_root *root, >> else if (persistent_gnt->gnt > this->gnt) >> new = &((*new)->rb_right); >> else { >> - pr_alert(DRV_PFX " trying to add a gref that's already in the tree\n"); >> - BUG(); >> + pr_alert_ratelimited(DRV_PFX " trying to add a gref that's already in the tree\n"); >> + return -EINVAL; > > That looks like a seperate bug-fix patch? Especially the pr_alert_ratelimited > part?
Not really, the way we added granted frames before this patch, it was never possible to add a persistent grant with the same gref twice.
With the changes introduced in this patch we first map the grants and then we try to make them persistent by adding them to the tree. So it is possible for a frontend to craft a malicious request that has the same gref in all segments, and when we try to add them to the tree of persistent grants we would hit the BUG, that's why we need to ratelimit the alert (to prevent flooding), and return EINVAL instead of crashing.
| |