From patchwork Fri Jul 14 09:17:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 120361 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2379915vqm; Fri, 14 Jul 2023 02:32:12 -0700 (PDT) X-Google-Smtp-Source: APBJJlGuLf9JGGyWCNHpTelT/Tp2k21O/s2zRCvcaXbr50Kb7XjqekRR1LVOF/K+3Y/TKjyWtTmr X-Received: by 2002:a17:906:a419:b0:94e:e6b9:fef2 with SMTP id l25-20020a170906a41900b0094ee6b9fef2mr3342481ejz.67.1689327131904; Fri, 14 Jul 2023 02:32:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689327131; cv=none; d=google.com; s=arc-20160816; b=DQqsjv6MjTcXZhwhSHBSrGuOK9Qi5gMDCt5ZX1KEkrC3Oor7QmR9mpcHelLDcR6szi xZx1BUftGTywqIzIj8MlJ+mw7TMvAu6eHN4MdolKPUXpGsfAuJg3VkX71rmBxSUK5+6N MHrRbKDcdHMSfwO6fLf2cr0K6Nw2Z+dm9F31ejSrJcZqueSLGI09A334vlgWYrC2kXBU OW5FT1RgkRJA6xbuPpc3OcsxHyihpDQ/fKFMZuFqQGse3DvqI8hNtQND80gmjfr5nfgO ZYG+gbUJ7fAk9Q2v3D1owMMnuULVjyV8XwmZtDqVtvKMO6rAgkz9D8XM74rB3IokaoTO /VYQ== 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; bh=mOi8t8sbz8VJ96Lud56jyQYj2EDlH7Z1T98dDNEYbBM=; fh=Qdz9kbAdPAfvhj/swQYvX2BMbB6C1mb3M8cD7Q9tvzc=; b=kVAvCxYVRSzKQmSRSnuKTRpzgkt4fDLgi1wkDK6pSuxo/rDaKIII4SMYnIdHcnKlLP tWo1l5S9/O3W69/RG+JlqboXQXT+HJoak3O83Yk93wy7PrwZWMewlas4+6JchgWF4pVf gLCdxdSte+Aoj58HnOyxBvMkbxlAkNBxzE0E6AgriGpWcEoBQDiO7MdbQEBb151DXYCZ ZU49cjsCALJ3MLZQzv0oNzIeFufyYmc0GB4gzrKz/FhAWGoBAltakp3ssFllo9gVmkIn YzhVoU1y1Xo2CZrqwMUMII04lxl3vE7RDOK/2GcBbyYAltmRtB76I1QZghhXwpq3cE4R FZrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bvBqOUEM; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w10-20020a1709060a0a00b0098e38b3b7e3si8977394ejf.793.2023.07.14.02.31.48; Fri, 14 Jul 2023 02:32:11 -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=@intel.com header.s=Intel header.b=bvBqOUEM; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234627AbjGNJS0 (ORCPT + 99 others); Fri, 14 Jul 2023 05:18:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235800AbjGNJSV (ORCPT ); Fri, 14 Jul 2023 05:18:21 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 281392D63; Fri, 14 Jul 2023 02:18:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689326298; x=1720862298; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=f2TaQRe8Y+T7dRECaJ0Jn57KTug3LWzKNLUk11W0vjM=; b=bvBqOUEMuGPpdYbBheo1pvCUJUqhxhcA1ZqYSIeiXw257tznfOKS7Mp5 uIIU/jW4eDokT+P5kBKJuaWt7npUmYD5e0mnx7Vp26P5ADBYGg4X8rh1/ yB68ulzzTR+3sn/l0acb47iuQkeAA+Rok2TWy+dOhceUX8AgCYcDssx/N IpS1pZvlUB3YTCFWAMSvvKYVfkpUW4OmIiH05lJhp3mTeUr2FnSpinGLf OhLyBWpvBr/pJ2Rjy8MtGG9dbaORihu/rBukSLaarPluZ4sBvWWDMNO93 MkBYxGJ72Yqyo2mSvuJ/56UqNywPkdiZvKrntOolcRA+Trqm4rZKe4Czs w==; X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="365469001" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="365469001" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2023 02:17:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="716281743" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="716281743" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga007.jf.intel.com with ESMTP; 14 Jul 2023 02:17:44 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 8421F241; Fri, 14 Jul 2023 12:17:50 +0300 (EEST) From: Andy Shevchenko To: Mark Brown , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sebastian Reichel Subject: [PATCH v4 1/4] spi: Remove code duplication in spi_add_device*() Date: Fri, 14 Jul 2023 12:17:45 +0300 Message-Id: <20230714091748.89681-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> References: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771387886432184612 X-GMAIL-MSGID: 1771387886432184612 The commit 0c79378c0199 ("spi: add ancillary device support") added a dozen of duplicating lines of code. We may move them to the __spi_add_device(). Note, that the code may be called under the mutex. Signed-off-by: Andy Shevchenko Reviewed-by: Sebastian Reichel --- drivers/spi/spi.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index ae2693ba1744..8e70f4183e62 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -631,6 +631,16 @@ static int __spi_add_device(struct spi_device *spi) struct device *dev = ctlr->dev.parent; int status; + /* Chipselects are numbered 0..max; validate. */ + if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) { + dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0), + ctlr->num_chipselect); + return -EINVAL; + } + + /* Set the bus ID string */ + spi_dev_set_name(spi); + /* * We need to make sure there's no other device with this * chipselect **BEFORE** we call setup(), else we'll trash @@ -689,19 +699,8 @@ static int __spi_add_device(struct spi_device *spi) int spi_add_device(struct spi_device *spi) { struct spi_controller *ctlr = spi->controller; - struct device *dev = ctlr->dev.parent; int status; - /* Chipselects are numbered 0..max; validate. */ - if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) { - dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0), - ctlr->num_chipselect); - return -EINVAL; - } - - /* Set the bus ID string */ - spi_dev_set_name(spi); - mutex_lock(&ctlr->add_lock); status = __spi_add_device(spi); mutex_unlock(&ctlr->add_lock); @@ -712,17 +711,6 @@ EXPORT_SYMBOL_GPL(spi_add_device); static int spi_add_device_locked(struct spi_device *spi) { struct spi_controller *ctlr = spi->controller; - struct device *dev = ctlr->dev.parent; - - /* Chipselects are numbered 0..max; validate. */ - if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) { - dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0), - ctlr->num_chipselect); - return -EINVAL; - } - - /* Set the bus ID string */ - spi_dev_set_name(spi); WARN_ON(!mutex_is_locked(&ctlr->add_lock)); return __spi_add_device(spi); From patchwork Fri Jul 14 09:17:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 120364 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2380143vqm; Fri, 14 Jul 2023 02:32:47 -0700 (PDT) X-Google-Smtp-Source: APBJJlGguN6s20LaJiZOve1sE9lMfNe1mkOiHQTIgvEUvykwOQskb5UYDtARnO49nxdQyXGEonl/ X-Received: by 2002:a05:6402:1241:b0:51e:65d:1f6c with SMTP id l1-20020a056402124100b0051e065d1f6cmr4156923edw.9.1689327167175; Fri, 14 Jul 2023 02:32:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689327167; cv=none; d=google.com; s=arc-20160816; b=Vg/89neKp2WW6jcrjom2lIiDi0wmJgQ4at7HcDgGi/wdrODQ4ennB8hIAvS6g3wWCq qUYxRMPkZ/ieiSE8f0lPmHfdJOYEn239BtP/B8fzb4ZT+rjs92DkTQhwNDxOosyMGZoo /dxBPTgEG4LBNZvMCB14S1Jj5ANg2Ps2q1xa6mGlKD2rUKHAfEjkvrycJUS9SpLla070 g2AjnXY0HIP5PhndqtdZ0aDIymOC4wTJRhfavN+NUQYt9OoxydpA/PQpcYcXTTS754Er /u7kOAd5o/kcAsvnFKINQol8gTWyP11MVgvU4+J58vk/a81Zr7zSNGdzmebrv3+6snwJ Btog== 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; bh=fNa5pHhXEGjXBVAhmAXqVo7yzFHoaDvN8UJPS/g1Gnk=; fh=Qdz9kbAdPAfvhj/swQYvX2BMbB6C1mb3M8cD7Q9tvzc=; b=RUsbeQZvxp3xlJGhI0xx+mEHw7lofvy4ZHOcN94qNS9ua41vA7qwZwPyEY1Lwp6oKV LmjJZlLCU96Cblm/ed64Pr4ScJP+Fo04h0BFcKECN7qgu84gkWX1e3Y2WpzYnNEykD2Z XF8sVgRqDJYSLpzRz8h5QEUcr9y0B6asHA4FFEoqvgg+zL5ecTygEfL/PHAokMU09ux2 KZS2eFaG0kNI3T8NKTS7imSFVmq4anQ00Fdh/dwvNVBSiMX+3VNbNWOnYpvwbsvdjlrr s5GByVhvMJ5oTGk2JFjDciLmYt8ulXLqABoSdyDbnBoKSPUJqCASKMpLwVlfzMVjYY9c vXpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MCARfTwU; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bf22-20020a0564021a5600b0051fee9567b3si3935417edb.300.2023.07.14.02.32.23; Fri, 14 Jul 2023 02:32:47 -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=@intel.com header.s=Intel header.b=MCARfTwU; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235819AbjGNJS3 (ORCPT + 99 others); Fri, 14 Jul 2023 05:18:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235801AbjGNJSV (ORCPT ); Fri, 14 Jul 2023 05:18:21 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A1952D51; Fri, 14 Jul 2023 02:18:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689326298; x=1720862298; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zN+eDH4bSonahOLd7oZfC6x/CMBxwEXOjKeHROeGChE=; b=MCARfTwUMLBcCdiH7djCuTtadkbhmKboMsBdn2zWSFV+QkPQRm8P5fGQ b1V8mc9jZ8mesR9GgKUMjHcZYxzlrXqfpT7j/il4JCQo8UxNcP0YYq/mO tY5fc7NhbZNtFP6+m/HMXl1MzSZ+DUbzeBYzdUffy03LJxcM5x/7FS/ZY 1+RCY0Rz7Hm6PozBmPgTiHJV0pI16y1sBeRPBXul0AoUr8nlKfJpfq7Yj l/xrXShiytF/aQULn8m9NlmDd/gFj/qro/M/e4PxFPyQ4id0c25iQPJKw dODWp2Azc6tR3o2DB6BYYNuBl+1hmSd8GXie9iENRPTePdXttdINJghXa A==; X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="365468998" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="365468998" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2023 02:17:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="716281742" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="716281742" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga007.jf.intel.com with ESMTP; 14 Jul 2023 02:17:44 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 93C71385; Fri, 14 Jul 2023 12:17:50 +0300 (EEST) From: Andy Shevchenko To: Mark Brown , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sebastian Reichel Subject: [PATCH v4 2/4] spi: Kill spi_add_device_locked() Date: Fri, 14 Jul 2023 12:17:46 +0300 Message-Id: <20230714091748.89681-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> References: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771387923730504861 X-GMAIL-MSGID: 1771387923730504861 Now, spi_add_device_locked() has just a line on top of __spi_add_device(). Besides that, it has a single caller. So, just kill it and embed its parts into the caller. Signed-off-by: Andy Shevchenko --- drivers/spi/spi.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 8e70f4183e62..05f702339182 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -708,14 +708,6 @@ int spi_add_device(struct spi_device *spi) } EXPORT_SYMBOL_GPL(spi_add_device); -static int spi_add_device_locked(struct spi_device *spi) -{ - struct spi_controller *ctlr = spi->controller; - - WARN_ON(!mutex_is_locked(&ctlr->add_lock)); - return __spi_add_device(spi); -} - /** * spi_new_device - instantiate one new SPI device * @ctlr: Controller to which device is connected @@ -2417,11 +2409,12 @@ static void of_register_spi_devices(struct spi_controller *ctlr) { } struct spi_device *spi_new_ancillary_device(struct spi_device *spi, u8 chip_select) { + struct spi_controller *ctlr = spi->controller; struct spi_device *ancillary; int rc = 0; /* Alloc an spi_device */ - ancillary = spi_alloc_device(spi->controller); + ancillary = spi_alloc_device(ctlr); if (!ancillary) { rc = -ENOMEM; goto err_out; @@ -2436,8 +2429,10 @@ struct spi_device *spi_new_ancillary_device(struct spi_device *spi, ancillary->max_speed_hz = spi->max_speed_hz; ancillary->mode = spi->mode; + WARN_ON(!mutex_is_locked(&ctlr->add_lock)); + /* Register the new device */ - rc = spi_add_device_locked(ancillary); + rc = __spi_add_device(ancillary); if (rc) { dev_err(&spi->dev, "failed to register ancillary device\n"); goto err_out; From patchwork Fri Jul 14 09:17:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 120383 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2386237vqm; Fri, 14 Jul 2023 02:49:59 -0700 (PDT) X-Google-Smtp-Source: APBJJlEaKGnaQcEyDtSDsDIruf7rzWOfqk6yR+a+KgOBCmfqKl8bGvvBrK4R+fKh5vjTUhwsImN/ X-Received: by 2002:a67:fbd6:0:b0:443:880c:79e7 with SMTP id o22-20020a67fbd6000000b00443880c79e7mr2618107vsr.11.1689328199007; Fri, 14 Jul 2023 02:49:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689328198; cv=none; d=google.com; s=arc-20160816; b=rV5AieIUudb59w7wmgYbAE5XGeURHYJXXwHkFDrScGGYfHVXHyy0qrgK8sKr/la663 fnlYUKyUq0gIFurvUeMlG7GwHkJCYnCXXy31xZc6wDFuw2jwDNkM63Pp03z/JoaNyoVW uD0nL3R9vWnxqQqbxXE+DgPUet+EQG6GPiDZEKWY0JSd9k9WYZJSTgtengoKkJZuAeNq YHozvdQ/1q/VLjgzqbtw8JqYhcMVFNK46vvH0nRLvVhgoW5Ds+CcGXHJiJNufJTu1cXw Ezl0ZtK0E+h4WVlcI5N90ZrQZuJvR1ojbd0DxQmtfDf/A7OoKsnQZEBJZlHf6PgyFdDk KSbw== 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; bh=JRs7OFl29U1R19xdsi4P9oTz8VD2dpwKgvXMesSZdRE=; fh=Qdz9kbAdPAfvhj/swQYvX2BMbB6C1mb3M8cD7Q9tvzc=; b=m5jCok+iH07bVeGRJKwEEC7UNQr8g2gAZFyyWL0GQMdTn7ZSjF5WsqpHBOTTGrZ0Md pbWqLSb1Z2EPhFYR1zRgI74JVlz/lzUanpccJD8nSscyCL7/0U0pCCbGp5boQtN1b3ln p5LAi+0OnzTvDoQrh/94NqdnrCmYnrWXTHFXxHcF1mpnKQtjwt/n++1K3rWZS7heijwf FBzOjfiEdFz8HtaWAZq34RYOBR+VpUk7RrcEOMI0KYgrCjzfOAoNFOvUs2hfmNVs+bx6 Kop2ZQElBhfF1Mvaf7n8AytBl1OXRgWVjepg+12kkD3Ns90Lt3sMnnLOVMMl0lgijlaI dy0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=L8LfPZ4w; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e9-20020a636909000000b0055337ca9ce9si6483685pgc.248.2023.07.14.02.49.46; Fri, 14 Jul 2023 02:49:58 -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=@intel.com header.s=Intel header.b=L8LfPZ4w; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235775AbjGNJSU (ORCPT + 99 others); Fri, 14 Jul 2023 05:18:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231415AbjGNJSS (ORCPT ); Fri, 14 Jul 2023 05:18:18 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC6682D77; Fri, 14 Jul 2023 02:18:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689326289; x=1720862289; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=H0rPHJ2jq2GzhHsonePV+vqX4ZEBf1cEpTQE3p6vSwE=; b=L8LfPZ4wD2c2davDQGqrFRU8kVeBWQtGLMOkPb0XmugTaWUT3QaWfrMk bDG5B2IiXDf8pHuL2TV1UAEvdOymhfvvtMwvCdV3w1IDMsPnogqcgrt2s MuYKaHZxSiGFMiXTn95WrgVSSr+x5IdIAVDwPjFygguDno8arnqS/46Gu GjtAfAXhZh4EUWWjG6J+OzHnGQzJmgidsTXPKxYxoKa2v53AM3a6LPY3/ Dw4vmBPExw5trK5mo3fvPTo1BemrN8VGbgF0Ki4k1bMETXZ6pJaRJnFoR JckdNAJzrdoB6HzrNSWScmMjQsIya2x5t/vtKckBGIgO/BS/DlYNA3Flo Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="365469003" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="365469003" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2023 02:17:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="716281744" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="716281744" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga007.jf.intel.com with ESMTP; 14 Jul 2023 02:17:44 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id A652C4BD; Fri, 14 Jul 2023 12:17:50 +0300 (EEST) From: Andy Shevchenko To: Mark Brown , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sebastian Reichel Subject: [PATCH v4 3/4] spi: Use BITS_TO_BYTES() Date: Fri, 14 Jul 2023 12:17:47 +0300 Message-Id: <20230714091748.89681-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> References: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771389005411259879 X-GMAIL-MSGID: 1771389005411259879 BITS_TO_BYTES() is the existing macro which takes care about full bytes that may fully hold the given amount of bits. Use it. Signed-off-by: Andy Shevchenko --- drivers/spi/spi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 05f702339182..8d6304cb061e 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -3877,11 +3877,9 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message) */ if ((spi->mode & SPI_CS_WORD) && (!(ctlr->mode_bits & SPI_CS_WORD) || spi_get_csgpiod(spi, 0))) { - size_t maxsize; + size_t maxsize = BITS_TO_BYTES(spi->bits_per_word); int ret; - maxsize = (spi->bits_per_word + 7) / 8; - /* spi_split_transfers_maxsize() requires message->spi */ message->spi = spi; From patchwork Fri Jul 14 09:17:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 120368 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2380902vqm; Fri, 14 Jul 2023 02:34:39 -0700 (PDT) X-Google-Smtp-Source: APBJJlHIxcvDE9yxVpBYo4d0AicesWQCtKfPeIhMySeWFsC8Loj4IGL/FUSGRHBRVrfPyjfgnt+c X-Received: by 2002:a17:902:ed8b:b0:1b3:e90b:93e1 with SMTP id e11-20020a170902ed8b00b001b3e90b93e1mr3512374plj.36.1689327279051; Fri, 14 Jul 2023 02:34:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689327279; cv=none; d=google.com; s=arc-20160816; b=uUXhwpxpF3J25QJuvo5QmHMGMJV9y8o1eS4nMha5l5SCn0m38BdXGo90dfMmnETs8G Oe9N/KVM+XpsM48XWCLAbOIWOAvDSaNboW0FdBY7T1NlsRfsNyq2UuLtipbt0leTRBoo cT1AkDBXjk1d+5vTzsgtgOTodz5+SJ6ZSzjrMRe9iDxkNDbfEMFhsnNtEgFL2cPKrXj4 7R/Atx/TvyYAUCxsAzKuUnRhbBtdhNnaApA58i/8uG9w0DVNui3uBWzuSSlgBvJ2IIV1 cMpqhl6DTEz5CqySvjGU2X4+dKMKEHKHAr/vD+oIX9gCmRTNC0ANu8tKqueJrYdxIUSH fdZA== 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; bh=UahGVgnG7TRruNhgk0MMUJHtSN/IcL1do/zRdXl4Ow4=; fh=Qdz9kbAdPAfvhj/swQYvX2BMbB6C1mb3M8cD7Q9tvzc=; b=0y+YDLE5604iXK/1YbHxi+V70LdMxe35nVrxcZjAweVzBV0fpJLwqj8LmmH1kp+FT6 hvcaCDeCL8kTxTD5IGj3BuWLqwGYapWMUJOy/GtjKqp4TcmufMhfkWVH8fTpmecfESkn suW59McUzQec2oh/EsoWOGG3O35sr5SfGCKWI34B15xdX7JRtv89qo0O2yYnkR3WR3U3 1BYToJF2Dm5BLoXmUFTuAsM3HDTNYUtWfBJY/0ho6Dq5aHnukrgY4rsECS8033AZ1Fcr ImmYcEJ6J7zy92P28y2Igvzb5qFaLuhXzcbaw7BGFppZD5gNtzMKwJ5EqJY/U1LFkJQ+ f9ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=BhhCLTE1; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n12-20020a1709026a8c00b001b80c35bc65si6606756plk.641.2023.07.14.02.34.25; Fri, 14 Jul 2023 02:34:39 -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=@intel.com header.s=Intel header.b=BhhCLTE1; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235413AbjGNJRv (ORCPT + 99 others); Fri, 14 Jul 2023 05:17:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234953AbjGNJRt (ORCPT ); Fri, 14 Jul 2023 05:17:49 -0400 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5AA4B211C; Fri, 14 Jul 2023 02:17:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689326268; x=1720862268; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3dTgIUvDYhlnavXOxaZLL1p9dKAgNDGlalBZILcSqRs=; b=BhhCLTE1MFAnNbrfcS+QIW5/jHf9m0AXXqASs9f9rEIqw9QLVLJYhDaI NwsLQTbAv5CnqZSE8OXJTvCxmI/UlZ67orZOXJLWPmO/wqywZG8iA3mvV GL5yS4WGnIPrbI5/R0Kr9FqSor1TVHxJTUS8R9Co9VuWkvEy7poq04Mnu tw8Awp9aVpxqRGe1NBBB8aRq8UUlJomhtz/S3UL+UidGDsO5o2+qKzy1x ceCbb1lWtx2XAbf5AYXBhhMBzwTiO70hg7b8KQXQ04kie1l2VyGzZw8nw NLqjRzYhRJ+shTCOM/Z1TpxjZ/k/AkO17v/CJM9XB5JigajgiUvXpVEv4 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="362897874" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="362897874" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2023 02:17:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10770"; a="812357261" X-IronPort-AV: E=Sophos;i="6.01,204,1684825200"; d="scan'208";a="812357261" Received: from black.fi.intel.com ([10.237.72.28]) by FMSMGA003.fm.intel.com with ESMTP; 14 Jul 2023 02:17:44 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id AB94A3E3; Fri, 14 Jul 2023 12:17:50 +0300 (EEST) From: Andy Shevchenko To: Mark Brown , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sebastian Reichel Subject: [PATCH v4 4/4] spi: Use struct_size() helper Date: Fri, 14 Jul 2023 12:17:48 +0300 Message-Id: <20230714091748.89681-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> References: <20230714091748.89681-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771388040513371597 X-GMAIL-MSGID: 1771388040513371597 The Documentation/process/deprecated.rst suggests to use flexible array members to provide a way to declare having a dynamically sized set of trailing elements in a structure.This makes code robust agains bunch of the issues described in the documentation, main of which is about the correctness of the sizeof() calculation for this data structure. Due to above, prefer struct_size() over open-coded versions. Signed-off-by: Andy Shevchenko --- include/linux/spi/spi.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 04daf61dfd3f..7f8b478fdeb3 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1085,6 +1086,8 @@ struct spi_transfer { * @state: for use by whichever driver currently owns the message * @resources: for resource management when the SPI message is processed * @prepared: spi_prepare_message was called for the this message + * @t: for use with spi_message_alloc() when message and transfers have + * been allocated together * * A @spi_message is used to execute an atomic sequence of data transfers, * each represented by a struct spi_transfer. The sequence is "atomic" @@ -1139,6 +1142,9 @@ struct spi_message { /* List of spi_res resources when the SPI message is processed */ struct list_head resources; + + /* For embedding transfers into the memory of the message */ + struct spi_transfer t[]; }; static inline void spi_message_init_no_memset(struct spi_message *m) @@ -1199,16 +1205,13 @@ static inline struct spi_message *spi_message_alloc(unsigned ntrans, gfp_t flags { struct spi_message *m; - m = kzalloc(sizeof(struct spi_message) - + ntrans * sizeof(struct spi_transfer), - flags); + m = kzalloc(struct_size(m, t, ntrans), flags); if (m) { unsigned i; - struct spi_transfer *t = (struct spi_transfer *)(m + 1); spi_message_init_no_memset(m); - for (i = 0; i < ntrans; i++, t++) - spi_message_add_tail(t, m); + for (i = 0; i < ntrans; i++) + spi_message_add_tail(&m->t[i], m); } return m; }