In the Linux kernel, the following vulnerability has been resolved: EDAC/skx_common: Fix general protection fault After loading i10nm_edac (which automatically loads skx_edac_common), if unload only i10nm_edac, then reload it and perform error injection testing, a general protection fault may occur: mce: [Hardware Error]: Machine check events logged Oops: general protection fault ... ... Workqueue: events mce_gen_pool_process RIP: 0010:string+0x53/0xe0 ... Call Trace: <TASK> ? die_addr+0x37/0x90 ? exc_general_protection+0x1e7/0x3f0 ? asm_exc_general_protection+0x26/0x30 ? string+0x53/0xe0 vsnprintf+0x23e/0x4c0 snprintf+0x4d/0x70 skx_adxl_decode+0x16a/0x330 [skx_edac_common] skx_mce_check_error.part.0+0xf8/0x220 [skx_edac_common] skx_mce_check_error+0x17/0x20 [skx_edac_common] ... The issue arose was because the variable 'adxl_component_count' (inside skx_edac_common), which counts the ADXL components, was not reset. During the reloading of i10nm_edac, the count was incremented by the actual number of ADXL components again, resulting in a count that was double the real number of ADXL components. This led to an out-of-bounds reference to the ADXL component array, causing the general protection fault above. Fix this issue by resetting the 'adxl_component_count' in adxl_put(), which is called during the unloading of {skx,i10nm}_edac.
https://git.kernel.org/stable/c/e8530ed3c0769a4d8f79c212715ec1cf277787f8
https://git.kernel.org/stable/c/bf6a8502a5f4ff6e4d135d795945cdade49ec8b0
https://git.kernel.org/stable/c/a6ed3a6edff09c1187cc6ade7f5967bca2376a13
https://git.kernel.org/stable/c/a13e8343ffcff27af1ff79597ff7ba241e6d9471
https://git.kernel.org/stable/c/80bf28fd623d97dd4f4825fbbe9d736cec2afba3
https://git.kernel.org/stable/c/3f5d0659000923735350da60ad710f8c804544fe
https://git.kernel.org/stable/c/31ef6f7c9aee3be78d63789653e92350f2537f93
https://git.kernel.org/stable/c/20d2d476b3ae18041be423671a8637ed5ffd6958