diff --git a/Makefile.rhelver b/Makefile.rhelver index 88757de98..fc6e1428e 100644 --- a/Makefile.rhelver +++ b/Makefile.rhelver @@ -12,7 +12,7 @@ RHEL_MINOR = 3 # # Use this spot to avoid future merge conflicts. # Do not trim this comment. -RHEL_RELEASE = 252 +RHEL_RELEASE = 253 # # RHEL_REBASE_NUM diff --git a/kernel-aarch64-64k-debug-rhel.config b/kernel-aarch64-64k-debug-rhel.config index 287232427..7dbacf8b2 100644 --- a/kernel-aarch64-64k-debug-rhel.config +++ b/kernel-aarch64-64k-debug-rhel.config @@ -1938,6 +1938,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2007,8 +2008,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-64k-rhel.config b/kernel-aarch64-64k-rhel.config index 360a72f3d..55268dd12 100644 --- a/kernel-aarch64-64k-rhel.config +++ b/kernel-aarch64-64k-rhel.config @@ -1930,6 +1930,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1999,8 +2000,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config index 8d66624e6..b40b7b29c 100644 --- a/kernel-aarch64-debug-rhel.config +++ b/kernel-aarch64-debug-rhel.config @@ -1936,6 +1936,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2005,8 +2006,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config index c77daa54b..c213b06da 100644 --- a/kernel-aarch64-rhel.config +++ b/kernel-aarch64-rhel.config @@ -1928,6 +1928,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1997,8 +1998,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-rt-64k-debug-rhel.config b/kernel-aarch64-rt-64k-debug-rhel.config index 7fef706fd..0f6799863 100644 --- a/kernel-aarch64-rt-64k-debug-rhel.config +++ b/kernel-aarch64-rt-64k-debug-rhel.config @@ -1941,6 +1941,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2010,8 +2011,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-rt-64k-rhel.config b/kernel-aarch64-rt-64k-rhel.config index 0e83b9d09..ca85f57db 100644 --- a/kernel-aarch64-rt-64k-rhel.config +++ b/kernel-aarch64-rt-64k-rhel.config @@ -1933,6 +1933,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2002,8 +2003,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-rt-debug-rhel.config b/kernel-aarch64-rt-debug-rhel.config index f96194c07..0e12d9290 100644 --- a/kernel-aarch64-rt-debug-rhel.config +++ b/kernel-aarch64-rt-debug-rhel.config @@ -1939,6 +1939,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2008,8 +2009,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-aarch64-rt-rhel.config b/kernel-aarch64-rt-rhel.config index cc072df23..8e6daf801 100644 --- a/kernel-aarch64-rt-rhel.config +++ b/kernel-aarch64-rt-rhel.config @@ -1931,6 +1931,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -2000,8 +2001,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA=m # CONFIG_DRM_THINE_THC63LVD1024 is not set diff --git a/kernel-ppc64le-debug-rhel.config b/kernel-ppc64le-debug-rhel.config index 14660fd4d..6e30cf8cc 100644 --- a/kernel-ppc64le-debug-rhel.config +++ b/kernel-ppc64le-debug-rhel.config @@ -1538,6 +1538,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1607,8 +1608,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-ppc64le-rhel.config b/kernel-ppc64le-rhel.config index 7aaf90792..4385466de 100644 --- a/kernel-ppc64le-rhel.config +++ b/kernel-ppc64le-rhel.config @@ -1530,6 +1530,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1599,8 +1600,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-riscv64-debug-rhel.config b/kernel-riscv64-debug-rhel.config index f4f3da3bf..f44f2deef 100644 --- a/kernel-riscv64-debug-rhel.config +++ b/kernel-riscv64-debug-rhel.config @@ -1550,6 +1550,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1619,8 +1620,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-riscv64-rhel.config b/kernel-riscv64-rhel.config index b80669e15..797d1dbc9 100644 --- a/kernel-riscv64-rhel.config +++ b/kernel-riscv64-rhel.config @@ -1542,6 +1542,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1611,8 +1612,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-s390x-debug-rhel.config b/kernel-s390x-debug-rhel.config index 86148cb81..ff03ebd9c 100644 --- a/kernel-s390x-debug-rhel.config +++ b/kernel-s390x-debug-rhel.config @@ -1546,6 +1546,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1615,8 +1616,10 @@ CONFIG_DRM_SCHED_KUNIT_TEST=m # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-s390x-rhel.config b/kernel-s390x-rhel.config index e682f7511..4d4c46bcb 100644 --- a/kernel-s390x-rhel.config +++ b/kernel-s390x-rhel.config @@ -1538,6 +1538,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1607,8 +1608,10 @@ CONFIG_DRM_SCHED_KUNIT_TEST=m # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-s390x-zfcpdump-rhel.config b/kernel-s390x-zfcpdump-rhel.config index eabf9ca4f..3cd46342e 100644 --- a/kernel-s390x-zfcpdump-rhel.config +++ b/kernel-s390x-zfcpdump-rhel.config @@ -1539,6 +1539,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1608,8 +1609,10 @@ CONFIG_DRM_SCHED_KUNIT_TEST=m # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-x86_64-debug-rhel.config b/kernel-x86_64-debug-rhel.config index c723573ad..569a9a178 100644 --- a/kernel-x86_64-debug-rhel.config +++ b/kernel-x86_64-debug-rhel.config @@ -1653,6 +1653,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1722,8 +1723,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-x86_64-rhel.config b/kernel-x86_64-rhel.config index 932420d92..4c833314d 100644 --- a/kernel-x86_64-rhel.config +++ b/kernel-x86_64-rhel.config @@ -1645,6 +1645,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1714,8 +1715,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-x86_64-rt-debug-rhel.config b/kernel-x86_64-rt-debug-rhel.config index 3032fb3e4..20825e1fe 100644 --- a/kernel-x86_64-rt-debug-rhel.config +++ b/kernel-x86_64-rt-debug-rhel.config @@ -1656,6 +1656,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1725,8 +1726,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel-x86_64-rt-rhel.config b/kernel-x86_64-rt-rhel.config index cb5225717..e45a3e36a 100644 --- a/kernel-x86_64-rt-rhel.config +++ b/kernel-x86_64-rt-rhel.config @@ -1648,6 +1648,7 @@ CONFIG_DRM_NOUVEAU_SIL164=m # CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set @@ -1717,8 +1718,10 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_SOLOMON_SSD2825 is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7571 is not set # CONFIG_DRM_ST7586 is not set # CONFIG_DRM_ST7735R is not set +# CONFIG_DRM_ST7920 is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TI_DLPC3433 is not set # CONFIG_DRM_TIDSS is not set diff --git a/kernel.changelog b/kernel.changelog index 79f414c8d..8cfbcedd6 100644 --- a/kernel.changelog +++ b/kernel.changelog @@ -1,3 +1,54 @@ +* Wed Jul 29 2026 CKI KWF Bot [6.12.0-253.el10] +- redhat: add kmap.py tool and kernel-kmap-internal package (Rado Vrbovsky) +- net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle (CKI Backport Bot) [RHEL-214083] {CVE-2026-64530} +- x86/fpu: Ensure XFD state on signal delivery (Steve Best) [RHEL-213537] +- platform/x86: intel-hid: Protect ACPI notify handler against recursion (Steve Best) [RHEL-213294] +- iTCO_wdt: mask NMI_NOW bit for update_no_reboot_bit() call (Dennis Chen) [RHEL-212108] +- ksm: use range-walk function to jump over holes in scan_get_next_rmap_item (Rafael Aquini) [RHEL-189556] {CVE-2025-68211} +- i2c: i801: fix hardware state machine corruption in error path (Steve Best) [RHEL-212367] +- gitlab-ci: enable riscv64 builds for c10s and rhel10 (Michael Krausch-Hofmann) +- pinctrl: mediatek: paris: bypass pinctrl GPIO layer in set GPIO direction (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: eint: Drop base from mtk_eint_chip_write_mask() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: make devm allocations safer and clearer in mtk_eint_do_init() (Jiri Benc) [RHEL-191293] +- pinctrl: Use dev_fwnode() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: eint: Fix invalid pointer dereference for v1 platforms (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: paris: use new GPIO line value setter callbacks (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: paris: don't double-check the GPIO number (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: common-v1: Fix error checking in mtk_eint_init() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Fix new design debounce issue (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: common-v1: Fix EINT breakage on older controllers (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Fix the invalid conditions (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Add EINT support for multiple addresses (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Drop mtk_pinconf_bias_set_pd() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: add support for MTK_PULL_PD_TYPE (Jiri Benc) [RHEL-191293] +- x86/cpu: Enable FSGSBASE early in cpu_init_exception_handling() (Steve Best) [RHEL-211103] +- cpufreq: intel_pstate: Sync policy->cur during CPU offline (Steve Best) [RHEL-210859] +- platform/x86/amd/hsmp: Clamp ioctl/send_message indices (Spectre v1) (Steve Best) [RHEL-208745] +- xfs: resample the data fork mapping after cycling ILOCK (Carlos Maiolino) [RHEL-193944] +- KVM: s390: Fix S390_USER_OPEREXEC enablement without STFLE 74 (Christoph Schlameuss) [RHEL-158929] +- procfs: fix possible double mmput() in do_procmap_query() (Rafael Aquini) [RHEL-189666] {CVE-2026-23199} +- procfs: avoid fetching build ID while holding VMA lock (Rafael Aquini) [RHEL-189666] {CVE-2026-23199} +- i2c: tegra: Fix NOIRQ suspend/resume (Charles Mirabile) [RHEL-174252] +- i2c: tegra: Update Tegra410 I2C timing parameters (Charles Mirabile) [RHEL-174252] +- i2c: tegra: Disable fair arbitration for non-MCTP buses (Charles Mirabile) [RHEL-174252] +- i2c: tegra: use dmaengine_get_dma_device() for DMA buffer allocation (Charles Mirabile) [RHEL-174252] +- isofs: validate Rock Ridge CE continuation extent against volume size (CKI Backport Bot) [RHEL-187413] {CVE-2026-46303} +- intel_idle: Add Panther Lake C-states table (Steve Best) [RHEL-185572] +- KVM: s390: selftests: Add IRQ routing address offset tests (Christoph Schlameuss) [RHEL-183882] +- KVM: s390: Limit adapter indicator access to mapped page (Christoph Schlameuss) [RHEL-183882] +- tools/power/x86/intel-speed-select: Fix output when running on unsupported CLX platforms (Steve Best) [RHEL-184884] +- tools/power/x86/intel-speed-select: Fix some program return value (Steve Best) [RHEL-184884] +- tools/power/x86/intel-speed-select: Fix cpu extended family ID decoding (Steve Best) [RHEL-184884] +- platform/x86/intel/tpmi/plr: Prevent fault during unbind (Steve Best) [RHEL-182358] +- Revert "Drivers: hv: Add CONFIG_HYPERV_VMBUS option" (Karol Herbst) [RHEL-170737] +- Revert "drm/i915: Use preempt_disable/enable_rt() where recommended" (Karol Herbst) [RHEL-170737] +- Revert "drm/gem: fix build for mm_get_unmapped_area() call after backmerge" (Karol Herbst) [RHEL-170737] +- Partiall revert "mm: update shmem_[kernel]_file_*() functions to use vma_flags_t" (Karol Herbst) [RHEL-170737] +- drm: add 4th argument to vfs_parse_fs_string calls (Karol Herbst) [RHEL-170737] +- redhat/configs: Add new configs from DRM 7.0 backport (Karol Herbst) [RHEL-170737] +- Merge DRM changes from upstream v6.19..v7.0 (Karol Herbst) [RHEL-170737] +Resolves: RHEL-158929, RHEL-170737, RHEL-174252, RHEL-182358, RHEL-183882, RHEL-184884, RHEL-185572, RHEL-187413, RHEL-189556, RHEL-189666, RHEL-191293, RHEL-193944, RHEL-208745, RHEL-210859, RHEL-211103, RHEL-212108, RHEL-212367, RHEL-213294, RHEL-213537, RHEL-214083 + * Tue Jul 28 2026 CKI KWF Bot [6.12.0-252.el10] - Revert "selftests/pidfd: add tests for PIDFD_SELF_*" (John J Coleman) [RHEL-214159] - Revert "selftests/mm: Use PKEY_UNRESTRICTED macro" (John J Coleman) [RHEL-214159] diff --git a/kernel.spec b/kernel.spec index e0a8da7d8..d30758983 100644 --- a/kernel.spec +++ b/kernel.spec @@ -179,15 +179,15 @@ Summary: The Linux kernel %define specrpmversion 6.12.0 %define specversion 6.12.0 %define patchversion 6.12 -%define pkgrelease 252 +%define pkgrelease 253 %define kversion 6 -%define tarfile_release 6.12.0-252.el10 +%define tarfile_release 6.12.0-253.el10 # This is needed to do merge window version magic %define patchlevel 12 # This allows pkg_release to have configurable %%{?dist} tag -%define specrelease 252%{?buildid}%{?dist} +%define specrelease 253%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 6.12.0-252.el10 +%define kabiversion 6.12.0-253.el10 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -253,6 +253,8 @@ Summary: The Linux kernel %define with_ynl %{?_without_ynl: 0} %{?!_without_ynl: 1} # kernel-debuginfo %define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1} +# kernel-kmap-internal: source-to-module mapping data (JSON) +%define with_kmap %{?_without_kmap: 0} %{?!_without_kmap: 1} # kernel-abi-stablelists %define with_kernel_abi_stablelists %{?_without_kernel_abi_stablelists: 0} %{?!_without_kernel_abi_stablelists: 1} # internal samples and selftests @@ -642,6 +644,10 @@ Summary: The Linux kernel %define _enable_debug_packages 0 %endif +%ifnarch x86_64 ppc64le s390x aarch64 riscv64 +%define with_kmap 0 +%endif + # Architectures we build tools/cpupower on %if 0%{?fedora} %define cpupowerarchs %{ix86} x86_64 ppc64le aarch64 @@ -1101,6 +1107,9 @@ Source489: %{name}-x86_64-automotive-debug-rhel.config # Sources for kernel-tools Source2002: kvm_stat.logrotate +# Sources for kernel-kmap-internal +Source2100: kmap.py + # Some people enjoy building customized kernels from the dist-git in Fedora and # use this to override configuration options. One day they may all use the # source tree, but in the mean time we carry this to support the legacy workflow @@ -1435,6 +1444,27 @@ This package provides debug information for the rv package. # with_tools %endif +%if %{with_kmap} && %{with_base} +%package -n %{name}-kmap-internal +Summary: Kernel source-to-module mapping data and module list +Group: Development/System +BuildRequires: python3 +%description -n %{name}-kmap-internal +The %{name}-kmap-internal package contains a JSON mapping file that describes +which C source files contributed to each kernel module and to the built-in +vmlinux image, and which RPM package each module is shipped in. + +Files installed under /usr/share/%{name}-kmap-internal/: + kernel-map-.json - unified mapping file for all kernel variants containing: + - variants: list of variant names (e.g., ["stock", "rt", "automotive"]) + - source-map: source file mappings + - obj-src: maps kernel objects to source files with variant indices + - src-obj: maps source files to kernel objects with variant indices + - module-map: module to RPM mappings + - module-rpm: maps module names to RPM package names with variant indices + - rpm-modules: maps RPM package names to module names with variant indices +%endif + %if %{with_selftests} %package selftests-internal @@ -3007,6 +3037,44 @@ UKI_secureboot_cert=%{_datadir}/pki/sb-certs/secureboot-uki-virt-%{_arch}.cer %endif fi # $DoModules -eq 1 +%if %{with_kmap} && %{with_base} + # Generate source-to-module mapping data using kmap.py. + # Must run before the next BuildKernel call issues make mrproper, which + # would wipe the .cmd files that kmap.py reads. Skip debug variants + # (same source mapping as the base kernel). + if [[ "$Variant" != *debug* ]]; then + _kmap_bdir=$(pwd) + _kmap_basedir=%{_builddir}/kmap-data + _kmap_merged=$_kmap_basedir/kernel-map.json + _kmap_variant=${Variant:-stock} + _kmap_listprefix=../kernel${Variant:+-${Variant}} + mkdir -p $_kmap_basedir + + # Build kmap.py arguments; merge with existing data if present + _kmap_args="--directory $_kmap_bdir --outputdir $_kmap_basedir --rhel upstream --variant $_kmap_variant --time" + _kmap_args="$_kmap_args --vmlinux-rpm %{name}-core-%{KVERREL}.rpm" + if [ -f "$_kmap_merged" ]; then + _kmap_args="$_kmap_args --input kernel-map.json" + fi + + # Add module list files for module-to-RPM mapping + for _kmap_type in modules-core modules modules-extra modules-internal; do + if [ -f "${_kmap_listprefix}-${_kmap_type}.list" ]; then + _kmap_rpm=%{name}-${_kmap_type}-%{KVERREL}.rpm + _kmap_args="$_kmap_args --module-list ${_kmap_rpm}:${_kmap_listprefix}-${_kmap_type}.list" + fi + done +%if 0%{!?fedora:1} + if [ -f "${_kmap_listprefix}-modules-partner.list" ]; then + _kmap_rpm=%{name}-modules-partner-%{KVERREL}.rpm + _kmap_args="$_kmap_args --module-list ${_kmap_rpm}:${_kmap_listprefix}-modules-partner.list" + fi +%endif + + python3 %{SOURCE2100} $_kmap_args + fi +%endif + remove_depmod_files() { # remove files that will be auto generated by depmod at rpm -i time @@ -3907,6 +3975,14 @@ find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/ popd %endif +%if %{with_kmap} && %{with_base} +# Install kmap data files produced during %build. +_kmap_basedir=%{_builddir}/kmap-data +_kmap_destbase=$RPM_BUILD_ROOT%{_datadir}/%{name}-kmap-internal +mkdir -p $_kmap_destbase +install -m 644 $_kmap_basedir/kernel-map.json $_kmap_destbase/kernel-map-%{KVERREL}.json +%endif + ### ### clean ### @@ -4406,6 +4482,13 @@ fi\ %{_libexecdir}/kselftests %endif +%if %{with_kmap} && %{with_base} +%files -n %{name}-kmap-internal +%defattr(-,root,root) +%dir %{_datadir}/%{name}-kmap-internal +%{_datadir}/%{name}-kmap-internal/kernel-map-%{KVERREL}.json +%endif + # empty meta-package %if %{with_up_base} %ifnarch %nobuildarches noarch @@ -4576,14 +4659,14 @@ fi\ # # %changelog -* Wed Jul 29 2026 Eduard Abdullin - 6.12.0-252 +* Fri Jul 31 2026 Eduard Abdullin - 6.12.0-253 - Debrand for AlmaLinux OS - Use AlmaLinux OS secure boot cert -* Wed Jul 29 2026 Neal Gompa - 6.12.0-252 +* Fri Jul 31 2026 Neal Gompa - 6.12.0-253 - Enable Btrfs support for all kernel variants -* Wed Jul 29 2026 Andrew Lukoshko - 6.12.0-252 +* Fri Jul 31 2026 Andrew Lukoshko - 6.12.0-253 - hpsa: bring back deprecated PCI ids #CFHack #CFHack2024 - mptsas: bring back deprecated PCI ids #CFHack #CFHack2024 - megaraid_sas: bring back deprecated PCI ids #CFHack #CFHack2024 @@ -4593,6 +4676,56 @@ fi\ - kernel/rh_messages.h: enable all disabled pci devices by moving to unmaintained +* Wed Jul 29 2026 CKI KWF Bot [6.12.0-253.el10] +- redhat: add kmap.py tool and kernel-kmap-internal package (Rado Vrbovsky) +- net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle (CKI Backport Bot) [RHEL-214083] {CVE-2026-64530} +- x86/fpu: Ensure XFD state on signal delivery (Steve Best) [RHEL-213537] +- platform/x86: intel-hid: Protect ACPI notify handler against recursion (Steve Best) [RHEL-213294] +- iTCO_wdt: mask NMI_NOW bit for update_no_reboot_bit() call (Dennis Chen) [RHEL-212108] +- ksm: use range-walk function to jump over holes in scan_get_next_rmap_item (Rafael Aquini) [RHEL-189556] {CVE-2025-68211} +- i2c: i801: fix hardware state machine corruption in error path (Steve Best) [RHEL-212367] +- gitlab-ci: enable riscv64 builds for c10s and rhel10 (Michael Krausch-Hofmann) +- pinctrl: mediatek: paris: bypass pinctrl GPIO layer in set GPIO direction (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: eint: Drop base from mtk_eint_chip_write_mask() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: make devm allocations safer and clearer in mtk_eint_do_init() (Jiri Benc) [RHEL-191293] +- pinctrl: Use dev_fwnode() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: eint: Fix invalid pointer dereference for v1 platforms (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: paris: use new GPIO line value setter callbacks (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: paris: don't double-check the GPIO number (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: common-v1: Fix error checking in mtk_eint_init() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Fix new design debounce issue (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: common-v1: Fix EINT breakage on older controllers (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Fix the invalid conditions (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Add EINT support for multiple addresses (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: Drop mtk_pinconf_bias_set_pd() (Jiri Benc) [RHEL-191293] +- pinctrl: mediatek: add support for MTK_PULL_PD_TYPE (Jiri Benc) [RHEL-191293] +- x86/cpu: Enable FSGSBASE early in cpu_init_exception_handling() (Steve Best) [RHEL-211103] +- cpufreq: intel_pstate: Sync policy->cur during CPU offline (Steve Best) [RHEL-210859] +- platform/x86/amd/hsmp: Clamp ioctl/send_message indices (Spectre v1) (Steve Best) [RHEL-208745] +- xfs: resample the data fork mapping after cycling ILOCK (Carlos Maiolino) [RHEL-193944] +- KVM: s390: Fix S390_USER_OPEREXEC enablement without STFLE 74 (Christoph Schlameuss) [RHEL-158929] +- procfs: fix possible double mmput() in do_procmap_query() (Rafael Aquini) [RHEL-189666] {CVE-2026-23199} +- procfs: avoid fetching build ID while holding VMA lock (Rafael Aquini) [RHEL-189666] {CVE-2026-23199} +- i2c: tegra: Fix NOIRQ suspend/resume (Charles Mirabile) [RHEL-174252] +- i2c: tegra: Update Tegra410 I2C timing parameters (Charles Mirabile) [RHEL-174252] +- i2c: tegra: Disable fair arbitration for non-MCTP buses (Charles Mirabile) [RHEL-174252] +- i2c: tegra: use dmaengine_get_dma_device() for DMA buffer allocation (Charles Mirabile) [RHEL-174252] +- isofs: validate Rock Ridge CE continuation extent against volume size (CKI Backport Bot) [RHEL-187413] {CVE-2026-46303} +- intel_idle: Add Panther Lake C-states table (Steve Best) [RHEL-185572] +- KVM: s390: selftests: Add IRQ routing address offset tests (Christoph Schlameuss) [RHEL-183882] +- KVM: s390: Limit adapter indicator access to mapped page (Christoph Schlameuss) [RHEL-183882] +- tools/power/x86/intel-speed-select: Fix output when running on unsupported CLX platforms (Steve Best) [RHEL-184884] +- tools/power/x86/intel-speed-select: Fix some program return value (Steve Best) [RHEL-184884] +- tools/power/x86/intel-speed-select: Fix cpu extended family ID decoding (Steve Best) [RHEL-184884] +- platform/x86/intel/tpmi/plr: Prevent fault during unbind (Steve Best) [RHEL-182358] +- Revert "Drivers: hv: Add CONFIG_HYPERV_VMBUS option" (Karol Herbst) [RHEL-170737] +- Revert "drm/i915: Use preempt_disable/enable_rt() where recommended" (Karol Herbst) [RHEL-170737] +- Revert "drm/gem: fix build for mm_get_unmapped_area() call after backmerge" (Karol Herbst) [RHEL-170737] +- Partiall revert "mm: update shmem_[kernel]_file_*() functions to use vma_flags_t" (Karol Herbst) [RHEL-170737] +- drm: add 4th argument to vfs_parse_fs_string calls (Karol Herbst) [RHEL-170737] +- redhat/configs: Add new configs from DRM 7.0 backport (Karol Herbst) [RHEL-170737] +- Merge DRM changes from upstream v6.19..v7.0 (Karol Herbst) [RHEL-170737] + * Tue Jul 28 2026 CKI KWF Bot [6.12.0-252.el10] - Revert "selftests/pidfd: add tests for PIDFD_SELF_*" (John J Coleman) [RHEL-214159] - Revert "selftests/mm: Use PKEY_UNRESTRICTED macro" (John J Coleman) [RHEL-214159] diff --git a/kmap.py b/kmap.py new file mode 100755 index 000000000..70af504d1 --- /dev/null +++ b/kmap.py @@ -0,0 +1,874 @@ +#!/usr/bin/env python3 + +""" +kmap.py - Kernel Source-to-Binary Mapping Tool + +DESCRIPTION + This tool parses Linux kernel build artifacts (.cmd files, archives) to + create a JSON mapping of which source files contribute to which kernel + binaries (modules and vmlinux). It supports merging data from multiple + kernel build variants (e.g., stock, debug, rt) into a single output + file using variant indices to track per-variant mappings. + + Supported RHEL versions: 7, 8, 9, upstream + +FEATURES + - Parses .cmd files generated by kbuild to extract compilation commands + - Supports C (gcc/clang) and Rust (rustc) source files + - Handles built-in objects via built-in.o.cmd (RHEL 7), built-in.a + (RHEL 8/9), or vmlinux.a (upstream) + - Merges multiple kernel variants into single output with variant indices + - Maps modules to their containing RPM packages + +OUTPUT FORMAT + The output is a JSON file with the following structure: + + { + "variants": ["stock", "rt", ...], + "source-map": { + "obj-src": {: {: []}}, + "src-obj": {: {: []}} + }, + "module-map": { + "module-rpm": {: {: []}}, + "rpm-modules": {: {: []}} + } + } + +PARSING THE OUTPUT + import json + + with open('kernel-map.json') as f: + data = json.load(f) + + variants = data['variants'] + obj_src = data['source-map']['obj-src'] + src_obj = data['source-map']['src-obj'] + module_rpm = data['module-map']['module-rpm'] + rpm_modules = data['module-map']['rpm-modules'] + + # Get sources for vmlinux in variant "stock" (index 0) + vmlinux_sources = [src for src, indices in obj_src['vmlinux'].items() + if 0 in indices] + + # Find which object a source contributes to + fork_objects = [obj for obj, indices in src_obj['kernel/fork.c'].items() + if 0 in indices] + + # Get RPM for a module + def get_rpm(module, variant_idx): + for rpm, indices in module_rpm.get(module, {}).items(): + if variant_idx in indices: + return rpm + return None + +USAGE + # Single variant + ./kmap.py -d /build/stock -r upstream -v stock -o /output + + # Merge multiple variants + ./kmap.py -d /build/stock -r upstream -v stock -o /output + ./kmap.py -d /build/debug -r upstream -v debug -o /output -i kernel-map.json + ./kmap.py -d /build/rt -r upstream -v rt -o /output -i kernel-map.json + + # With module-to-RPM mapping + ./kmap.py -d /build -r upstream -v stock -o /output \\ + --vmlinux-rpm kernel-core-5.14.0.rpm \\ + --module-list kernel-modules-5.14.0.rpm:modules.list + +CREDITS + Inspired by gen_compile_commands.py and Joe Lawrence. + Time measurement option added for Jan Stancek. +""" + +import re +import os +import pathlib +import json +import argparse +import subprocess +import time + + +# ============================================================================= +# Constants +# ============================================================================= + +VMLINUX = 'vmlinux' +KERNEL_PREFIX = 'kernel/' + +# Supported compilers and linkers +COMPILERS = ('gcc', 'clang') +LINKER = 'ld' +RUST_COMPILER = 'rustc' + + +# ============================================================================= +# Regex Patterns +# +# These patterns parse the kernel build .cmd files to extract: +# - What compiler/linker was used +# - What source files were compiled +# - What object files were linked +# ============================================================================= + +# Pattern for .ko.cmd files (module linking) +# Matches: cmd_path/to/module.ko := ld -o +# Note: upstream kernels use 'savedcmd_' prefix instead of 'cmd_' +_KO_CMD_PATTERN = ( + r'^(saved)?cmd_[^ ]*\.ko\s*:=\s*ld\s+' + r'(?P.*) -o (?P\S+) (?P[^;]+?)\s*(?:;|$)' +) + +# Pattern for .o.cmd files (object compilation) +# Matches multiple formats: +# - C/asm: cmd_*.o := gcc/clang -o +# - Rust: cmd_*.o := rustc --emit=obj= +# - Rust source mapping: source_*.o := +_O_CMD_PATTERN = ( + r'^(saved)?(?:cmd_|source_)[^ ]*\.o\s+:=\s+' + r'(?:' + r'(?P(?:\S+=\S+\s+)*)?' + r'(?Pgcc|clang|ld|rustc)\s+' + r'(?P.*?)' + r'(?:' + r'\s+-o\s+(?P\S+)\s+(?P[^;]+?)' + r'|' + r'\s+--emit=obj=(?P\S+).*?\s+(?P\S+\.rs)' + r')' + r'|' + r'(?P\S+\.rs)' + r')\s*(?:;|$)' +) + +ko_matcher = re.compile(_KO_CMD_PATTERN) +o_matcher = re.compile(_O_CMD_PATTERN) + + +# ============================================================================= +# Utility Functions +# ============================================================================= + +def parse_args(): + """ + Parse command line arguments + """ + parser = argparse.ArgumentParser( + prog='Kernel Build Mapper', + description='Scrape Linux Kernel .cmd files to map contribution ' + 'of individual source files to kernel binaries.', + ) + + parser.add_argument('-d', '--directory', + help='Directory with kernel build artifacts.', + default='', + type=str) + + parser.add_argument('-o', '--outputdir', + help='Directory where to put generated files.', + default='', + type=str) + + parser.add_argument('-p', '--prefix', + help='Name prefix to the generated files.', + default='', + type=str) + + parser.add_argument('-r', '--rhel', + help='Specify to what version of RHEL artifacts belong (upstream for RHEL 10+/kernel-ark)', + choices=['7', '8', '9', 'upstream'], + required=True) + + parser.add_argument('-m', '--no-modules', + help='*SKIP* collecting information about modules', + action='store_true') + + parser.add_argument('-b', '--no-builtin', + help='*SKIP* collecting information about built-in', + action='store_true') + + parser.add_argument('-t', '--time', + help='Print elapsed time at the end', + action='store_true') + + parser.add_argument('-v', '--variant', + help='Name of this kernel variant (e.g., stock, debug, rt)', + required=True, + type=str) + + parser.add_argument('-i', '--input', + help='Existing JSON file to merge with (from previous variant runs)', + default='', + type=str) + + parser.add_argument('--module-list', + help='Module list in format : (can be specified multiple times)', + action='append', + default=[], + metavar='RPM:PATH') + + parser.add_argument('--vmlinux-rpm', + help='RPM package name for vmlinux (e.g., "kernel-5.14.0.rpm")', + default='', + type=str) + + return parser.parse_args() + + +def load_file(filename, build_dir=''): + """ + Load a text file and return non-empty lines as a list + """ + full_path = os.path.join(build_dir, filename) + + try: + with open(full_path, 'rt', encoding='utf-8') as file: + return [line.rstrip() for line in file if line.rstrip()] + except FileNotFoundError: + print(f'File "{full_path}" not found.') + return [] + + +def name_to_cmd(filename, suffix): + """ + Convert object filename to corresponding .cmd script filename + + Example: kernel/fork.o -> kernel/.fork.o.cmd + """ + path, _ = os.path.splitext(filename) + dirname = os.path.dirname(path) + basename = os.path.basename(path) + + return os.path.join(dirname, '.' + basename + suffix) + + +def strip_path_prefixes(path, build_dir): + """ + Normalize path by removing build directory prefix and other artifacts + """ + path = pathlib.Path(path) + + if build_dir: + try: + return str(path.resolve().relative_to(pathlib.Path(build_dir).resolve())) + except ValueError: + pass + + if path.is_absolute(): + path = pathlib.Path(*path.parts[1:]) + + while path.parts and path.parts[0] == 'repos': + path = pathlib.Path(*path.parts[1:]) + + return str(path) + + +def is_external_source(path): + """ + Check if path should be excluded from source mapping + + Filters out: + - Rust toolchain sources (not part of kernel source) + - Generated assembly files (e.g., initramfs_data.S) + """ + if 'rustlib' in path: + return True + if path.endswith('_data.S'): + return True + return False + + +def is_mod_file_reference(ld_input): + """ + Check if linker input is a .mod file reference (RHEL 9+ module linking) + + In RHEL 9+, module linking uses @path/to/module.mod files that contain + the list of object files to link. + """ + files = ld_input.split() + return len(files) == 1 and files[0].startswith('@') and files[0].endswith('.mod') + + +# ============================================================================= +# SourceMap Class +# ============================================================================= + +class SourceMap: + """ + Collects and manages kernel source-to-binary mappings. + + This class parses kernel build artifacts (.cmd files, archives) to determine + which source files contribute to which kernel binaries (modules and vmlinux). + + Data structures: + obj_to_src: {object_name: {source_file: [variant_indices]}} + src_to_obj: {source_file: {object_name: [variant_indices]}} + module_rpm: {module_name: {rpm_name: [variant_indices]}} + rpm_to_modules: {rpm_name: {module_name: [variant_indices]}} + + Variant indices correspond to positions in the 'variants' list. + """ + + # Dispatch table for RHEL-specific builtin collection methods + BUILTIN_COLLECTORS = { + '7': '_collect_builtin_rhel7', + '8': '_collect_builtin_archive', + '9': '_collect_builtin_archive', + 'upstream': '_collect_builtin_vmlinux_archive', + } + + def __init__(self, build_dir='', output_dir='', outprefix='', rhel='7', variant=''): + # Source mappings + self.obj_to_src = {} + self.src_to_obj = {} + # Module-to-RPM mappings + self.module_rpm = {} + self.rpm_to_modules = {} + + # Configuration + self.build_dir = build_dir + self.output_dir = output_dir + self.outprefix = outprefix + self.rhel = rhel + + # Module list + self.modlist = set() + + # Variant tracking for multi-variant merging + self.variants = [] + self.variant = variant + self.variant_idx = 0 + + # ------------------------------------------------------------------------- + # Variant Management + # ------------------------------------------------------------------------- + + def load_existing(self, filename): + """ + Load existing merged data from previous variant runs + """ + if not filename: + return + + full_path = os.path.join(self.output_dir, filename) if self.output_dir else filename + + if not os.path.exists(full_path): + return + + with open(full_path, 'rt', encoding='utf-8') as f: + data = json.load(f) + + self.variants = data.get('variants', []) + + module_map = data.get('module-map', {}) + self.module_rpm = module_map.get('module-rpm', {}) + self.rpm_to_modules = module_map.get('rpm-modules', {}) + + source_map = data.get('source-map', {}) + self.obj_to_src = source_map.get('obj-src', {}) + self.src_to_obj = source_map.get('src-obj', {}) + + def add_variant(self): + """ + Register current variant and store its index + """ + if self.variant in self.variants: + self.variant_idx = self.variants.index(self.variant) + else: + self.variant_idx = len(self.variants) + self.variants.append(self.variant) + + # ------------------------------------------------------------------------- + # Source Merging Helpers + # ------------------------------------------------------------------------- + + def _merge_sources(self, target, source): + """ + Merge source dict into target dict by combining variant index lists + """ + for src, indices in source.items(): + if src not in target: + target[src] = [] + for idx in indices: + if idx not in target[src]: + target[src].append(idx) + + def _add_source(self, sources, source_path): + """ + Add a source file to the sources dict with current variant index + + Returns True if source was added, False if filtered out + """ + source_path = os.path.normpath(source_path) + source_path = strip_path_prefixes(source_path, self.build_dir) + + if is_external_source(source_path): + return False + + sources[source_path] = [self.variant_idx] + return True + + # ------------------------------------------------------------------------- + # .cmd File Parsing + # ------------------------------------------------------------------------- + + def _parse_ko_cmd(self, ko_name): + """ + Parse .ko.cmd file to find the primary object file linked into the module + """ + ko_script = name_to_cmd(ko_name, '.ko.cmd') + lines = load_file(ko_script, build_dir=self.build_dir) + + for line in lines: + result = ko_matcher.match(line) + if result: + input_files = result.group('input_files').split() + return input_files[0] + + return None + + def _parse_o_cmd(self, o_name, translate=True): + """ + Parse .o.cmd file to extract source files that contribute to the object + + Handles: + - C/assembly compilation (gcc, clang) + - Linking (ld) - recursively parses linked objects + - Rust compilation (rustc) + - Rust source file mappings + + Args: + o_name: Object file name or .cmd file path + translate: If True, convert object name to .cmd path (e.g., kernel/fork.o + becomes kernel/.fork.o.cmd). If False, use o_name as-is. + This parameter exists to handle different kbuild behaviors + across RHEL versions - some code paths may already have .cmd + paths while others have object names that need translation. + """ + sources = {} + + o_script = name_to_cmd(o_name, '.o.cmd') if translate else o_name + lines = load_file(o_script, build_dir=self.build_dir) + + for line in lines: + result = o_matcher.match(line) + if not result: + continue + + command = result.group('command') + + if command in COMPILERS: + self._handle_compiler(result, sources) + break + + elif command == LINKER: + self._handle_linker(result, sources) + break + + elif command == RUST_COMPILER: + self._handle_rustc(result, sources) + break + + else: + self._handle_rust_source_mapping(result, sources) + break + + return sources + + def _handle_compiler(self, match_result, sources): + """ + Handle gcc/clang compilation - extract the input source file + """ + obj_input = match_result.group('input_files') + if obj_input: + self._add_source(sources, obj_input) + + def _handle_linker(self, match_result, sources): + """ + Handle ld linking - recursively parse linked objects + """ + obj_input = match_result.group('input_files') + if not obj_input: + return + + if is_mod_file_reference(obj_input): + self._merge_sources(sources, self._parse_mod_cmd(obj_input)) + else: + for obj_file in obj_input.split(): + self._merge_sources(sources, self._parse_o_cmd(obj_file)) + + def _handle_rustc(self, match_result, sources): + """ + Handle rustc compilation - extract the Rust source file + """ + rust_input = match_result.group('rust_input_file') + if rust_input: + self._add_source(sources, rust_input) + + def _handle_rust_source_mapping(self, match_result, sources): + """ + Handle Rust source file mapping (source_*.o := *.rs) + """ + source_file = match_result.group('source_file') + if source_file and source_file.endswith('.rs'): + self._add_source(sources, source_file) + + def _parse_mod_cmd(self, mod_name): + """ + Parse .mod file used by RHEL 9+ for linking modules + + These files contain a list of object files to link into the module. + """ + sources = {} + mod_name = mod_name.strip('@') + lines = load_file(mod_name, build_dir=self.build_dir) + + for line in lines: + self._merge_sources(sources, self._parse_o_cmd(line)) + + return sources + + def _parse_a_cmd(self, a_name): + """ + Parse archive .cmd file (RHEL 7 built-in.o.cmd files) + """ + sources = {} + lines = load_file(a_name, build_dir=self.build_dir) + + for line in lines: + result = o_matcher.match(line) + if not result: + continue + + ar_input = result.group('input_files') + for filename in ar_input.rsplit(): + if filename.endswith('.o'): + self._merge_sources(sources, self._parse_o_cmd(filename)) + elif filename.endswith('.a'): + self._merge_sources(sources, self._parse_a_cmd(filename)) + + return sources + + # ------------------------------------------------------------------------- + # Module Collection + # ------------------------------------------------------------------------- + + def _load_module_list(self, modorder='modules.order'): + """ + Load modules.order file and normalize paths + + RHEL 7, 8: modules.order has 'kernel/' prefix that needs to be stripped + RHEL 9, upstream: modules.order paths are used as-is + """ + lines = load_file(modorder, build_dir=self.build_dir) + + if not lines: + print(f'Warning: modules.order is empty or not found') + self.modlist = set() + return + + if self.rhel in ['9', 'upstream']: + self.modlist = set(lines) + else: + # RHEL 7, 8: strip fake 'kernel/' prefix added by kbuild + self.modlist = { + path[len(KERNEL_PREFIX):] if path.startswith(KERNEL_PREFIX) else path + for path in lines + } + + def _parse_module_objects(self): + """ + Parse all module .cmd files and extract source mappings. + + Note on RHEL version differences: + - RHEL 7/8/9: modules.order contains .ko paths (e.g., fs/exfat/exfat.ko) + - upstream: modules.order contains .o paths (e.g., fs/exfat/exfat.o) + + The normalization below ensures consistent .ko keys in output regardless + of the modules.order format. + """ + for kobj in self.modlist: + # Normalize to .ko - upstream has .o paths in modules.order + if self.rhel == 'upstream' and kobj.endswith('.o'): + module_name = kobj[:-2] + '.ko' + else: + module_name = kobj + + obj_name = self._parse_ko_cmd(module_name) + if obj_name is None: + print(f'Warning: Could not parse .ko.cmd for "{module_name}", skipping.') + continue + + obj_source = self._parse_o_cmd(obj_name) + if module_name not in self.obj_to_src: + self.obj_to_src[module_name] = {} + self._merge_sources(self.obj_to_src[module_name], obj_source) + + def collect_modules(self, no_modules=False, modorder='modules.order'): + """ + Collect source files for kernel modules + """ + if no_modules: + return + + self._load_module_list(modorder) + self._parse_module_objects() + + # ------------------------------------------------------------------------- + # Builtin Collection (RHEL version-specific) + # ------------------------------------------------------------------------- + + def _collect_builtin_rhel7(self): + """ + Collect built-in objects for RHEL 7 using *built-in.o.cmd files + """ + pattern = '*built-in.o.cmd' + cmd_list = { + strip_path_prefixes(path, self.build_dir) + for path in pathlib.Path(self.build_dir).rglob(pattern) + } + + for entry in cmd_list: + sources = self._parse_a_cmd(entry) + self._merge_sources(self.obj_to_src[VMLINUX], sources) + + def _collect_builtin_archive(self): + """ + Collect built-in objects for RHEL 8/9 using *built-in.a archives + """ + pattern = '*built-in.a' + archive_list = { + strip_path_prefixes(path, self.build_dir) + for path in pathlib.Path(self.build_dir).rglob(pattern) + } + + for entry in archive_list: + path = os.path.join(self.build_dir, entry) + objects = subprocess.check_output(['ar', 't', path]).decode().split() + + for obj in objects: + obj_path = strip_path_prefixes(obj, build_dir=self.build_dir) + sources = self._parse_o_cmd(obj_path) + self._merge_sources(self.obj_to_src[VMLINUX], sources) + + def _collect_builtin_vmlinux_archive(self): + """ + Collect built-in objects for upstream kernels using single vmlinux.a archive + """ + path = os.path.join(self.build_dir, 'vmlinux.a') + objects = subprocess.check_output(['ar', 't', path]).decode().split() + + for obj in objects: + obj_path = strip_path_prefixes(obj, build_dir=self.build_dir) + sources = self._parse_o_cmd(obj_path) + self._merge_sources(self.obj_to_src[VMLINUX], sources) + + def collect_builtin(self, no_builtin=False): + """ + Collect source files for vmlinux built-in objects + + Uses RHEL version-specific collection method via dispatch table. + """ + if VMLINUX not in self.obj_to_src: + self.obj_to_src[VMLINUX] = {} + + if no_builtin: + return + + collector_name = self.BUILTIN_COLLECTORS.get(self.rhel, '_collect_builtin_archive') + collector = getattr(self, collector_name) + collector() + + # ------------------------------------------------------------------------- + # Module-to-RPM Mapping + # ------------------------------------------------------------------------- + + def _parse_module_list_file(self, filename, rpm_name): + """ + Parse a module list file and add entries to module_rpm mapping + + Handles various formats: + - Absolute paths: /lib/modules/5.14.0/kernel/drivers/net/e1000.ko.xz + - Relative paths: kernel/drivers/net/e1000.ko + - Skips RPM spec directives (%dir, %defattr, etc.) + + Args: + filename: Path to the module list file + rpm_name: Literal RPM package name (e.g., "kernel-modules-5.14.0.rpm") + """ + if not filename or not os.path.exists(filename): + return + + with open(filename, 'rt', encoding='utf-8') as f: + for line in f: + line = line.strip() + + # Skip empty lines, comments, and RPM spec directives + if not line or line.startswith('#') or line.startswith('%'): + continue + + # Skip non-module files + if '.ko' not in line: + continue + + # Extract module name from path + module = os.path.basename(line) + # Remove .ko and any compression suffix + module = re.sub(r'\.ko(\.[^.]+)?$', '', module) + + if not module: + continue + + if module not in self.module_rpm: + self.module_rpm[module] = {} + + if rpm_name not in self.module_rpm[module]: + self.module_rpm[module][rpm_name] = [] + if self.variant_idx not in self.module_rpm[module][rpm_name]: + self.module_rpm[module][rpm_name].append(self.variant_idx) + + def collect_module_rpm(self, module_lists, vmlinux_rpm=''): + """ + Collect module-to-RPM name mappings from module list files + + Args: + module_lists: List of "rpm_name:path" strings + vmlinux_rpm: RPM package name for vmlinux + """ + if not module_lists and not vmlinux_rpm: + return + + # Add vmlinux to specified RPM + if vmlinux_rpm: + if VMLINUX not in self.module_rpm: + self.module_rpm[VMLINUX] = {} + if vmlinux_rpm not in self.module_rpm[VMLINUX]: + self.module_rpm[VMLINUX][vmlinux_rpm] = [] + if self.variant_idx not in self.module_rpm[VMLINUX][vmlinux_rpm]: + self.module_rpm[VMLINUX][vmlinux_rpm].append(self.variant_idx) + + # Process module list files + for entry in module_lists: + if ':' not in entry: + print(f'Warning: Invalid --module-list format "{entry}", expected RPM:PATH') + continue + + rpm_name, path = entry.split(':', 1) + self._parse_module_list_file(path, rpm_name) + + # ------------------------------------------------------------------------- + # Output + # ------------------------------------------------------------------------- + + def _build_reverse_map(self): + """ + Create reverse mapping (source -> {obj: [indices]}) from obj_to_src + """ + for obj, sources in self.obj_to_src.items(): + for source, indices in sources.items(): + if source not in self.src_to_obj: + self.src_to_obj[source] = {} + if obj not in self.src_to_obj[source]: + self.src_to_obj[source][obj] = [] + for idx in indices: + if idx not in self.src_to_obj[source][obj]: + self.src_to_obj[source][obj].append(idx) + + def _build_rpm_reverse_map(self): + """ + Create reverse mapping (rpm -> {module: [indices]}) from module_rpm + """ + for module, rpms in self.module_rpm.items(): + for rpm, indices in rpms.items(): + if rpm not in self.rpm_to_modules: + self.rpm_to_modules[rpm] = {} + if module not in self.rpm_to_modules[rpm]: + self.rpm_to_modules[rpm][module] = [] + for idx in indices: + if idx not in self.rpm_to_modules[rpm][module]: + self.rpm_to_modules[rpm][module].append(idx) + + def save_data(self): + """ + Save collected data to JSON file + + Output structure: + - variants: list of variant names + - source-map: source file mappings + - obj-src: object/module -> {source: [variant_indices]} + - src-obj: source -> {object/module: [variant_indices]} + - module-map: module to RPM mappings + - module-rpm: module name -> {rpm-name: [variant_indices]} + - rpm-modules: rpm-name -> {module name: [variant_indices]} + + Variant indices correspond to positions in the 'variants' list. + """ + output = { + 'variants': self.variants, + 'source-map': { + 'obj-src': self.obj_to_src, + 'src-obj': self.src_to_obj + }, + 'module-map': { + 'module-rpm': self.module_rpm, + 'rpm-modules': self.rpm_to_modules + } + } + + filename = self.outprefix + 'kernel-map.json' + with open(os.path.join(self.output_dir, filename), 'wt', encoding='utf-8') as f: + json.dump(output, f, indent=2, sort_keys=True) + + # ------------------------------------------------------------------------- + # Main Entry Point + # ------------------------------------------------------------------------- + + def collect_data(self, no_modules=False, no_builtin=False, modorder='modules.order', + input_file='', module_lists=None, vmlinux_rpm=''): + """ + Main entry point - collect all data and save to JSON + """ + self.load_existing(input_file) + self.add_variant() + self.collect_modules(no_modules, modorder) + self.collect_builtin(no_builtin) + self.collect_module_rpm(module_lists or [], vmlinux_rpm) + self._build_reverse_map() + self._build_rpm_reverse_map() + self.save_data() + + +# ============================================================================= +# Main +# ============================================================================= + +def main(): + """ + Main entry point + """ + args = parse_args() + + start = time.monotonic() + + source_map = SourceMap( + build_dir=args.directory, + output_dir=args.outputdir, + outprefix=args.prefix, + rhel=args.rhel, + variant=args.variant) + + source_map.collect_data( + no_modules=args.no_modules, + no_builtin=args.no_builtin, + input_file=args.input, + module_lists=args.module_list, + vmlinux_rpm=args.vmlinux_rpm) + + if args.time: + elapsed = time.monotonic() - start + minutes, seconds = divmod(int(elapsed), 60) + print(f'Elapsed time: {minutes:02d}:{seconds:02d}') + + +if __name__ == '__main__': + main() diff --git a/sources b/sources index 0d4eef75d..666d9a97d 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ SHA512 (kernel-abi-stablelists-6.6.0.tar.bz2) = 4f917598056dee5e23814621ec96ff2e4a411c8c4ba9d56ecb01b23cb96431825bedbecfcbaac9338efbf5cb21694d85497fa0bf43e7c80d9cd10bc6dd144dbd SHA512 (kernel-kabi-dw-6.6.0.tar.bz2) = 19308cd976031d05e18ef7f5d093218acdb89446418bab0cd956ff12cf66369915b9e64bb66fa9f20939428a60e81884fec5be3529c6c7461738d6540d3cc5c6 -SHA512 (linux-6.12.0-252.el10.tar.xz) = 8a0e6d572c6d325a946a2e988360496f270451f3f72063f8b9b77ba01efe42930b839ac3520ac76b245989e8e85dc47c77109a984de3d55fc248ac028a782f24 -SHA512 (kernel-abi-stablelists-6.12.0-252.el10.tar.xz) = 24ea0efba26c75fe5e2558333e14bb68fccb83090fe251432154d8707e34891b1e1f0483cf9cdd8dfed87c1a717ca24ee2a26b771d40fe953fc415b335fb8aeb -SHA512 (kernel-kabi-dw-6.12.0-252.el10.tar.xz) = 30d51d42365bdeb6fa5cc39a266934cb128bbb080dafada43dda605f754f115e5af4b9343e6715a61d275267efdd2dc129bb5f04d27de4517019450b32ccecc7 +SHA512 (linux-6.12.0-253.el10.tar.xz) = c591cae2174bc74ade06202126bb35607b7478a3dc96a9f044375ce33d4325cd16f8512001b6c88a14dc808060fdaddc2c0a3a32fd6e29ea0044be756731d428 +SHA512 (kernel-abi-stablelists-6.12.0-253.el10.tar.xz) = 5e380cbb78f3d8cebf2ba77eb8ff68770bbac1c32c931a5442d75b9b52f21d94f5bdcc6b577ac884713528b8458ebf467a86ddc32a64aeeab36ebf9cdf87fdcf +SHA512 (kernel-kabi-dw-6.12.0-253.el10.tar.xz) = 638b2290798338b50b1abd19618a202ca1ff4a20d6405253bf85da30a1912bf871349afdcf6cecf255573b3d3848c156922ad87b5e2e94c15e6d38afcb5748e9