Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2330628imm; Mon, 28 May 2018 06:11:41 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqtwBqtSfiiQtX7EEOb4/+j+jjs6ykvXBzBWzJSYxOy+m/0Sc8hIp78sYgEdcKAHiepJusR X-Received: by 2002:a62:a6ce:: with SMTP id r75-v6mr13576907pfl.82.1527513101413; Mon, 28 May 2018 06:11:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527513101; cv=none; d=google.com; s=arc-20160816; b=TNg67zjaAIVjED5gD2oXA0VCe6YuVhZVSePwbjZrqYkff3s1uG7lCmrSybul2z+sWZ CYZFLbK/t3mQlTBOA9dmrSt1GbKqPhmx2zsGKR4cnUFxC9XpOy/rOt/23+bHjPNPli/X 01HoVmEChCY68sjKJcvDPa1TlZZBhyLyHX2zOlWrWwUOHr4pIBoUiQltscVE8r26k+T7 qHP7GVf/z4V0lwT16oubvAvMGUVd8ROVkoyZS8IRBjIvGrpSsf2ErTKIf8fNiE9OPNAD YjIW4fL1iIWIAj6wsw739e71oN2gfBgLasIwpXrHk8b93nlrVioV7SctEcBujTD2y+Iy BpZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=xTgmAdH91x6oc6Gda371Pzco5efcx464M05OQ2DF3KY=; b=Mt0eo1lANAStthyXiEsLpo/18veP2xDr5BW4RD1P89HFHQnhkYrwTOKY28MfKfDxIg CoaoDICs0xeUAANj5KhnSmWhWl+2D2+k/8bHXcA4GDe2WaYPJbHnRlSnGeE3Ek+uBjy0 iZ/vPpXdGWBQQv2x1bCjwePMgkaV/mNlj99udeg86I8kw6JnRY4WzrXaXaYfDFm7aN4r dWVR8kmHsFKnWk/y4GX+y2qbr3bvext0c1bn2ygatVgA7R79xWeLWrcIxnO/Vw1zjGbU J7er7hS2kbhCOUqroAY2KPoWN29L4kjCMcbGwzQg6gTsUGzStahByF/MqEeEdOvPL0t2 WBnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bpmxf5xV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r7-v6si3016773pgq.675.2018.05.28.06.11.26; Mon, 28 May 2018 06:11:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bpmxf5xV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1165189AbeE1NJr (ORCPT + 99 others); Mon, 28 May 2018 09:09:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:41046 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1163822AbeE1Kvk (ORCPT ); Mon, 28 May 2018 06:51:40 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 048F8204EE; Mon, 28 May 2018 10:51:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527504699; bh=d+m/zzSzTY3HBsM66yq5lLJt+jxrlwNVaU5B3Rj8Y3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bpmxf5xVvWnYe5IgnMkvlyQBuh+z/VCyk5Taoc5QsYN8c23daNr4v1rPBTfaAGYwf p+8fk59pl9CSKqVnpagFZMNfU5wtS9jnjLk/I9zp6MA0hIxQ+pt3lggn5fX+0tSKPi rVKLP+tvSu32+q+QnFe2dlDWsFB3TMGPOZmwIFCI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bhavesh Davda , Konrad Rzeszutek Wilk , Sasha Levin Subject: [PATCH 4.14 232/496] xen-blkfront: move negotiate_mq to cover all cases of new VBDs Date: Mon, 28 May 2018 12:00:17 +0200 Message-Id: <20180528100329.681633877@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Bhavesh Davda [ Upstream commit 7ed8ce1c5fc7cf25b3602c73bef897a3466a6645 ] negotiate_mq should happen in all cases of a new VBD being discovered by xen-blkfront, whether called through _probe() or a hot-attached new VBD from dom-0 via xenstore. Otherwise, hot-attached new VBDs are left configured without multi-queue. Signed-off-by: Bhavesh Davda Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/block/xen-blkfront.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -262,6 +262,7 @@ static DEFINE_SPINLOCK(minor_lock); static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo); static void blkfront_gather_backend_features(struct blkfront_info *info); +static int negotiate_mq(struct blkfront_info *info); static int get_id_from_freelist(struct blkfront_ring_info *rinfo) { @@ -1774,11 +1775,18 @@ static int talk_to_blkback(struct xenbus unsigned int i, max_page_order; unsigned int ring_page_order; + if (!info) + return -ENODEV; + max_page_order = xenbus_read_unsigned(info->xbdev->otherend, "max-ring-page-order", 0); ring_page_order = min(xen_blkif_max_ring_order, max_page_order); info->nr_ring_pages = 1 << ring_page_order; + err = negotiate_mq(info); + if (err) + goto destroy_blkring; + for (i = 0; i < info->nr_rings; i++) { struct blkfront_ring_info *rinfo = &info->rinfo[i]; @@ -1978,11 +1986,6 @@ static int blkfront_probe(struct xenbus_ } info->xbdev = dev; - err = negotiate_mq(info); - if (err) { - kfree(info); - return err; - } mutex_init(&info->mutex); info->vdevice = vdevice; @@ -2099,10 +2102,6 @@ static int blkfront_resume(struct xenbus blkif_free(info, info->connected == BLKIF_STATE_CONNECTED); - err = negotiate_mq(info); - if (err) - return err; - err = talk_to_blkback(dev, info); if (!err) blk_mq_update_nr_hw_queues(&info->tag_set, info->nr_rings);