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 V4 5/9] tools/arch/x86/intel_sdsi: Fix maximum meter bundle length
Date: Wed, 10 Apr 2024 19:58:52 -0700 [thread overview]
Message-ID: <20240411025856.2782476-6-david.e.box@linux.intel.com> (raw)
In-Reply-To: <20240411025856.2782476-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>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
---
V4 - no changes
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-11 2:59 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-11 2:58 [PATCH V4 0/9] Intel On Demand changes David E. Box
2024-04-11 2:58 ` [PATCH V4 1/9] platform/x86/intel/sdsi: Set message size during writes David E. Box
2024-04-11 5:01 ` Kuppuswamy Sathyanarayanan
2024-04-11 2:58 ` [PATCH V4 2/9] platform/x86/intel/sdsi: Combine read and write mailbox flows David E. Box
2024-04-11 2:58 ` [PATCH V4 3/9] platform/x86/intel/sdsi: Add in-band BIOS lock support David E. Box
2024-04-11 2:58 ` [PATCH V4 4/9] platform/x86/intel/sdsi: Add attribute to read the current meter state David E. Box
2024-04-11 2:58 ` David E. Box [this message]
2024-04-11 2:58 ` [PATCH V4 6/9] tools/arch/x86/intel_sdsi: Fix meter_show display David E. Box
2024-04-11 2:58 ` [PATCH V4 7/9] tools/arch/x86/intel_sdsi: Fix meter_certificate decoding David E. Box
2024-04-11 8:52 ` Ilpo Järvinen
2024-04-11 2:58 ` [PATCH V4 8/9] platform/x86/intel/sdsi: Simplify ascii printing David E. Box
2024-04-11 8:52 ` Ilpo Järvinen
2024-04-11 13:25 ` Ilpo Järvinen
2024-04-11 2:58 ` [PATCH V4 9/9] tools: intel_sdsi: Add current meter support David E. Box
2024-04-15 14:09 ` [PATCH V4 0/9] Intel On Demand changes Hans de Goede
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=20240411025856.2782476-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