* [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups
@ 2022-01-13 11:18 Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] " Jani Nikula
` (6 more replies)
0 siblings, 7 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Fix the UBSAN reported bit shift out of bounds first, as it's stable
backport material. Clean some stuff up after that.
Jani Nikula (5):
drm/i915/opregion: check port number bounds for SWSCI display power
state
drm/i915/opregion: abstract the check for valid swsci function
drm/i915/opregion: early exit from encoder notify if SWSCI isn't there
drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion
drm/i915/opregion: debug log about Mailbox #2 for backlight
drivers/gpu/drm/i915/display/intel_opregion.c | 78 +++++++++++++++----
1 file changed, 62 insertions(+), 16 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/5] drm/i915/opregion: check port number bounds for SWSCI display power state
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
@ 2022-01-13 11:18 ` Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 2/5] drm/i915/opregion: abstract the check for valid swsci function Jani Nikula
` (5 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula, ville.syrjala, stable
The mapping from enum port to whatever port numbering scheme is used by
the SWSCI Display Power State Notification is odd, and the memory of it
has faded. In any case, the parameter only has space for ports numbered
[0..4], and UBSAN reports bit shift beyond it when the platform has port
F or more.
Since the SWSCI functionality is supposed to be obsolete for new
platforms (i.e. ones that might have port F or more), just bail out
early if the mapped and mangled port number is beyond what the Display
Power State Notification can support.
Fixes: 9c4b0a683193 ("drm/i915: add opregion function to notify bios of encoder enable/disable")
Cc: <stable@vger.kernel.org> # v3.13+
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4800
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index af9d30f56cc1..ad1afe9df6c3 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -363,6 +363,21 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
port++;
}
+ /*
+ * The port numbering and mapping here is bizarre. The now-obsolete
+ * swsci spec supports ports numbered [0..4]. Port E is handled as a
+ * special case, but port F and beyond are not. The functionality is
+ * supposed to be obsolete for new platforms. Just bail out if the port
+ * number is out of bounds after mapping.
+ */
+ if (port > 4) {
+ drm_dbg_kms(&dev_priv->drm,
+ "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n",
+ intel_encoder->base.base.id, intel_encoder->base.name,
+ port_name(intel_encoder->port), port);
+ return -EINVAL;
+ }
+
if (!enable)
parm |= 4 << 8;
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 1/5] drm/i915/opregion: check port number bounds for SWSCI display power state
@ 2022-01-13 11:18 ` Jani Nikula
0 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula, stable
The mapping from enum port to whatever port numbering scheme is used by
the SWSCI Display Power State Notification is odd, and the memory of it
has faded. In any case, the parameter only has space for ports numbered
[0..4], and UBSAN reports bit shift beyond it when the platform has port
F or more.
Since the SWSCI functionality is supposed to be obsolete for new
platforms (i.e. ones that might have port F or more), just bail out
early if the mapped and mangled port number is beyond what the Display
Power State Notification can support.
Fixes: 9c4b0a683193 ("drm/i915: add opregion function to notify bios of encoder enable/disable")
Cc: <stable@vger.kernel.org> # v3.13+
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4800
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index af9d30f56cc1..ad1afe9df6c3 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -363,6 +363,21 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
port++;
}
+ /*
+ * The port numbering and mapping here is bizarre. The now-obsolete
+ * swsci spec supports ports numbered [0..4]. Port E is handled as a
+ * special case, but port F and beyond are not. The functionality is
+ * supposed to be obsolete for new platforms. Just bail out if the port
+ * number is out of bounds after mapping.
+ */
+ if (port > 4) {
+ drm_dbg_kms(&dev_priv->drm,
+ "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n",
+ intel_encoder->base.base.id, intel_encoder->base.name,
+ port_name(intel_encoder->port), port);
+ return -EINVAL;
+ }
+
if (!enable)
parm |= 4 << 8;
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915/opregion: abstract the check for valid swsci function
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] " Jani Nikula
@ 2022-01-13 11:18 ` Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 3/5] drm/i915/opregion: early exit from encoder notify if SWSCI isn't there Jani Nikula
` (4 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Add a reusable function for checking the SWSCI function.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 30 +++++++++++++------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index ad1afe9df6c3..e540e5b9073b 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -245,14 +245,10 @@ struct opregion_asle_ext {
#define MAX_DSLP 1500
-static int swsci(struct drm_i915_private *dev_priv,
- u32 function, u32 parm, u32 *parm_out)
+static int check_swsci_function(struct drm_i915_private *i915, u32 function)
{
- struct opregion_swsci *swsci = dev_priv->opregion.swsci;
- struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
- u32 main_function, sub_function, scic;
- u16 swsci_val;
- u32 dslp;
+ struct opregion_swsci *swsci = i915->opregion.swsci;
+ u32 main_function, sub_function;
if (!swsci)
return -ENODEV;
@@ -264,15 +260,31 @@ static int swsci(struct drm_i915_private *dev_priv,
/* Check if we can call the function. See swsci_setup for details. */
if (main_function == SWSCI_SBCB) {
- if ((dev_priv->opregion.swsci_sbcb_sub_functions &
+ if ((i915->opregion.swsci_sbcb_sub_functions &
(1 << sub_function)) == 0)
return -EINVAL;
} else if (main_function == SWSCI_GBDA) {
- if ((dev_priv->opregion.swsci_gbda_sub_functions &
+ if ((i915->opregion.swsci_gbda_sub_functions &
(1 << sub_function)) == 0)
return -EINVAL;
}
+ return 0;
+}
+
+static int swsci(struct drm_i915_private *dev_priv,
+ u32 function, u32 parm, u32 *parm_out)
+{
+ struct opregion_swsci *swsci = dev_priv->opregion.swsci;
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
+ u32 scic, dslp;
+ u16 swsci_val;
+ int ret;
+
+ ret = check_swsci_function(dev_priv, function);
+ if (ret)
+ return ret;
+
/* Driver sleep timeout in ms. */
dslp = swsci->dslp;
if (!dslp) {
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 3/5] drm/i915/opregion: early exit from encoder notify if SWSCI isn't there
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] " Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 2/5] drm/i915/opregion: abstract the check for valid swsci function Jani Nikula
@ 2022-01-13 11:18 ` Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion Jani Nikula
` (3 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Newer platforms aren't supposed to have mailbox #2 or SWSCI
support. Bail out early from encoder notify if that is the case,
skipping the out-of-bounds checks and debug messages.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index e540e5b9073b..ce3d44cc2461 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -358,11 +358,17 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
u32 parm = 0;
u32 type = 0;
u32 port;
+ int ret;
/* don't care about old stuff for now */
if (!HAS_DDI(dev_priv))
return 0;
+ /* Avoid port out of bounds checks if SWSCI isn't there. */
+ ret = check_swsci_function(dev_priv, SWSCI_SBCB_DISPLAY_POWER_STATE);
+ if (ret)
+ return ret;
+
if (intel_encoder->type == INTEL_OUTPUT_DSI)
port = 0;
else
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
` (2 preceding siblings ...)
2022-01-13 11:18 ` [Intel-gfx] [PATCH 3/5] drm/i915/opregion: early exit from encoder notify if SWSCI isn't there Jani Nikula
@ 2022-01-13 11:18 ` Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 5/5] drm/i915/opregion: debug log about Mailbox #2 for backlight Jani Nikula
` (2 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Opregion Mailbox #2 is obsolete for SWSCI usage in opregion v2.x, and
repurposed in opregion v3.x. Warn about obsole mailbox presence in v2.x,
and ignore with an error for v3.x.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index ce3d44cc2461..6e32ed6bbf4e 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -932,9 +932,17 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
}
if (mboxes & MBOX_SWSCI) {
- drm_dbg(&dev_priv->drm, "SWSCI supported\n");
- opregion->swsci = base + OPREGION_SWSCI_OFFSET;
- swsci_setup(dev_priv);
+ u8 major = opregion->header->over.major;
+
+ if (major >= 3) {
+ drm_err(&dev_priv->drm, "SWSCI Mailbox #2 present for opregion v3.x, ignoring\n");
+ } else {
+ if (major >= 2)
+ drm_warn(&dev_priv->drm, "SWSCI Mailbox #2 present for opregion v2.x\n");
+ drm_dbg(&dev_priv->drm, "SWSCI supported\n");
+ opregion->swsci = base + OPREGION_SWSCI_OFFSET;
+ swsci_setup(dev_priv);
+ }
}
if (mboxes & MBOX_ASLE) {
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 5/5] drm/i915/opregion: debug log about Mailbox #2 for backlight
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
` (3 preceding siblings ...)
2022-01-13 11:18 ` [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion Jani Nikula
@ 2022-01-13 11:18 ` Jani Nikula
2022-01-13 12:13 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/opregion: fixes and cleanups Patchwork
2022-01-13 12:47 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Start debug logging about the presence of the new Mailbox #2 for
backlight. Actual support is to be added later.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index 6e32ed6bbf4e..b1ad11b2ebb3 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -47,10 +47,11 @@
#define OPREGION_ASLE_EXT_OFFSET 0x1C00
#define OPREGION_SIGNATURE "IntelGraphicsMem"
-#define MBOX_ACPI (1<<0)
-#define MBOX_SWSCI (1<<1)
-#define MBOX_ASLE (1<<2)
-#define MBOX_ASLE_EXT (1<<4)
+#define MBOX_ACPI BIT(0) /* Mailbox #1 */
+#define MBOX_SWSCI BIT(1) /* Mailbox #2 (obsolete from v2.x) */
+#define MBOX_ASLE BIT(2) /* Mailbox #3 */
+#define MBOX_ASLE_EXT BIT(4) /* Mailbox #5 */
+#define MBOX_BACKLIGHT BIT(5) /* Mailbox #2 (valid from v3.x) */
struct opregion_header {
u8 signature[16];
@@ -957,6 +958,10 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
opregion->asle_ext = base + OPREGION_ASLE_EXT_OFFSET;
}
+ if (mboxes & MBOX_BACKLIGHT) {
+ drm_dbg(&dev_priv->drm, "Mailbox #2 for backlight present\n");
+ }
+
if (intel_load_vbt_firmware(dev_priv) == 0)
goto out;
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/opregion: fixes and cleanups
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
` (4 preceding siblings ...)
2022-01-13 11:18 ` [Intel-gfx] [PATCH 5/5] drm/i915/opregion: debug log about Mailbox #2 for backlight Jani Nikula
@ 2022-01-13 12:13 ` Patchwork
2022-01-13 12:47 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2022-01-13 12:13 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/opregion: fixes and cleanups
URL : https://patchwork.freedesktop.org/series/98836/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
47685d212d83 drm/i915/opregion: check port number bounds for SWSCI display power state
e97c1b58c9e7 drm/i915/opregion: abstract the check for valid swsci function
80f4e243d899 drm/i915/opregion: early exit from encoder notify if SWSCI isn't there
ce14222cfad0 drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion
42015ca38464 drm/i915/opregion: debug log about Mailbox #2 for backlight
-:39: WARNING:BRACES: braces {} are not necessary for single statement blocks
#39: FILE: drivers/gpu/drm/i915/display/intel_opregion.c:961:
+ if (mboxes & MBOX_BACKLIGHT) {
+ drm_dbg(&dev_priv->drm, "Mailbox #2 for backlight present\n");
+ }
total: 0 errors, 1 warnings, 0 checks, 25 lines checked
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/opregion: fixes and cleanups
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
` (5 preceding siblings ...)
2022-01-13 12:13 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/opregion: fixes and cleanups Patchwork
@ 2022-01-13 12:47 ` Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2022-01-13 12:47 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 13691 bytes --]
== Series Details ==
Series: drm/i915/opregion: fixes and cleanups
URL : https://patchwork.freedesktop.org/series/98836/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_11077 -> Patchwork_21992
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_21992 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_21992, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/index.html
Participating hosts (43 -> 42)
------------------------------
Additional (1): fi-pnv-d510
Missing (2): fi-bsw-cyan bat-jsl-2
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_21992:
### IGT changes ###
#### Possible regressions ####
* igt@i915_module_load@reload:
- fi-kbl-8809g: [PASS][1] -> [DMESG-WARN][2] +37 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-kbl-8809g/igt@i915_module_load@reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-kbl-8809g/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@module-reload:
- fi-cfl-8109u: [PASS][3] -> [DMESG-WARN][4] +37 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
- fi-kbl-guc: [PASS][5] -> [DMESG-WARN][6] +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@client:
- fi-ivb-3770: [PASS][7] -> [DMESG-WARN][8] +36 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-ivb-3770/igt@i915_selftest@live@client.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-ivb-3770/igt@i915_selftest@live@client.html
- fi-rkl-guc: [PASS][9] -> [DMESG-WARN][10] +37 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-rkl-guc/igt@i915_selftest@live@client.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-rkl-guc/igt@i915_selftest@live@client.html
* igt@i915_selftest@live@dmabuf:
- fi-cfl-8700k: [PASS][11] -> [DMESG-WARN][12] +37 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-cfl-8700k/igt@i915_selftest@live@dmabuf.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-cfl-8700k/igt@i915_selftest@live@dmabuf.html
- fi-icl-u2: [PASS][13] -> [DMESG-WARN][14] +37 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-icl-u2/igt@i915_selftest@live@dmabuf.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-icl-u2/igt@i915_selftest@live@dmabuf.html
* igt@i915_selftest@live@gem:
- fi-snb-2600: [PASS][15] -> [DMESG-WARN][16] +36 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-snb-2600/igt@i915_selftest@live@gem.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-snb-2600/igt@i915_selftest@live@gem.html
* igt@i915_selftest@live@gem_migrate:
- fi-skl-guc: [PASS][17] -> [DMESG-WARN][18] +37 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-skl-guc/igt@i915_selftest@live@gem_migrate.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-skl-guc/igt@i915_selftest@live@gem_migrate.html
* igt@i915_selftest@live@gt_contexts:
- fi-rkl-11600: [PASS][19] -> [DMESG-WARN][20] +37 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-rkl-11600/igt@i915_selftest@live@gt_contexts.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-rkl-11600/igt@i915_selftest@live@gt_contexts.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-pnv-d510: NOTRUN -> [DMESG-WARN][21] +36 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-pnv-d510/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_mocs:
- fi-tgl-1115g4: [PASS][22] -> [DMESG-WARN][23] +36 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-tgl-1115g4/igt@i915_selftest@live@gt_mocs.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-tgl-1115g4/igt@i915_selftest@live@gt_mocs.html
* igt@i915_selftest@live@gt_timelines:
- fi-skl-6700k2: [PASS][24] -> [DMESG-WARN][25] +37 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-skl-6700k2/igt@i915_selftest@live@gt_timelines.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-skl-6700k2/igt@i915_selftest@live@gt_timelines.html
* igt@i915_selftest@live@hangcheck:
- fi-cml-u2: [PASS][26] -> [DMESG-WARN][27] +37 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-cml-u2/igt@i915_selftest@live@hangcheck.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-cml-u2/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@objects:
- fi-snb-2520m: [PASS][28] -> [DMESG-WARN][29] +36 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-snb-2520m/igt@i915_selftest@live@objects.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-snb-2520m/igt@i915_selftest@live@objects.html
* igt@i915_selftest@live@requests:
- fi-cfl-guc: [PASS][30] -> [DMESG-WARN][31] +37 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-cfl-guc/igt@i915_selftest@live@requests.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-cfl-guc/igt@i915_selftest@live@requests.html
- fi-hsw-4770: [PASS][32] -> [DMESG-WARN][33] +37 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-hsw-4770/igt@i915_selftest@live@requests.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-hsw-4770/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7500u: [PASS][34] -> [DMESG-WARN][35] +37 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-kbl-7500u/igt@i915_selftest@live@sanitycheck.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-kbl-7500u/igt@i915_selftest@live@sanitycheck.html
* igt@i915_selftest@live@uncore:
- fi-kbl-7567u: [PASS][36] -> [DMESG-WARN][37] +37 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-kbl-7567u/igt@i915_selftest@live@uncore.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-kbl-7567u/igt@i915_selftest@live@uncore.html
- fi-bdw-5557u: NOTRUN -> [DMESG-WARN][38] +37 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-bdw-5557u/igt@i915_selftest@live@uncore.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live@gt_lrc:
- {fi-jsl-1}: [PASS][39] -> [DMESG-WARN][40] +37 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-jsl-1/igt@i915_selftest@live@gt_lrc.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-jsl-1/igt@i915_selftest@live@gt_lrc.html
* igt@i915_selftest@live@migrate:
- {fi-ehl-2}: [PASS][41] -> [DMESG-WARN][42] +37 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-ehl-2/igt@i915_selftest@live@migrate.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-ehl-2/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@perf:
- {fi-tgl-dsi}: [PASS][43] -> [DMESG-WARN][44] +33 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-tgl-dsi/igt@i915_selftest@live@perf.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-tgl-dsi/igt@i915_selftest@live@perf.html
* igt@i915_selftest@live@uncore:
- {bat-jsl-1}: [PASS][45] -> [DMESG-WARN][46] +37 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/bat-jsl-1/igt@i915_selftest@live@uncore.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/bat-jsl-1/igt@i915_selftest@live@uncore.html
Known issues
------------
Here are the changes found in Patchwork_21992 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_basic@semaphore:
- fi-bdw-5557u: NOTRUN -> [SKIP][47] ([fdo#109271]) +31 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-bdw-5557u/igt@amdgpu/amd_basic@semaphore.html
* igt@gem_flink_basic@bad-flink:
- fi-skl-6600u: NOTRUN -> [FAIL][48] ([i915#4547])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
* igt@i915_selftest@live@gem:
- fi-kbl-8809g: [PASS][49] -> [DMESG-WARN][50] ([i915#1888])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-kbl-8809g/igt@i915_selftest@live@gem.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-kbl-8809g/igt@i915_selftest@live@gem.html
* igt@i915_selftest@live@hangcheck:
- bat-dg1-6: [PASS][51] -> [DMESG-FAIL][52] ([i915#4494])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@hugepages:
- fi-tgl-1115g4: [PASS][53] -> [DMESG-WARN][54] ([i915#1888])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-tgl-1115g4/igt@i915_selftest@live@hugepages.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-tgl-1115g4/igt@i915_selftest@live@hugepages.html
* igt@i915_selftest@live@requests:
- fi-blb-e6850: [PASS][55] -> [DMESG-FAIL][56] ([i915#4610])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-blb-e6850/igt@i915_selftest@live@requests.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-blb-e6850/igt@i915_selftest@live@requests.html
* igt@kms_chamelium@dp-crc-fast:
- fi-bdw-5557u: NOTRUN -> [SKIP][57] ([fdo#109271] / [fdo#111827]) +8 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-bdw-5557u/igt@kms_chamelium@dp-crc-fast.html
* igt@prime_vgem@basic-userptr:
- fi-pnv-d510: NOTRUN -> [SKIP][58] ([fdo#109271]) +57 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-pnv-d510/igt@prime_vgem@basic-userptr.html
* igt@runner@aborted:
- fi-blb-e6850: NOTRUN -> [FAIL][59] ([fdo#109271] / [i915#2403] / [i915#2426] / [i915#4312])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-blb-e6850/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3@smem:
- fi-skl-6600u: [INCOMPLETE][60] ([i915#4547]) -> [PASS][61]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11077/fi-skl-6600u/igt@gem_exec_suspend@basic-s3@smem.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/fi-skl-6600u/igt@gem_exec_suspend@basic-s3@smem.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
[i915#4610]: https://gitlab.freedesktop.org/drm/intel/issues/4610
Build changes
-------------
* Linux: CI_DRM_11077 -> Patchwork_21992
CI-20190529: 20190529
CI_DRM_11077: dd14003838c5a80ce141b31f2659a056a40cd894 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6326: ec75f64fcbcf4aac58fbf1bf629e8f59b19db4ce @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_21992: 42015ca384642a0f738d947e139e65bce52c8a65 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
42015ca38464 drm/i915/opregion: debug log about Mailbox #2 for backlight
ce14222cfad0 drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion
80f4e243d899 drm/i915/opregion: early exit from encoder notify if SWSCI isn't there
e97c1b58c9e7 drm/i915/opregion: abstract the check for valid swsci function
47685d212d83 drm/i915/opregion: check port number bounds for SWSCI display power state
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21992/index.html
[-- Attachment #2: Type: text/html, Size: 15439 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 1/5] drm/i915/opregion: check port number bounds for SWSCI display power state
2022-01-13 11:18 ` [Intel-gfx] " Jani Nikula
(?)
@ 2022-01-13 16:42 ` Lucas De Marchi
2022-01-13 16:53 ` Jani Nikula
-1 siblings, 1 reply; 12+ messages in thread
From: Lucas De Marchi @ 2022-01-13 16:42 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, stable
On Thu, Jan 13, 2022 at 01:18:03PM +0200, Jani Nikula wrote:
>The mapping from enum port to whatever port numbering scheme is used by
>the SWSCI Display Power State Notification is odd, and the memory of it
>has faded. In any case, the parameter only has space for ports numbered
>[0..4], and UBSAN reports bit shift beyond it when the platform has port
>F or more.
>
>Since the SWSCI functionality is supposed to be obsolete for new
>platforms (i.e. ones that might have port F or more), just bail out
>early if the mapped and mangled port number is beyond what the Display
>Power State Notification can support.
>
>Fixes: 9c4b0a683193 ("drm/i915: add opregion function to notify bios of encoder enable/disable")
>Cc: <stable@vger.kernel.org> # v3.13+
>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4800
>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>---
> drivers/gpu/drm/i915/display/intel_opregion.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
>index af9d30f56cc1..ad1afe9df6c3 100644
>--- a/drivers/gpu/drm/i915/display/intel_opregion.c
>+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
>@@ -363,6 +363,21 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
> port++;
> }
>
>+ /*
>+ * The port numbering and mapping here is bizarre. The now-obsolete
>+ * swsci spec supports ports numbered [0..4]. Port E is handled as a
>+ * special case, but port F and beyond are not. The functionality is
>+ * supposed to be obsolete for new platforms. Just bail out if the port
>+ * number is out of bounds after mapping.
>+ */
>+ if (port > 4) {
>+ drm_dbg_kms(&dev_priv->drm,
>+ "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n",
>+ intel_encoder->base.base.id, intel_encoder->base.name,
>+ port_name(intel_encoder->port), port);
Do we need this log message? It will always trigger for platforms with
PORT F and callers simply ignore the return value.
Lucas De Marchi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 1/5] drm/i915/opregion: check port number bounds for SWSCI display power state
2022-01-13 16:42 ` Lucas De Marchi
@ 2022-01-13 16:53 ` Jani Nikula
0 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-01-13 16:53 UTC (permalink / raw)
To: Lucas De Marchi; +Cc: intel-gfx, stable
On Thu, 13 Jan 2022, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Thu, Jan 13, 2022 at 01:18:03PM +0200, Jani Nikula wrote:
>>The mapping from enum port to whatever port numbering scheme is used by
>>the SWSCI Display Power State Notification is odd, and the memory of it
>>has faded. In any case, the parameter only has space for ports numbered
>>[0..4], and UBSAN reports bit shift beyond it when the platform has port
>>F or more.
>>
>>Since the SWSCI functionality is supposed to be obsolete for new
>>platforms (i.e. ones that might have port F or more), just bail out
>>early if the mapped and mangled port number is beyond what the Display
>>Power State Notification can support.
>>
>>Fixes: 9c4b0a683193 ("drm/i915: add opregion function to notify bios of encoder enable/disable")
>>Cc: <stable@vger.kernel.org> # v3.13+
>>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4800
>>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>---
>> drivers/gpu/drm/i915/display/intel_opregion.c | 15 +++++++++++++++
>> 1 file changed, 15 insertions(+)
>>
>>diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
>>index af9d30f56cc1..ad1afe9df6c3 100644
>>--- a/drivers/gpu/drm/i915/display/intel_opregion.c
>>+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
>>@@ -363,6 +363,21 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>> port++;
>> }
>>
>>+ /*
>>+ * The port numbering and mapping here is bizarre. The now-obsolete
>>+ * swsci spec supports ports numbered [0..4]. Port E is handled as a
>>+ * special case, but port F and beyond are not. The functionality is
>>+ * supposed to be obsolete for new platforms. Just bail out if the port
>>+ * number is out of bounds after mapping.
>>+ */
>>+ if (port > 4) {
>>+ drm_dbg_kms(&dev_priv->drm,
>>+ "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n",
>>+ intel_encoder->base.base.id, intel_encoder->base.name,
>>+ port_name(intel_encoder->port), port);
>
> Do we need this log message? It will always trigger for platforms with
> PORT F and callers simply ignore the return value.
It will trigger for patch 1, and the stable backport, but, with any luck
and proper opregions, it will be silenced by the subsequent patches.
BR,
Jani.
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion
2022-02-10 10:36 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups, RESEND Jani Nikula
@ 2022-02-10 10:36 ` Jani Nikula
0 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2022-02-10 10:36 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Opregion Mailbox #2 is obsolete for SWSCI usage in opregion v2.x, and
repurposed in opregion v3.x. Warn about obsole mailbox presence in v2.x,
and ignore with an error for v3.x.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index ce3d44cc2461..6e32ed6bbf4e 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -932,9 +932,17 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
}
if (mboxes & MBOX_SWSCI) {
- drm_dbg(&dev_priv->drm, "SWSCI supported\n");
- opregion->swsci = base + OPREGION_SWSCI_OFFSET;
- swsci_setup(dev_priv);
+ u8 major = opregion->header->over.major;
+
+ if (major >= 3) {
+ drm_err(&dev_priv->drm, "SWSCI Mailbox #2 present for opregion v3.x, ignoring\n");
+ } else {
+ if (major >= 2)
+ drm_warn(&dev_priv->drm, "SWSCI Mailbox #2 present for opregion v2.x\n");
+ drm_dbg(&dev_priv->drm, "SWSCI supported\n");
+ opregion->swsci = base + OPREGION_SWSCI_OFFSET;
+ swsci_setup(dev_priv);
+ }
}
if (mboxes & MBOX_ASLE) {
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-02-10 10:37 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-13 11:18 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups Jani Nikula
2022-01-13 11:18 ` [PATCH 1/5] drm/i915/opregion: check port number bounds for SWSCI display power state Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] " Jani Nikula
2022-01-13 16:42 ` Lucas De Marchi
2022-01-13 16:53 ` Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 2/5] drm/i915/opregion: abstract the check for valid swsci function Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 3/5] drm/i915/opregion: early exit from encoder notify if SWSCI isn't there Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion Jani Nikula
2022-01-13 11:18 ` [Intel-gfx] [PATCH 5/5] drm/i915/opregion: debug log about Mailbox #2 for backlight Jani Nikula
2022-01-13 12:13 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/opregion: fixes and cleanups Patchwork
2022-01-13 12:47 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2022-02-10 10:36 [Intel-gfx] [PATCH 0/5] drm/i915/opregion: fixes and cleanups, RESEND Jani Nikula
2022-02-10 10:36 ` [Intel-gfx] [PATCH 4/5] drm/i915/opregion: handle SWSCI Mailbox #2 obsoletion Jani Nikula
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.