RE: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
Tomasz Figa wrote: Hi All, As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figa t.f...@samsung.com Build tested every patch with s3c6400_defconfig, s5pv210_defconfig and exynos_defconfig. Changes since v1: - Split patches removing SOC_EXYNOS4412 - Adjusted drivers to check for ARCH_EXYNOS in addition to PLAT_S5P - Fixed compilation issue on s5pc100 - Removed empty line from mach-exynos/Makefile - Removed SAMSUNG_GPIOLIB_4BIT selection from ARCH_EXYNOS - Sorted Kconfig and Makefile entries - Added additional cleanup from Arnd (split and slightly modified) Tomasz, good job. After looking at, almost same with your previous version but modifying 16, 19, 21, 25(just Cc) and adding some patches 17, 18, 29 and 35 to 38. Would be helpful to me if you could note about that in this series ;-) Anyway, looks good I will apply this series except removing CONFIG_SOC_EXYNOS4412 patches. Thanks, - Kukjin Tomasz Figa (38): ARM: EXYNOS: Remove unused board files ARM: EXYNOS: Make ARCH_EXYNOS select USE_OF ARM: SAMSUNG: Introduce SAMSUNG_ATAGS Kconfig entry ARM: EXYNOS: common: Remove legacy PMU initialization code ARM: EXYNOS: common: Remove legacy EINT initialization code ARM: EXYNOS: common: Remove legacy UART initialization code ARM: EXYNOS: Remove legacy dev- and setup- files ARM: EXYNOS: common: Remove legacy interrupt initialization code ARM: EXYNOS: common: Remove legacy timer initialization code ARM: EXYNOS: common: Remove platform device initialization ARM: EXYNOS: common: Remove legacy mapping of chip ID block ARM: EXYNOS: firmware: Remove check for device tree presence ARM: EXYNOS: pm_domains: Remove legacy power domain registration code ARM: SAMSUNG: Introduce GPIO_SAMSUNG Kconfig entry ARM: EXYNOS: Provide compatibility stubs for PM code in pm-core.h header ARM: SAMSUNG: Compile legacy IRQ and GPIO PM code only with ATAGS support [media] platform: Check for ARCH_EXYNOS separately USB: Check for ARCH_EXYNOS separately ARM: EXYNOS: Decouple ARCH_EXYNOS from PLAT_S5P ARM: SAMSUNG: pm: Include most of mach/ headers conditionally ARM: EXYNOS: Do not select legacy Kconfig symbols any more ARM: EXYNOS: Remove setup-i2c0.c ARM: EXYNOS: Remove mach/gpio.h ARM: EXYNOS: Remove mach/regs-gpio.h header ARM: SAMSUNG: Make legacy MFC support code depend on SAMSUNG_ATAGS ARM: EXYNOS: Select SPARSE_IRQ for Exynos ARM: EXYNOS: Remove mach/irqs.h header ARM: EXYNOS: Remove unused base addresses from mach/map.h header thermal: exynos: Support both Exynos4x12 SoCs ARM: EXYNOS: Remove CONFIG_SOC_EXYNOS4412 cpufreq: exynos4x12: Remove check for SOC_EXYNOS4412 [media] exynos4-is: Remove check for SOC_EXYNOS4412 thermal: exynos: Remove check for SOC_EXYNOS4412 ARM: EXYNOS: Remove mach/regs-usb-phy.h header ARM: EXYNOS: Remove custom init_irq callbacks ARM: EXYNOS: Use exynos_init_io() as map_io callback ARM: EXYNOS: Remove legacy L2X0 initialization ARM: EXYNOS: Remove remaining dead code after non-DT support removal arch/arm/Kconfig | 15 +- arch/arm/Makefile|1 + arch/arm/mach-exynos/Kconfig | 31 +- arch/arm/mach-exynos/Makefile|7 - arch/arm/mach-exynos/common.c| 537 + arch/arm/mach-exynos/common.h|4 +- arch/arm/mach-exynos/dev-audio.c | 254 arch/arm/mach-exynos/dev-uart.c | 55 - arch/arm/mach-exynos/firmware.c | 22 +- arch/arm/mach-exynos/include/mach/gpio.h | 289 - arch/arm/mach-exynos/include/mach/irqs.h | 476 arch/arm/mach-exynos/include/mach/map.h | 218 +--- arch/arm/mach-exynos/include/mach/pm-core.h | 12 +- arch/arm/mach-exynos/include/mach/regs-gpio.h| 40 - arch/arm/mach-exynos/include/mach/regs-usb-phy.h | 74 -- arch/arm/mach-exynos/mach-armlex4210.c | 207 arch/arm/mach-exynos/mach-exynos4-dt.c |8 +- arch/arm/mach-exynos/mach-exynos5-dt.c |8 +- arch/arm/mach-exynos/mach-nuri.c | 1388 - - arch/arm/mach-exynos/mach-origen.c | 823 - arch/arm/mach-exynos/mach-smdk4x12.c | 396 -- arch/arm/mach-exynos/mach-smdkv310.c | 444 --- arch/arm/mach-exynos/mach-universal_c210.c | 1159 -- arch/arm/mach-exynos/pm.c|1 -
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On Tuesday 18 of June 2013 19:23:29 Kukjin Kim wrote: Tomasz Figa wrote: Hi All, As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figa t.f...@samsung.com Build tested every patch with s3c6400_defconfig, s5pv210_defconfig and exynos_defconfig. Changes since v1: - Split patches removing SOC_EXYNOS4412 - Adjusted drivers to check for ARCH_EXYNOS in addition to PLAT_S5P - Fixed compilation issue on s5pc100 - Removed empty line from mach-exynos/Makefile - Removed SAMSUNG_GPIOLIB_4BIT selection from ARCH_EXYNOS - Sorted Kconfig and Makefile entries - Added additional cleanup from Arnd (split and slightly modified) Tomasz, good job. Thanks. After looking at, almost same with your previous version but modifying 16, 19, 21, 25(just Cc) and adding some patches 17, 18, 29 and 35 to 38. Would be helpful to me if you could note about that in this series ;-) OK, my bad, haven't though about it, sorry. Will remember to do it next time such series update happens. By the way, patch 14 has been updated as well. Best regards, Tomasz Anyway, looks good I will apply this series OK, thanks. except removing CONFIG_SOC_EXYNOS4412 patches. I don't really understand this decision, but if you really insist... Still, I think current setup is wrong, because you need to specify both SoCs in drivers and both Kconfig entries must have select and depends on clauses duplicated, while there are places currently where only one has been specified by mistake. So if we can't get this duplication removed, I'd suggest introducing CONFIG_SOC_EXYNOS4X12 which would represent the whole SoC series and making existing two entries just simple bools selecting the new one. Best regards, Tomasz Thanks, - Kukjin Tomasz Figa (38): ARM: EXYNOS: Remove unused board files ARM: EXYNOS: Make ARCH_EXYNOS select USE_OF ARM: SAMSUNG: Introduce SAMSUNG_ATAGS Kconfig entry ARM: EXYNOS: common: Remove legacy PMU initialization code ARM: EXYNOS: common: Remove legacy EINT initialization code ARM: EXYNOS: common: Remove legacy UART initialization code ARM: EXYNOS: Remove legacy dev- and setup- files ARM: EXYNOS: common: Remove legacy interrupt initialization code ARM: EXYNOS: common: Remove legacy timer initialization code ARM: EXYNOS: common: Remove platform device initialization ARM: EXYNOS: common: Remove legacy mapping of chip ID block ARM: EXYNOS: firmware: Remove check for device tree presence ARM: EXYNOS: pm_domains: Remove legacy power domain registration code ARM: SAMSUNG: Introduce GPIO_SAMSUNG Kconfig entry ARM: EXYNOS: Provide compatibility stubs for PM code in pm-core.h header ARM: SAMSUNG: Compile legacy IRQ and GPIO PM code only with ATAGS support [media] platform: Check for ARCH_EXYNOS separately USB: Check for ARCH_EXYNOS separately ARM: EXYNOS: Decouple ARCH_EXYNOS from PLAT_S5P ARM: SAMSUNG: pm: Include most of mach/ headers conditionally ARM: EXYNOS: Do not select legacy Kconfig symbols any more ARM: EXYNOS: Remove setup-i2c0.c ARM: EXYNOS: Remove mach/gpio.h ARM: EXYNOS: Remove mach/regs-gpio.h header ARM: SAMSUNG: Make legacy MFC support code depend on SAMSUNG_ATAGS ARM: EXYNOS: Select SPARSE_IRQ for Exynos ARM: EXYNOS: Remove mach/irqs.h header ARM: EXYNOS: Remove unused base addresses from mach/map.h header thermal: exynos: Support both Exynos4x12 SoCs ARM: EXYNOS: Remove CONFIG_SOC_EXYNOS4412 cpufreq: exynos4x12: Remove check for SOC_EXYNOS4412 [media] exynos4-is: Remove check for SOC_EXYNOS4412 thermal: exynos: Remove check for SOC_EXYNOS4412 ARM: EXYNOS: Remove mach/regs-usb-phy.h header ARM: EXYNOS: Remove custom init_irq callbacks ARM: EXYNOS: Use exynos_init_io() as map_io callback ARM: EXYNOS: Remove legacy L2X0 initialization ARM: EXYNOS: Remove remaining dead code after non-DT support removal arch/arm/Kconfig | 15 +- arch/arm/Makefile|1 + arch/arm/mach-exynos/Kconfig | 31 +- arch/arm/mach-exynos/Makefile|7 - arch/arm/mach-exynos/common.c| 537 + arch/arm/mach-exynos/common.h|4 +- arch/arm/mach-exynos/dev-audio.c | 254 arch/arm/mach-exynos/dev-uart.c | 55 - arch/arm/mach-exynos/firmware.c | 22 +- arch/arm/mach-exynos/include/mach/gpio.h | 289 -
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On 06/18/13 20:11, Tomasz Figa wrote: On Tuesday 18 of June 2013 19:23:29 Kukjin Kim wrote: Tomasz Figa wrote: Hi All, As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figat.f...@samsung.com Build tested every patch with s3c6400_defconfig, s5pv210_defconfig and exynos_defconfig. Changes since v1: - Split patches removing SOC_EXYNOS4412 - Adjusted drivers to check for ARCH_EXYNOS in addition to PLAT_S5P - Fixed compilation issue on s5pc100 - Removed empty line from mach-exynos/Makefile - Removed SAMSUNG_GPIOLIB_4BIT selection from ARCH_EXYNOS - Sorted Kconfig and Makefile entries - Added additional cleanup from Arnd (split and slightly modified) Tomasz, good job. Thanks. After looking at, almost same with your previous version but modifying 16, 19, 21, 25(just Cc) and adding some patches 17, 18, 29 and 35 to 38. Would be helpful to me if you could note about that in this series ;-) OK, my bad, haven't though about it, sorry. Will remember to do it next time such series update happens. By the way, patch 14 has been updated as well. Thanks ;) Best regards, Tomasz Anyway, looks good I will apply this series OK, thanks. except removing CONFIG_SOC_EXYNOS4412 patches. I don't really understand this decision, but if you really insist... Sorry about that, but exynos4412 is not same with exynos4212 except number of cores and exynos4412 is not one kind... Still, I think current setup is wrong, because you need to specify both SoCs in drivers and both Kconfig entries must have select and depends on clauses duplicated, while there are places currently where only one has been specified by mistake. So if we can't get this duplication removed, I'd suggest introducing CONFIG_SOC_EXYNOS4X12 which would represent the whole SoC series and making existing two entries just simple bools selecting the new one. Could be a solution but let's wait until something will be implemented in mainline for exynos4412 not exynos4212 :) Thanks, - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On Wednesday 19 of June 2013 02:51:56 Kukjin Kim wrote: On 06/18/13 20:11, Tomasz Figa wrote: On Tuesday 18 of June 2013 19:23:29 Kukjin Kim wrote: Tomasz Figa wrote: Hi All, As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figat.f...@samsung.com Build tested every patch with s3c6400_defconfig, s5pv210_defconfig and exynos_defconfig. Changes since v1: - Split patches removing SOC_EXYNOS4412 - Adjusted drivers to check for ARCH_EXYNOS in addition to PLAT_S5P - Fixed compilation issue on s5pc100 - Removed empty line from mach-exynos/Makefile - Removed SAMSUNG_GPIOLIB_4BIT selection from ARCH_EXYNOS - Sorted Kconfig and Makefile entries - Added additional cleanup from Arnd (split and slightly modified) Tomasz, good job. Thanks. After looking at, almost same with your previous version but modifying 16, 19, 21, 25(just Cc) and adding some patches 17, 18, 29 and 35 to 38. Would be helpful to me if you could note about that in this series ;-) OK, my bad, haven't though about it, sorry. Will remember to do it next time such series update happens. By the way, patch 14 has been updated as well. Thanks ;) Best regards, Tomasz Anyway, looks good I will apply this series OK, thanks. except removing CONFIG_SOC_EXYNOS4412 patches. I don't really understand this decision, but if you really insist... Sorry about that, but exynos4412 is not same with exynos4212 except number of cores and exynos4412 is not one kind... OK, so it seems like I got misinformed about the number of cores being the only difference. Still, I think current setup is wrong, because you need to specify both SoCs in drivers and both Kconfig entries must have select and depends on clauses duplicated, while there are places currently where only one has been specified by mistake. So if we can't get this duplication removed, I'd suggest introducing CONFIG_SOC_EXYNOS4X12 which would represent the whole SoC series and making existing two entries just simple bools selecting the new one. Could be a solution but let's wait until something will be implemented in mainline for exynos4412 not exynos4212 :) OK. Looking forward to it. Btw. This leaves us with two things broken: - sdhci-s3c checks for defined(CONFIG_SOC_EXYNOS4212), but does not check for defined(CONFIG_SOC_EXYNOS4412), - exynos-thermal checks for defined(CONFIG_SOC_EXYNOS4412), but does not check for defined(CONFIG_SOC_EXYNOS4212). I think this must be fixed, because selecting only Exynos4212 in kernel config you end up without exynos-thermal, while selecting only Exynos4412 breaks sdhci-s3c. Best regards, Tomasz Thanks, - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On Tuesday 18 June 2013, Tomasz Figa wrote: OK. Looking forward to it. Btw. This leaves us with two things broken: - sdhci-s3c checks for defined(CONFIG_SOC_EXYNOS4212), but does not check for defined(CONFIG_SOC_EXYNOS4412), - exynos-thermal checks for defined(CONFIG_SOC_EXYNOS4412), but does not check for defined(CONFIG_SOC_EXYNOS4212). I think this must be fixed, because selecting only Exynos4212 in kernel config you end up without exynos-thermal, while selecting only Exynos4412 breaks sdhci-s3c. I wonder what we actually gain by having all these fine-grained checks in the kernel. Why not just reduce the compile-time checks to just EXYNOS4 and EXYNOS5? The drivers can easily implement code for all variants using run-time checks, but I think it would be easier if building an EXYNOS4 kernel would just run on all EXYNOS4 machines. Arnd -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On Tue, Jun 18, 2013 at 11:29 AM, Arnd Bergmann a...@arndb.de wrote: On Tuesday 18 June 2013, Tomasz Figa wrote: OK. Looking forward to it. Btw. This leaves us with two things broken: - sdhci-s3c checks for defined(CONFIG_SOC_EXYNOS4212), but does not check for defined(CONFIG_SOC_EXYNOS4412), - exynos-thermal checks for defined(CONFIG_SOC_EXYNOS4412), but does not check for defined(CONFIG_SOC_EXYNOS4212). I think this must be fixed, because selecting only Exynos4212 in kernel config you end up without exynos-thermal, while selecting only Exynos4412 breaks sdhci-s3c. I wonder what we actually gain by having all these fine-grained checks in the kernel. Why not just reduce the compile-time checks to just EXYNOS4 and EXYNOS5? The drivers can easily implement code for all variants using run-time checks, but I think it would be easier if building an EXYNOS4 kernel would just run on all EXYNOS4 machines. Agreed. These fine-grained dependencies tend to be useful on very low-end systems where every byte of memory counts, but on modern platforms such as Exynos the maintainability of the code trumps the last few bytes of savings, I'd say. -Olof -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 00/38] Thirty eight patches big Exynos cleanup
Hi All, As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figa t.f...@samsung.com Build tested every patch with s3c6400_defconfig, s5pv210_defconfig and exynos_defconfig. Changes since v1: - Split patches removing SOC_EXYNOS4412 - Adjusted drivers to check for ARCH_EXYNOS in addition to PLAT_S5P - Fixed compilation issue on s5pc100 - Removed empty line from mach-exynos/Makefile - Removed SAMSUNG_GPIOLIB_4BIT selection from ARCH_EXYNOS - Sorted Kconfig and Makefile entries - Added additional cleanup from Arnd (split and slightly modified) Tomasz Figa (38): ARM: EXYNOS: Remove unused board files ARM: EXYNOS: Make ARCH_EXYNOS select USE_OF ARM: SAMSUNG: Introduce SAMSUNG_ATAGS Kconfig entry ARM: EXYNOS: common: Remove legacy PMU initialization code ARM: EXYNOS: common: Remove legacy EINT initialization code ARM: EXYNOS: common: Remove legacy UART initialization code ARM: EXYNOS: Remove legacy dev- and setup- files ARM: EXYNOS: common: Remove legacy interrupt initialization code ARM: EXYNOS: common: Remove legacy timer initialization code ARM: EXYNOS: common: Remove platform device initialization ARM: EXYNOS: common: Remove legacy mapping of chip ID block ARM: EXYNOS: firmware: Remove check for device tree presence ARM: EXYNOS: pm_domains: Remove legacy power domain registration code ARM: SAMSUNG: Introduce GPIO_SAMSUNG Kconfig entry ARM: EXYNOS: Provide compatibility stubs for PM code in pm-core.h header ARM: SAMSUNG: Compile legacy IRQ and GPIO PM code only with ATAGS support [media] platform: Check for ARCH_EXYNOS separately USB: Check for ARCH_EXYNOS separately ARM: EXYNOS: Decouple ARCH_EXYNOS from PLAT_S5P ARM: SAMSUNG: pm: Include most of mach/ headers conditionally ARM: EXYNOS: Do not select legacy Kconfig symbols any more ARM: EXYNOS: Remove setup-i2c0.c ARM: EXYNOS: Remove mach/gpio.h ARM: EXYNOS: Remove mach/regs-gpio.h header ARM: SAMSUNG: Make legacy MFC support code depend on SAMSUNG_ATAGS ARM: EXYNOS: Select SPARSE_IRQ for Exynos ARM: EXYNOS: Remove mach/irqs.h header ARM: EXYNOS: Remove unused base addresses from mach/map.h header thermal: exynos: Support both Exynos4x12 SoCs ARM: EXYNOS: Remove CONFIG_SOC_EXYNOS4412 cpufreq: exynos4x12: Remove check for SOC_EXYNOS4412 [media] exynos4-is: Remove check for SOC_EXYNOS4412 thermal: exynos: Remove check for SOC_EXYNOS4412 ARM: EXYNOS: Remove mach/regs-usb-phy.h header ARM: EXYNOS: Remove custom init_irq callbacks ARM: EXYNOS: Use exynos_init_io() as map_io callback ARM: EXYNOS: Remove legacy L2X0 initialization ARM: EXYNOS: Remove remaining dead code after non-DT support removal arch/arm/Kconfig | 15 +- arch/arm/Makefile|1 + arch/arm/mach-exynos/Kconfig | 31 +- arch/arm/mach-exynos/Makefile|7 - arch/arm/mach-exynos/common.c| 537 + arch/arm/mach-exynos/common.h|4 +- arch/arm/mach-exynos/dev-audio.c | 254 arch/arm/mach-exynos/dev-uart.c | 55 - arch/arm/mach-exynos/firmware.c | 22 +- arch/arm/mach-exynos/include/mach/gpio.h | 289 - arch/arm/mach-exynos/include/mach/irqs.h | 476 arch/arm/mach-exynos/include/mach/map.h | 218 +--- arch/arm/mach-exynos/include/mach/pm-core.h | 12 +- arch/arm/mach-exynos/include/mach/regs-gpio.h| 40 - arch/arm/mach-exynos/include/mach/regs-usb-phy.h | 74 -- arch/arm/mach-exynos/mach-armlex4210.c | 207 arch/arm/mach-exynos/mach-exynos4-dt.c |8 +- arch/arm/mach-exynos/mach-exynos5-dt.c |8 +- arch/arm/mach-exynos/mach-nuri.c | 1388 -- arch/arm/mach-exynos/mach-origen.c | 823 - arch/arm/mach-exynos/mach-smdk4x12.c | 396 -- arch/arm/mach-exynos/mach-smdkv310.c | 444 --- arch/arm/mach-exynos/mach-universal_c210.c | 1159 -- arch/arm/mach-exynos/pm.c|1 - arch/arm/mach-exynos/pm_domains.c| 94 +- arch/arm/mach-exynos/setup-fimc.c| 44 - arch/arm/mach-exynos/setup-fimd0.c | 43 - arch/arm/mach-exynos/setup-i2c0.c| 29 - arch/arm/mach-exynos/setup-i2c1.c| 23 - arch/arm/mach-exynos/setup-i2c2.c| 23 - arch/arm/mach-exynos/setup-i2c3.c| 23 - arch/arm/mach-exynos/setup-i2c4.c| 23 -
Re: [PATCH v2 00/38] Thirty eight patches big Exynos cleanup
On Monday 17 June 2013, Tomasz Figa wrote: As I promised, I am doing some spring (or rather summer) cleaning of Exynos- and Samsung- related code. This first part consists mostly of removing dead code remaining after removal of ATAGS support for Exynos, but several patches cleans up other things found by the way. See particular patches for more detailed description. On Exynos4210-based Trats board: Tested-by: Tomasz Figa t.f...@samsung.com Looks all good to me. Acked-by: Arnd Bergmann a...@arndb.de -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html