Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp244938rwr; Thu, 4 May 2023 02:16:03 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6vuqtl3XHFi2hO8PIqn6bFC9ltTQYtM6vbNO9O56sqldJMwnshMIO7FrWih9DFhGHfvUrT X-Received: by 2002:a05:6a20:a395:b0:f2:bbf:f5f4 with SMTP id w21-20020a056a20a39500b000f20bbff5f4mr1392219pzk.52.1683191763607; Thu, 04 May 2023 02:16:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683191763; cv=none; d=google.com; s=arc-20160816; b=mn0kSg5dVtbSIhW3kCWhjWTfdeVc98tLIzRPwaipRbljctLUCCG77UQ5Xz4hK61sM/ 5C4rDlQwM4ADyB39PkPFZyex6skTOp3CbHohbSQ8kkC2souVvQMnMajngGdjCKVRj4kr uNeY8PBSGi4cLTeuogGL5VveMuAJqzIdR1Ie572xaf9ylVWjqvW0nvFJ6IdwbhVm+U5A 0dac3xeoy+Onxs7yUyU0Leor12i7PyOQtI/tUjdIf11HNsNT6lB+V3k/xnnzDn8SaeoH ASgqGsOthSjdTo7yQmneWOng5cbzk8alOLIRQ5kA8ul7/AXbczXwtBxh2pVsTgro6HRJ iFew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=IZ0cClgnu8/kTFVRND7u+HMm+91w0te/Vhixjfj7uYY=; b=XxVlxu3EHXa4y09Yzau5IyeLoSuLRSpwRXROvH3T9hLtoD3OS4vxeTT1LAWs/dINa2 sqvp7fVa7+jFuFkPBPiNjgSdZrGG/T+xXC7o1Oz7CLTzTvEbdFAt0ojTv6+P9TXdBptX UlIkkuNVcRaj5fxH6hDm5zyo+U69b0QUnMH5ooFzrA/IM1iG2GEsH+CxFq0QaTBkuNtP 0SfZsqxsZ64Y/P/HkGdZyqrYP9vUdBrUgo8gzidekWlHQn12AoJsl1SIgugtJzfo9Gdo BsuHPq1mzP6MJDw6KEJVSnoRmaNme5/CTZp5FZDi7qnIMTAQFfKNL7BMzVWKmTMqmsN4 2Ucw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="Us//lxeg"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g66-20020a636b45000000b00528b5a668d2si16253730pgc.863.2023.05.04.02.15.49; Thu, 04 May 2023 02:16:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="Us//lxeg"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230062AbjEDJNS (ORCPT + 99 others); Thu, 4 May 2023 05:13:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230284AbjEDJNI (ORCPT ); Thu, 4 May 2023 05:13:08 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00F324497 for ; Thu, 4 May 2023 02:13:06 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id AEA66209AB; Thu, 4 May 2023 09:13:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1683191585; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IZ0cClgnu8/kTFVRND7u+HMm+91w0te/Vhixjfj7uYY=; b=Us//lxegiQ+pNUvT0WoLCczQmKTkH6RAwHncUN5IfoCVQnTgp+9WGZF8XJr/bgIK6lJQP/ tw1FhR22z35sL/EB+DMcg8CMf6JY9GbY38AvUJMbhqLatlWF6sJpvOhaPsterX7JEg7bU9 Ff2t/VaHiODUS0XVjjDKUaXr3NodOZg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1683191585; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IZ0cClgnu8/kTFVRND7u+HMm+91w0te/Vhixjfj7uYY=; b=DHe+CDDNgUcq91cspWZJQ0DTo81yecLB9XtVMmP6Xug8X8HL56VgiGAuSQSUnNq6HriJBx MLo0BCDbyyWaZyAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A0B6413444; Thu, 4 May 2023 09:13:05 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wdJQJyF3U2TgTwAAMHmgww (envelope-from ); Thu, 04 May 2023 09:13:05 +0000 From: Daniel Wagner To: linux-nvme@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Chaitanya Kulkarni , Sagi Grimberg , Hannes Reinecke , James Smart , Daniel Wagner Subject: [RFC v3 4/9] nvme-rdma: use error and connect work from nvme_ctrl Date: Thu, 4 May 2023 11:12:54 +0200 Message-Id: <20230504091259.29100-5-dwagner@suse.de> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230504091259.29100-1-dwagner@suse.de> References: <20230504091259.29100-1-dwagner@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use common data structures from nvme_ctrl so that we are able to use them in fabrics.c later. Signed-off-by: Daniel Wagner --- drivers/nvme/host/rdma.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c index a78c66278b19..b0ab5a9d5fe0 100644 --- a/drivers/nvme/host/rdma.c +++ b/drivers/nvme/host/rdma.c @@ -106,12 +106,9 @@ struct nvme_rdma_ctrl { /* other member variables */ struct blk_mq_tag_set tag_set; - struct work_struct err_work; struct nvme_rdma_qe async_event_sqe; - struct delayed_work reconnect_work; - struct list_head list; struct blk_mq_tag_set admin_tag_set; @@ -1036,8 +1033,8 @@ static void nvme_rdma_stop_ctrl(struct nvme_ctrl *nctrl) { struct nvme_rdma_ctrl *ctrl = to_rdma_ctrl(nctrl); - flush_work(&ctrl->err_work); - cancel_delayed_work_sync(&ctrl->reconnect_work); + flush_work(&ctrl->ctrl.err_work); + cancel_delayed_work_sync(&ctrl->ctrl.connect_work); } static void nvme_rdma_free_ctrl(struct nvme_ctrl *nctrl) @@ -1069,7 +1066,7 @@ static void nvme_rdma_reconnect_or_remove(struct nvme_rdma_ctrl *ctrl) if (nvmf_should_reconnect(&ctrl->ctrl)) { dev_info(ctrl->ctrl.device, "Reconnecting in %d seconds...\n", ctrl->ctrl.opts->reconnect_delay); - queue_delayed_work(nvme_wq, &ctrl->reconnect_work, + queue_delayed_work(nvme_wq, &ctrl->ctrl.connect_work, ctrl->ctrl.opts->reconnect_delay * HZ); } else { nvme_delete_ctrl(&ctrl->ctrl); @@ -1167,8 +1164,9 @@ static int nvme_rdma_setup_ctrl(struct nvme_rdma_ctrl *ctrl, bool new) static void nvme_rdma_reconnect_ctrl_work(struct work_struct *work) { - struct nvme_rdma_ctrl *ctrl = container_of(to_delayed_work(work), - struct nvme_rdma_ctrl, reconnect_work); + struct nvme_ctrl *nctrl = container_of(to_delayed_work(work), + struct nvme_ctrl, connect_work); + struct nvme_rdma_ctrl *ctrl = to_rdma_ctrl(nctrl); ++ctrl->ctrl.nr_reconnects; @@ -1190,8 +1188,9 @@ static void nvme_rdma_reconnect_ctrl_work(struct work_struct *work) static void nvme_rdma_error_recovery_work(struct work_struct *work) { - struct nvme_rdma_ctrl *ctrl = container_of(work, - struct nvme_rdma_ctrl, err_work); + struct nvme_ctrl *nctrl = container_of(work, + struct nvme_ctrl, err_work); + struct nvme_rdma_ctrl *ctrl = to_rdma_ctrl(nctrl); nvme_stop_keep_alive(&ctrl->ctrl); flush_work(&ctrl->ctrl.async_event_work); @@ -1217,7 +1216,7 @@ static void nvme_rdma_error_recovery(struct nvme_rdma_ctrl *ctrl) return; dev_warn(ctrl->ctrl.device, "starting error recovery\n"); - queue_work(nvme_reset_wq, &ctrl->err_work); + queue_work(nvme_reset_wq, &ctrl->ctrl.err_work); } static void nvme_rdma_end_request(struct nvme_rdma_request *req) @@ -2369,9 +2368,9 @@ static struct nvme_ctrl *nvme_rdma_create_ctrl(struct device *dev, goto out_free_ctrl; } - INIT_DELAYED_WORK(&ctrl->reconnect_work, + INIT_DELAYED_WORK(&ctrl->ctrl.connect_work, nvme_rdma_reconnect_ctrl_work); - INIT_WORK(&ctrl->err_work, nvme_rdma_error_recovery_work); + INIT_WORK(&ctrl->ctrl.err_work, nvme_rdma_error_recovery_work); INIT_WORK(&ctrl->ctrl.reset_work, nvme_rdma_reset_ctrl_work); ctrl->ctrl.queue_count = opts->nr_io_queues + opts->nr_write_queues + -- 2.40.0