lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 10 Mar 2017 17:16:28 +0000
From:   James Morse <james.morse@....com>
To:     Shiju Jose <shiju.jose@...wei.com>
CC:     "catalin.marinas@....com" <catalin.marinas@....com>,
        "will.deacon@....com" <will.deacon@....com>,
        "tbaicar@...eaurora.org" <tbaicar@...eaurora.org>,
        "zjzhang@...eaurora.org" <zjzhang@...eaurora.org>,
        "marc.zyngier@....com" <marc.zyngier@....com>,
        "xuwei (O)" <xuwei5@...ilicon.com>,
        Gabriele Paoloni <gabriele.paoloni@...wei.com>,
        John Garry <john.garry@...wei.com>,
        "Guohanjun (Hanjun Guo)" <guohanjun@...wei.com>,
        "Zhengqiang (turing)" <zhengqiang10@...wei.com>,
        Xiexiuqi <xiexiuqi@...wei.com>,
        "fu.wei@...aro.org" <fu.wei@...aro.org>,
        "wangxiongfeng (C)" <wangxiongfeng2@...wei.com>,
        "linux-arm-kernel@...ts.infradead.org" 
        <linux-arm-kernel@...ts.infradead.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>
Subject: Re: {RFC PATCH v1 v4.11-rc1 1/1} acpi: apei: common handler in ghes
 for HW errors notified via hed(PNP0C33) driver

Hi Shiju,

On 07/03/17 16:07, Shiju Jose wrote:
> Add common handler in ghes for HW errors notified via hed(PNP0C33) driver.
> 1. Rename ghes_notify_sci() to ghes_notify_hed().
> 2. Rename struct notifier_block ghes_notifier_sci to
>    struct notifier_block ghes_notifier_hed.
> 3. Rename ghes_sci list to ghes_hed.
> 4. Make ghes_notify_hed as common handler for
>    notification types SCI, GSIV and GPIO.
> 

I think the code here is fine, but we need to put this in front of the ACPI
maintainers, and if we can, make their job easy.

How did you come up with the CC list for this patch? scripts/get_maintainer.pl
lists:
> "Rafael J. Wysocki" <rjw@...ysocki.net> (supporter:ACPI,commit_signer:2/4=50%)
> Len Brown <lenb@...nel.org> (supporter:ACPI)

as the maintainers for the file changed by this patch, but they weren't CCd.

Did you use git format-patch to create this? All the other patches on the list
have subjects of the form "[PATCH] acpi: apei....", the {}s confuse 'git am'
meaning whoever applies this would have to edit your patch before applying it.


Your commit message doesn't add anything that wasn't in the subject-line. It
should describe the reason for the change. Based on Hanjun's explanation I can
offer:
---
System Controller Interrupts are received by ACPI's error device, which in turn
notifies the GHES code. The same is true of APEI's GSIV and GPIO notification types.
Add support for GSIV and GPIO sharing the SCI register/unregister/notifier code.
Rename the list and notifier to show this is no longer just SCI, but anything
from the Hardware Error Device.

---

If you're confident you solved this the right way, (which I think we are), you
should drop the 'RFC' from the subject. RFC indicates you don't think this
should be merged you just want feedback.



Thanks,

James


> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index b192b42..fd39929 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -89,14 +89,14 @@
>  module_param_named(disable, ghes_disable, bool, 0);
>  
>  /*
> - * All error sources notified with SCI shares one notifier function,
> + * All error sources notified with HED shares one notifier function,
>   * so they need to be linked and checked one by one.  This is applied
>   * to NMI too.
>   *
>   * RCU is used for these lists, so ghes_list_mutex is only used for
>   * list changing, not for traversing.
>   */
> -static LIST_HEAD(ghes_sci);
> +static LIST_HEAD(ghes_hed);
>  static DEFINE_MUTEX(ghes_list_mutex);
>  
>  /*
> @@ -702,14 +702,14 @@ static irqreturn_t ghes_irq_func(int irq, void *data)
>  	return IRQ_HANDLED;
>  }
>  
> -static int ghes_notify_sci(struct notifier_block *this,
> +static int ghes_notify_hed(struct notifier_block *this,
>  				  unsigned long event, void *data)
>  {
>  	struct ghes *ghes;
>  	int ret = NOTIFY_DONE;
>  
>  	rcu_read_lock();
> -	list_for_each_entry_rcu(ghes, &ghes_sci, list) {
> +	list_for_each_entry_rcu(ghes, &ghes_hed, list) {
>  		if (!ghes_proc(ghes))
>  			ret = NOTIFY_OK;
>  	}
> @@ -718,8 +718,8 @@ static int ghes_notify_sci(struct notifier_block *this,
>  	return ret;
>  }
>  
> -static struct notifier_block ghes_notifier_sci = {
> -	.notifier_call = ghes_notify_sci,
> +static struct notifier_block ghes_notifier_hed = {
> +	.notifier_call = ghes_notify_hed,
>  };
>  
>  #ifdef CONFIG_HAVE_ACPI_APEI_NMI
> @@ -966,6 +966,8 @@ static int ghes_probe(struct platform_device *ghes_dev)
>  	case ACPI_HEST_NOTIFY_POLLED:
>  	case ACPI_HEST_NOTIFY_EXTERNAL:
>  	case ACPI_HEST_NOTIFY_SCI:
> +	case ACPI_HEST_NOTIFY_GSIV:
> +	case ACPI_HEST_NOTIFY_GPIO:
>  		break;
>  	case ACPI_HEST_NOTIFY_NMI:
>  		if (!IS_ENABLED(CONFIG_HAVE_ACPI_APEI_NMI)) {
> @@ -1026,10 +1028,12 @@ static int ghes_probe(struct platform_device *ghes_dev)
>  		}
>  		break;
>  	case ACPI_HEST_NOTIFY_SCI:
> +	case ACPI_HEST_NOTIFY_GSIV:
> +	case ACPI_HEST_NOTIFY_GPIO:
>  		mutex_lock(&ghes_list_mutex);
> -		if (list_empty(&ghes_sci))
> -			register_acpi_hed_notifier(&ghes_notifier_sci);
> -		list_add_rcu(&ghes->list, &ghes_sci);
> +		if (list_empty(&ghes_hed))
> +			register_acpi_hed_notifier(&ghes_notifier_hed);
> +		list_add_rcu(&ghes->list, &ghes_hed);
>  		mutex_unlock(&ghes_list_mutex);
>  		break;
>  	case ACPI_HEST_NOTIFY_NMI:
> @@ -1068,10 +1072,12 @@ static int ghes_remove(struct platform_device *ghes_dev)
>  		free_irq(ghes->irq, ghes);
>  		break;
>  	case ACPI_HEST_NOTIFY_SCI:
> +	case ACPI_HEST_NOTIFY_GSIV:
> +	case ACPI_HEST_NOTIFY_GPIO:
>  		mutex_lock(&ghes_list_mutex);
>  		list_del_rcu(&ghes->list);
> -		if (list_empty(&ghes_sci))
> -			unregister_acpi_hed_notifier(&ghes_notifier_sci);
> +		if (list_empty(&ghes_hed))
> +			unregister_acpi_hed_notifier(&ghes_notifier_hed);
>  		mutex_unlock(&ghes_list_mutex);
>  		break;
>  	case ACPI_HEST_NOTIFY_NMI:
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ