Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp689591pxv; Thu, 15 Jul 2021 13:33:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxgYmL07cd778MDDMOzOX7X7mhJIHu4p9ZZMIptgrroTGUyIikx9S7PFYZYGsBjrWyeZpLB X-Received: by 2002:a05:6402:40cf:: with SMTP id z15mr9915104edb.175.1626381186712; Thu, 15 Jul 2021 13:33:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626381186; cv=none; d=google.com; s=arc-20160816; b=CCX4mFEnoJLLCrVXenSWK3rEi70jO79lh2Er3rNf8OVJyc/czJpzdwcTOhLw04OjE/ 5uvr2F6ucA0+029t2o9n7PX7kWasO5LZ0yupzpavcEi+7xY6hNp+SZkcH8OlYGaWLRJF dpcBMj8A/HfBD7bNMWkBrleGrU4ClhwGGWGidDlD7md0zfh8SF0uymdGCml8P9frsi3S qJXu1MDWJoUS1XWmDKbdUp3CRI5bDnePqLVho9/+Z5my0In+WcWcotQsufo7EwakJsrq l2LlXvm9JTJ+W/ebqqi/zV18ZuXz/XFfIGLKUCver49ej5tkYlS8y/OOyexwS4pGdnob P+EQ== 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; bh=m6aGqo/4LoEvB6VK2Me4DE4EY0pXu1Ka4Io47Q+9STw=; b=j1KhMD8zCD/GT90aHlvndObWuHreYa5aQdjKvA6lQ//ERCwXjqM5WTZrF3/6O9MxsM 1Eu2vG5yZsSSBhnJ67hHPuaWaCXNzGAJAbaUB3SdfKadeW0eZXLHJqPTzzKTUsggdsCW UM9pBACx3u4x0TFTgFH4eumpoPIrE8HA29QUAm/64nwyDoaHOaaz68DUd3fMscAlwr5w S6jSa5iVK+oNOmNb7vmubslAeNzGz7pHJWoJHGzBLCQZGCrKMD0VTsBad9AzsN5M1lRg 8unJFBtjuXYSMBiH9Oi1EALqqG03yc4nHbGv4tTKLuWbIV5U0CEF/obaq1Nam+5ExjvX oE0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g3si8243812edw.18.2021.07.15.13.32.43; Thu, 15 Jul 2021 13:33:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236532AbhGOUdm (ORCPT + 99 others); Thu, 15 Jul 2021 16:33:42 -0400 Received: from mail-pf1-f172.google.com ([209.85.210.172]:39891 "EHLO mail-pf1-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232418AbhGOUdf (ORCPT ); Thu, 15 Jul 2021 16:33:35 -0400 Received: by mail-pf1-f172.google.com with SMTP id b12so6631334pfv.6; Thu, 15 Jul 2021 13:30:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m6aGqo/4LoEvB6VK2Me4DE4EY0pXu1Ka4Io47Q+9STw=; b=mudBnqKZIKURj1FzngUW4UdIsbTQeuqKzvNnrYEZ/B9FIPcANGBrlldNYV9ROtUc4g MPUw4dErJMphcGpFJFBp+ZyK5G+xYlrdi3X0EfIaeviqlJu6k0g94MOYjjY0i9O/cZ7E zcya+ykpAbLVy8wTETtPHgyX4Ox8E1n/WxKzpif10glK9TOpX1RATS30+yAcmg/+1Kwt om4fkXF3v0Gc0UqFA43TZC/0syg8SRHtaaqBohC46wWuVzamM5QgaJdptZYVNt9D7mwU mNWO+v9c3ZUjiX+VLzlvvFCq7dPcEM2/p8i2GyomDX9VnqJbDSnL3jHF9BYRM43mOf0W Z6Jg== X-Gm-Message-State: AOAM533L9Zh2RPx29T4izWgcFMkrO9kxPFG0qqevAiHCsw6Sx/uVYq3r 2ZXJAjNqFepugebSQRrM5zw= X-Received: by 2002:a63:494d:: with SMTP id y13mr6474195pgk.248.1626381040676; Thu, 15 Jul 2021 13:30:40 -0700 (PDT) Received: from localhost ([191.96.120.37]) by smtp.gmail.com with ESMTPSA id y9sm6774604pfa.197.2021.07.15.13.30.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 15 Jul 2021 13:30:39 -0700 (PDT) From: Luis Chamberlain To: axboe@kernel.dk Cc: hare@suse.de, bvanassche@acm.org, ming.lei@redhat.com, hch@infradead.org, jack@suse.cz, osandov@fb.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Luis Chamberlain Subject: [RFC 4/5] block/sx8: add helper carm_free_all_disks() Date: Thu, 15 Jul 2021 13:30:24 -0700 Message-Id: <20210715203025.2018218-5-mcgrof@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210715203025.2018218-1-mcgrof@kernel.org> References: <20210715203025.2018218-1-mcgrof@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Share the code of unregistering disks in a common helper. Code is shifted a above so that we can later re-use this helper in other places. Signed-off-by: Luis Chamberlain --- drivers/block/sx8.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/drivers/block/sx8.c b/drivers/block/sx8.c index e4dfee5acf08..6a6dc3fffa5c 100644 --- a/drivers/block/sx8.c +++ b/drivers/block/sx8.c @@ -1092,6 +1092,27 @@ static irqreturn_t carm_interrupt(int irq, void *__host) return IRQ_RETVAL(handled); } +static void carm_free_disk(struct carm_host *host, unsigned int port_no) +{ + struct carm_port *port = &host->port[port_no]; + struct gendisk *disk = port->disk; + + if (!disk) + return; + + del_gendisk(disk); + blk_cleanup_disk(disk); +} + +static void carm_free_all_disks(struct carm_host *host) +{ + unsigned int i; + + for (i = 0; i < CARM_MAX_PORTS; i++) + carm_free_disk(host, i); + unregister_blkdev(host->major, host->name); +} + static void carm_fsm_task (struct work_struct *work) { struct carm_host *host = @@ -1365,18 +1386,6 @@ static int carm_init_disk(struct carm_host *host, unsigned int port_no) return 0; } -static void carm_free_disk(struct carm_host *host, unsigned int port_no) -{ - struct carm_port *port = &host->port[port_no]; - struct gendisk *disk = port->disk; - - if (!disk) - return; - - del_gendisk(disk); - blk_cleanup_disk(disk); -} - static int carm_init_shm(struct carm_host *host) { host->shm = dma_alloc_coherent(&host->pdev->dev, CARM_SHM_SIZE, @@ -1520,9 +1529,7 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) err_out_free_irq: free_irq(pdev->irq, host); err_out_blkdev_disks: - for (i = 0; i < CARM_MAX_PORTS; i++) - carm_free_disk(host, i); - unregister_blkdev(host->major, host->name); + carm_free_all_disks(host); err_out_free_majors: if (host->major == 160) clear_bit(0, &carm_major_alloc); @@ -1546,7 +1553,6 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) static void carm_remove_one (struct pci_dev *pdev) { struct carm_host *host = pci_get_drvdata(pdev); - unsigned int i; if (!host) { printk(KERN_ERR PFX "BUG: no host data for PCI(%s)\n", @@ -1555,9 +1561,7 @@ static void carm_remove_one (struct pci_dev *pdev) } free_irq(pdev->irq, host); - for (i = 0; i < CARM_MAX_PORTS; i++) - carm_free_disk(host, i); - unregister_blkdev(host->major, host->name); + carm_free_all_disks(host); if (host->major == 160) clear_bit(0, &carm_major_alloc); else if (host->major == 161) -- 2.27.0