lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 13 Jun 2014 17:37:00 +0200 From: Roger Pau Monné <roger.pau@...rix.com> To: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com> CC: <xen-devel@...ts.xenproject.org>, <linux-kernel@...r.kernel.org>, David Vrabel <david.vrabel@...rix.com> Subject: Re: [Xen-devel] [PATCH] xen-blkfront: check feature-persitent on resume Ping? On 23/05/14 20:08, Roger Pau Monné wrote: > On 23/05/14 19:51, Konrad Rzeszutek Wilk wrote: >> On Thu, May 22, 2014 at 04:40:07PM +0200, Roger Pau Monne wrote: >>> We are missing a check to see if the backend supports persistent >>> grants on resume, meaning we will always run with the value fetched >>> from the firsts host on which we run on. >>> >>> Signed-off-by: Roger Pau Monné <roger.pau@...rix.com> >>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com> >>> Cc: David Vrabel <david.vrabel@...rix.com> >>> --- >>> drivers/block/xen-blkfront.c | 23 ++++++++++++++++------- >>> 1 files changed, 16 insertions(+), 7 deletions(-) >>> >>> diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c >>> index efe1b47..00ae36b 100644 >>> --- a/drivers/block/xen-blkfront.c >>> +++ b/drivers/block/xen-blkfront.c >>> @@ -1430,6 +1430,20 @@ static void split_bio_end(struct bio *bio, int error) >>> bio_put(bio); >>> } >>> >>> +static void blkfront_setup_persistent(struct blkfront_info *info) >>> +{ >>> + unsigned int persistent; >>> + int err; >>> + >>> + err = xenbus_gather(XBT_NIL, info->xbdev->otherend, >>> + "feature-persistent", "%u", &persistent, >>> + NULL); >>> + if (err) >>> + info->feature_persistent = 0; >>> + else >>> + info->feature_persistent = persistent; >>> +} >>> + >>> static int blkif_recover(struct blkfront_info *info) >>> { >>> int i; >>> @@ -1456,6 +1470,7 @@ static int blkif_recover(struct blkfront_info *info) >>> info->shadow_free = info->ring.req_prod_pvt; >>> info->shadow[BLK_RING_SIZE-1].req.u.rw.id = 0x0fffffff; >>> >>> + blkfront_setup_persistent(info); >>> rc = blkfront_setup_indirect(info); >>> if (rc) { >>> kfree(copy); >>> @@ -1851,13 +1866,7 @@ static void blkfront_connect(struct blkfront_info *info) >>> if (!err && discard) >>> blkfront_setup_discard(info); >>> >>> - err = xenbus_gather(XBT_NIL, info->xbdev->otherend, >>> - "feature-persistent", "%u", &persistent, >>> - NULL); >>> - if (err) >>> - info->feature_persistent = 0; >>> - else >>> - info->feature_persistent = persistent; >>> + blkfront_setup_persistent(info); >> >> Should we also flush the ones that are on the info->grants list if >> we turning it off? > > This path is only taken on the first connection, further calls to > blkfront_connect from resume code don't get here, because they take the > BLKIF_STATE_SUSPENDED path and just call blkif_recover and return. And > on disconnection blkfront_connect doesn't even get called. > > Roger. > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@...ts.xen.org > http://lists.xen.org/xen-devel > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists