]> git.baikalelectronics.ru Git - kernel.git/commitdiff
PCI/AER: Remove error source from AER struct aer_rpc
authorKeith Busch <keith.busch@intel.com>
Tue, 18 Sep 2018 23:58:42 +0000 (17:58 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 8 Oct 2018 17:18:12 +0000 (12:18 -0500)
The AER struct aer_rpc was carrying a copy of the error source simply as a
temperary variable.  Remove that from the structure and use a stack
variable for the purpose.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pcie/aer.c

index a41738ff33e1f357ac0e063df3241c6c72c6c1e1..85c713f6cfdb62120d31ea40788f62f6045a79ca 100644 (file)
@@ -44,7 +44,6 @@ struct aer_rpc {
        struct pci_dev *rpd;            /* Root Port device */
        struct work_struct dpc_handler;
        struct aer_err_source e_sources[AER_ERROR_SOURCES_MAX];
-       struct aer_err_info e_info;
        unsigned short prod_idx;        /* Error Producer Index */
        unsigned short cons_idx;        /* Error Consumer Index */
        int isr;
@@ -1176,7 +1175,7 @@ static void aer_isr_one_error(struct aer_rpc *rpc,
                struct aer_err_source *e_src)
 {
        struct pci_dev *pdev = rpc->rpd;
-       struct aer_err_info *e_info = &rpc->e_info;
+       struct aer_err_info e_info;
 
        pci_rootport_aer_stats_incr(pdev, e_src);
 
@@ -1185,36 +1184,36 @@ static void aer_isr_one_error(struct aer_rpc *rpc,
         * uncorrectable error being logged. Report correctable error first.
         */
        if (e_src->status & PCI_ERR_ROOT_COR_RCV) {
-               e_info->id = ERR_COR_ID(e_src->id);
-               e_info->severity = AER_CORRECTABLE;
+               e_info.id = ERR_COR_ID(e_src->id);
+               e_info.severity = AER_CORRECTABLE;
 
                if (e_src->status & PCI_ERR_ROOT_MULTI_COR_RCV)
-                       e_info->multi_error_valid = 1;
+                       e_info.multi_error_valid = 1;
                else
-                       e_info->multi_error_valid = 0;
-               aer_print_port_info(pdev, e_info);
+                       e_info.multi_error_valid = 0;
+               aer_print_port_info(pdev, &e_info);
 
-               if (find_source_device(pdev, e_info))
-                       aer_process_err_devices(e_info);
+               if (find_source_device(pdev, &e_info))
+                       aer_process_err_devices(&e_info);
        }
 
        if (e_src->status & PCI_ERR_ROOT_UNCOR_RCV) {
-               e_info->id = ERR_UNCOR_ID(e_src->id);
+               e_info.id = ERR_UNCOR_ID(e_src->id);
 
                if (e_src->status & PCI_ERR_ROOT_FATAL_RCV)
-                       e_info->severity = AER_FATAL;
+                       e_info.severity = AER_FATAL;
                else
-                       e_info->severity = AER_NONFATAL;
+                       e_info.severity = AER_NONFATAL;
 
                if (e_src->status & PCI_ERR_ROOT_MULTI_UNCOR_RCV)
-                       e_info->multi_error_valid = 1;
+                       e_info.multi_error_valid = 1;
                else
-                       e_info->multi_error_valid = 0;
+                       e_info.multi_error_valid = 0;
 
-               aer_print_port_info(pdev, e_info);
+               aer_print_port_info(pdev, &e_info);
 
-               if (find_source_device(pdev, e_info))
-                       aer_process_err_devices(e_info);
+               if (find_source_device(pdev, &e_info))
+                       aer_process_err_devices(&e_info);
        }
 }