From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70979C43334 for ; Tue, 7 Jun 2022 09:49:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240160AbiFGJtD (ORCPT ); Tue, 7 Jun 2022 05:49:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240004AbiFGJsX (ORCPT ); Tue, 7 Jun 2022 05:48:23 -0400 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9ED31DEEA7 for ; Tue, 7 Jun 2022 02:48:21 -0700 (PDT) Received: by mail-wr1-x42d.google.com with SMTP id x17so23353759wrg.6 for ; Tue, 07 Jun 2022 02:48:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=flkxolnPRJ/fuZI8sau+S8LRxDQCGOpfvcgrJTeckZE=; b=Iqu6UNp7gSNd70V5LQt4JGyekjdaLPSRtvVkcjkxJM3ev6IH4ZfqyXfFTsVVCEBCRo n/D5xOUWT9XepBqui6E3cPm5nvsR7cM9ZQunaiDCPtdQaj92yIRIteiETA79F7+rLe5a GYEy0bqoYg9i+vpD7i+37FTf55tOoE21SrcRo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=flkxolnPRJ/fuZI8sau+S8LRxDQCGOpfvcgrJTeckZE=; b=WDThJzbXqZAorAGrMJMq3ByXibMvf2kEgNi9ZJF3cv0CuL4n+iSmHK0Sp3AoiJF4+I mikB160JlIVGiJ0HFq6c8pycuuWFnZOQ+aIylb/lNiVRO75aKlAYaykRSKiTCkN5eVe9 ++dgCn2OC3NPSVRnrUK3fg9/yoytfsS3pZm+6kGSr5VJaIs1DJnAkqrzLo2wUm0OCzHz +X7UETAUPe8mezAaZ8ILAGzi5piuDEYyozmZ8+tSP6Zn3Q7qgKm/mW46qR8smD3It6hT cMhlT0L2IazMvGmF0UJbq5E7Ir9w9VOeR29AquT6+m5vCuj3HS+yXPohDACvDkCGODSi eYLg== X-Gm-Message-State: AOAM532RmvwWSE2OfaALoaGTX6/K8aT0qnJR680H/NSVmICP+4pO3kcF /p+mFxUemYWBKTOugM1bgZiZdfwo6GjEgw== X-Google-Smtp-Source: ABdhPJzHbCnZaZHUa2S03DdkpuF1cqiLPhaMOJ7rxFM4D3lWaRojBPoOkqBBLoCUhUp5W0HBSPROwg== X-Received: by 2002:a05:6000:186b:b0:20f:e2e5:f95f with SMTP id d11-20020a056000186b00b0020fe2e5f95fmr27169097wri.76.1654595299453; Tue, 07 Jun 2022 02:48:19 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.pdxnet.pdxeng.ch (mob-5-90-137-51.net.vodafone.it. [5.90.137.51]) by smtp.gmail.com with ESMTPSA id o4-20020a05600c510400b0039748be12dbsm23200547wms.47.2022.06.07.02.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 02:48:18 -0700 (PDT) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , michael@amarulasolutions.com, Dario Binacchi , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Marc Kleine-Budde , Paolo Abeni , Wolfgang Grandegger , linux-can@vger.kernel.org, netdev@vger.kernel.org Subject: [RFC PATCH 05/13] can: slcan: simplify the device de-allocation Date: Tue, 7 Jun 2022 11:47:44 +0200 Message-Id: <20220607094752.1029295-6-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220607094752.1029295-1-dario.binacchi@amarulasolutions.com> References: <20220607094752.1029295-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since slcan_devs array contains the addresses of the created devices, I think it is more natural to use its address to remove it from the list. It is not necessary to store the index of the array that points to the device in the driver's private data. Signed-off-by: Dario Binacchi --- drivers/net/can/slcan.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/slcan.c b/drivers/net/can/slcan.c index 956b47bd40a7..4df0455e11a2 100644 --- a/drivers/net/can/slcan.c +++ b/drivers/net/can/slcan.c @@ -428,11 +428,17 @@ static int slc_open(struct net_device *dev) static void slc_dealloc(struct slcan *sl) { - int i = sl->dev->base_addr; + unsigned int i; - free_candev(sl->dev); - if (slcan_devs) - slcan_devs[i] = NULL; + for (i = 0; i < maxdev; i++) { + if (sl->dev == slcan_devs[i]) { + free_candev(sl->dev); + slcan_devs[i] = NULL; + return; + } + } + + pr_err("slcan: can't free %s resources\n", sl->dev->name); } static int slcan_change_mtu(struct net_device *dev, int new_mtu) @@ -529,7 +535,6 @@ static struct slcan *slc_alloc(void) snprintf(dev->name, sizeof(dev->name), "slcan%d", i); dev->netdev_ops = &slc_netdev_ops; - dev->base_addr = i; sl = netdev_priv(dev); /* Initialize channel control data */ -- 2.32.0