[PATCH 0/2] EDAC/igen6: Avoid segmentation fault and add polling support

Orange Kao posted 2 patches 3 weeks, 1 day ago
There is a newer version of this series
[PATCH 0/2] EDAC/igen6: Avoid segmentation fault and add polling support
Posted by Orange Kao 3 weeks, 1 day ago
Hello. This is Orange from Aiven Australia. I want to propose two patches to fix
a bug that affects my machine with Intel N100.

Patch 1: Avoid segmentation fault during rmmod
Patch 2: Add polling support

The detailed reproduce steps has been documented in kernel bugzilla 219360.
Summary below

I have a PC with Intel N100 (with PCI device 8086:461c, DID_ADL_N_SKU4 in
igen6_edac.c) with a BIOS/UEFI that allows me to enable IBECC and error
injection.

Interrupt seems not working in Linux, but it seems able to detect the error when
"modprobe igen6_edac". I am not sure if this is a BIOS bug or not, but I have no
access to BIOS source code. So I tried to implement polling, and it seems to
work. My proposal in patch 2.

Also "rmmod igen6_edac" can trigger segmentation fault. It seems caused by
double kfree on the same memory address. I tried to fix it in patch 1.

Thanks for considering this. I am new to this area so I could be wrong, and I
might need extra help and guidance.
RE: [PATCH 0/2] EDAC/igen6: Avoid segmentation fault and add polling support
Posted by Zhuo, Qiuxu 3 weeks, 1 day ago
> From: Orange Kao <orange@aiven.io>
> [...]
> Subject: [PATCH 0/2] EDAC/igen6: Avoid segmentation fault and add polling
> support
> 
> Hello. This is Orange from Aiven Australia. I want to propose two patches to
> fix a bug that affects my machine with Intel N100.

Hi Orange, welcome! 
Feel free to propose your patches. :-)

> Patch 1: Avoid segmentation fault during rmmod Patch 2: Add polling support
> 
> The detailed reproduce steps has been documented in kernel bugzilla 219360.
> Summary below
> 
> I have a PC with Intel N100 (with PCI device 8086:461c, DID_ADL_N_SKU4 in
> igen6_edac.c) with a BIOS/UEFI that allows me to enable IBECC and error
> injection.
> 
> Interrupt seems not working in Linux, but it seems able to detect the error
> when "modprobe igen6_edac". I am not sure if this is a BIOS bug or not, but I
> have no access to BIOS source code. So I tried to implement polling, and it
> seems to work. My proposal in patch 2.

Good proposal. 

> Also "rmmod igen6_edac" can trigger segmentation fault. It seems caused by
> double kfree on the same memory address. I tried to fix it in patch 1.

Good finding. 

> Thanks for considering this. I am new to this area so I could be wrong, and I
> might need extra help and guidance.

You've already done well in this analysis and in providing patches. :-)
I'll review and add some minor comments to your patches. 
If they're OK with you, please re-send the patches after 
resolving the comments. 

Thank you for your cooperation.

-Qiuxu