From patchwork Mon Feb 19 11:31:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joy Chakraborty X-Patchwork-Id: 774132 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41DEF2C6BB for ; Mon, 19 Feb 2024 11:32:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708342339; cv=none; b=MBAnlxeLoENgoRgJj73W4yl7VCUcaP1nL6UjmX2u52E7APoEGMMFKmFrEE1g5ikluMC6sFlFggw/86kE8fY5NQlnbyNPZRV29yUFn4XFmUBlFO4wISCIIibV4s66X+9+hkx8HWGm19BtgCJw84IBFOPR1tcaU9h50qTz85UDXac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708342339; c=relaxed/simple; bh=gbOcFoOzr/7EnXJW4o3Q4MK/WjQw3an8g42KJ/FDXq0=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=dWnNCEahr9x8vVr7c57bfYGs5WevppKaE3T2XUv2PYe24jZGYjYIycJBFilR61eHt4bd2VQxmbwj2Yal99oq4zOL9qLVzAdW6pTg6jcTlwuHwSZYDYPy8h+uuHLKawi0I25f6GXaVVawa7niCtSAsmtWl7lOED9usUnl+Bukoxk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--joychakr.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=1CBuO4/R; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--joychakr.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="1CBuO4/R" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dcc58cddb50so6833411276.0 for ; Mon, 19 Feb 2024 03:32:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708342337; x=1708947137; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=F9Y8XdXv1kzTQtopo89RJ5Qe87rOsaXFYORvSusUYec=; b=1CBuO4/RaSaveKbljUHIAOCDxj/ECCZPoV05Nyx8PjY8XX1kzUwc/LdjpFt0nn5Hgs XGlsKm01jj37E+1hAluCfcL1mfXj0X3BaBq3yIplBNgszrAFmtfsnB8joFgpTm+DRvZg ESidV1mMet/f6+9XSQe38TBfug8KvBeDjUPnCFY7LWt3/jCm2NzY2UcdGvfUNZoa0SRJ xvdj4lF8dwCQy275dRLCRwZ4o7fw67gvhtR0pjuVs5d7sIH/AYmmSonWfZwGL6itZQi3 xuVv+K6aU7Jq5DtLHg6IiVuwppSIzJNgBtlcl2C/zNSqt1HAm8MDX01Ei9trJU0V+DcB 0QiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708342337; x=1708947137; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=F9Y8XdXv1kzTQtopo89RJ5Qe87rOsaXFYORvSusUYec=; b=sv7IgeSV4Lwa7a0llEOxGYkrlfdDc8zJtKhp6Jb35XcH3CdJXPBPPQvZl8WkIMmT6H 3b98DaoFCEv9a/hZHow3dmXnHRGybaF7cVGQOdCdl4wq6hgIuI3jKtQ1sQGG2UTL2A+L rWRKjuXf+FMnIgGSsBFJVEP64c9sWcUhHNyqxXJ99GSy7NtwlnLqGFtXfYlPpqbSWoSV ViRFtzBJX/j2I0lnOpClEP1j9GHIoU6rweGDpH/luXdRNx5aVngf4KZBgt5nR76AiiDi eVK05qcbCWC9rAYaYyccPUnIj0V/aMBtfuYd47AD9G5E8LM4+g3kmgRmF0OD9jPD77N7 nDyg== X-Forwarded-Encrypted: i=1; AJvYcCUq80ELwJ3HupsW72GGoFZ5+cqlEE6oFp4b8bI6JYckIpgsXOy0Tt8Dha5CEYudLP4esgfNKQrCsByU+JVmx2g0Prh0BD/WaMamI7O6Xw== X-Gm-Message-State: AOJu0Yy5dYu20i3bBOgwlhU5k/Kc05fQMdGL8RitTrplmloi4wM/znf1 /uiAtrR/vNoVJ7XdNxkxUMeI3x640nZbod+6KI5ujH8H2dSWvzLvPJvnmyT4XVRK7mdFIIxVWjn GXqR/vjMdEw== X-Google-Smtp-Source: AGHT+IFrFQSwNuSWu6/Y6yp6TLKb1ES+/eMj+OGcS+zU6Jh3xmGly/67ECjCQIexHldo+hDW4MAPEIU45QbnUA== X-Received: from joychakr.c.googlers.com ([fda3:e722:ac3:cc00:4f:4b78:c0a8:6ea]) (user=joychakr job=sendgmr) by 2002:a25:ced3:0:b0:dc2:3441:897f with SMTP id x202-20020a25ced3000000b00dc23441897fmr3248186ybe.6.1708342337288; Mon, 19 Feb 2024 03:32:17 -0800 (PST) Date: Mon, 19 Feb 2024 11:31:48 +0000 Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.44.0.rc0.258.g7320e95886-goog Message-ID: <20240219113149.2437990-1-joychakr@google.com> Subject: [PATCH v1 0/1] nvmem: Handle actual amount of data read/written by suppliers From: Joy Chakraborty To: Hector Martin , Sven Peter , Alyssa Rosenzweig , Srinivas Kandagatla , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Vladimir Zapolskiy , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Claudiu Beznea , Matthias Brugger , AngeloGioacchino Del Regno , Bjorn Andersson , Konrad Dybcio , Heiko Stuebner , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vincent Shih , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Rafal Milecki , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek Cc: Greg Kroah-Hartman , asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, Joy Chakraborty This Patch series stems from discussions in patchset, "[PATCH v2] nvmem: rmem: Fix return value of rmem_read()" (https://lore.kernel.org/all/20240206042408.224138-1-joychakr@google.com/). Where we come across the fact that currently the nvmem suppliers do not actually let the core know how much data has been actually read or written. Instead they are expected to return 0 for success and the core assumes that the amount of data written is equal to what the core has requested. On addition this patchset will also add some guards and checks based on the count of data returned by the nvmem supplier. --- V1 Changes : Change read/write callback prototype to ssize_t and supplier changes to accomodate the same with core checks and bounds. --- Joy Chakraborty (1): nvmem: Change return type of reg read/write to ssize_t drivers/nvmem/apple-efuses.c | 5 +- drivers/nvmem/bcm-ocotp.c | 8 ++-- drivers/nvmem/brcm_nvram.c | 8 +++- drivers/nvmem/core.c | 73 +++++++++++++---------------- drivers/nvmem/imx-iim.c | 4 +- drivers/nvmem/imx-ocotp-ele.c | 4 +- drivers/nvmem/imx-ocotp-scu.c | 8 ++-- drivers/nvmem/imx-ocotp.c | 6 +-- drivers/nvmem/jz4780-efuse.c | 5 +- drivers/nvmem/lan9662-otpc.c | 8 ++-- drivers/nvmem/layerscape-sfp.c | 7 ++- drivers/nvmem/lpc18xx_eeprom.c | 10 ++-- drivers/nvmem/lpc18xx_otp.c | 4 +- drivers/nvmem/meson-efuse.c | 10 +++- drivers/nvmem/meson-mx-efuse.c | 4 +- drivers/nvmem/microchip-otpc.c | 4 +- drivers/nvmem/mtk-efuse.c | 4 +- drivers/nvmem/mxs-ocotp.c | 5 +- drivers/nvmem/nintendo-otp.c | 4 +- drivers/nvmem/qcom-spmi-sdam.c | 8 ++-- drivers/nvmem/qfprom.c | 10 ++-- drivers/nvmem/qoriq-efuse.c | 4 +- drivers/nvmem/rave-sp-eeprom.c | 12 ++--- drivers/nvmem/rmem.c | 2 +- drivers/nvmem/rockchip-efuse.c | 11 +++-- drivers/nvmem/rockchip-otp.c | 13 ++--- drivers/nvmem/sc27xx-efuse.c | 3 +- drivers/nvmem/sec-qfprom.c | 4 +- drivers/nvmem/snvs_lpgpr.c | 13 +++-- drivers/nvmem/sprd-efuse.c | 8 ++-- drivers/nvmem/stm32-bsec-optee-ta.c | 8 ++-- drivers/nvmem/stm32-bsec-optee-ta.h | 12 ++--- drivers/nvmem/stm32-romem.c | 16 +++---- drivers/nvmem/sunplus-ocotp.c | 4 +- drivers/nvmem/sunxi_sid.c | 11 +++-- drivers/nvmem/u-boot-env.c | 4 +- drivers/nvmem/uniphier-efuse.c | 4 +- drivers/nvmem/vf610-ocotp.c | 5 +- drivers/nvmem/zynqmp_nvmem.c | 2 +- include/linux/nvmem-provider.h | 4 +- 40 files changed, 180 insertions(+), 159 deletions(-)