From: "David E. Box" <david.e.box@linux.intel.com>
To: david.e.box@linux.intel.com, hdegoede@redhat.com,
ilpo.jarvinen@linux.intel.com,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org,
sathyanarayanan.kuppuswamy@linux.intel.com
Subject: [PATCH V3 5/9] tools/arch/x86/intel_sdsi: Fix maximum meter bundle length
Date: Thu, 4 Apr 2024 20:25:03 -0700 [thread overview]
Message-ID: <20240405032507.2637311-6-david.e.box@linux.intel.com> (raw)
In-Reply-To: <20240405032507.2637311-1-david.e.box@linux.intel.com>
The maximum number of bundles in the meter certificate was set to 8 which
is much less than the maximum. Instead, since the bundles appear at the end
of the file, set it based on the remaining file size from the bundle start
position.
Fixes: 7fdc03a7370f ("tools/arch/x86: intel_sdsi: Add support for reading meter certificates")
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
V3 - Add suggested macros for the number of bundles and bundle size.
V2 - Split of V1 patch 7
tools/arch/x86/intel_sdsi/intel_sdsi.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/tools/arch/x86/intel_sdsi/intel_sdsi.c b/tools/arch/x86/intel_sdsi/intel_sdsi.c
index 2cd92761f171..7eaffcbff788 100644
--- a/tools/arch/x86/intel_sdsi/intel_sdsi.c
+++ b/tools/arch/x86/intel_sdsi/intel_sdsi.c
@@ -43,7 +43,6 @@
#define METER_CERT_MAX_SIZE 4096
#define STATE_MAX_NUM_LICENSES 16
#define STATE_MAX_NUM_IN_BUNDLE (uint32_t)8
-#define METER_MAX_NUM_BUNDLES 8
#define __round_mask(x, y) ((__typeof__(x))((y) - 1))
#define round_up(x, y) ((((x) - 1) | __round_mask(x, y)) + 1)
@@ -167,6 +166,11 @@ struct bundle_encoding_counter {
uint32_t encoding;
uint32_t counter;
};
+#define METER_BUNDLE_SIZE sizeof(struct bundle_encoding_counter)
+#define BUNDLE_COUNT(length) ((length) / METER_BUNDLE_SIZE)
+#define METER_MAX_NUM_BUNDLES \
+ ((METER_CERT_MAX_SIZE - sizeof(struct meter_certificate)) / \
+ sizeof(struct bundle_encoding_counter))
struct sdsi_dev {
struct sdsi_regs regs;
@@ -386,9 +390,9 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s)
return -1;
}
- if (mc->bundle_length > METER_MAX_NUM_BUNDLES * 8) {
- fprintf(stderr, "More than %d bundles: %d\n",
- METER_MAX_NUM_BUNDLES, mc->bundle_length / 8);
+ if (mc->bundle_length > METER_MAX_NUM_BUNDLES * METER_BUNDLE_SIZE) {
+ fprintf(stderr, "More than %ld bundles: actual %ld\n",
+ METER_MAX_NUM_BUNDLES, BUNDLE_COUNT(mc->bundle_length));
return -1;
}
--
2.34.1
next prev parent reply other threads:[~2024-04-05 3:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 3:24 [PATCH V3 0/9] Intel On Demand changes David E. Box
2024-04-05 3:24 ` [PATCH V3 1/9] platform/x86/intel/sdsi: Set message size during writes David E. Box
2024-04-05 14:29 ` Kuppuswamy Sathyanarayanan
2024-04-05 3:25 ` [PATCH V3 2/9] platform/x86/intel/sdsi: Combine read and write mailbox flows David E. Box
2024-04-05 3:25 ` [PATCH V3 3/9] platform/x86/intel/sdsi: Add in-band BIOS lock support David E. Box
2024-04-05 3:25 ` [PATCH V3 4/9] platform/x86/intel/sdsi: Add attribute to read the current meter state David E. Box
2024-04-05 3:25 ` David E. Box [this message]
2024-04-08 16:59 ` [PATCH V3 5/9] tools/arch/x86/intel_sdsi: Fix maximum meter bundle length Ilpo Järvinen
2024-04-05 3:25 ` [PATCH V3 6/9] tools/arch/x86/intel_sdsi: Fix meter_show display David E. Box
2024-04-05 14:29 ` Kuppuswamy Sathyanarayanan
2024-04-08 17:13 ` Ilpo Järvinen
2024-04-05 3:25 ` [PATCH V3 7/9] tools/arch/x86/intel_sdsi: Fix meter_certificate decoding David E. Box
2024-04-08 17:10 ` Ilpo Järvinen
2024-04-05 3:25 ` [PATCH V3 8/9] platform/x86/intel/sdsi: Simplify ascii printing David E. Box
2024-04-08 17:22 ` Ilpo Järvinen
2024-04-08 22:11 ` David E. Box
2024-04-05 3:25 ` [PATCH V3 9/9] tools: intel_sdsi: Add current meter support David E. Box
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240405032507.2637311-6-david.e.box@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox