PCI: Fix uninitialized variable bug in AER injection code
authorWanlong Gao <wanlong.gao@gmail.com>
Mon, 4 Apr 2011 09:12:59 +0000 (17:12 +0800)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 10 May 2011 22:43:30 +0000 (15:43 -0700)
If it was preempted, and the variable aer_mask_override is changed
after the spin_unlock_irqrestore it will write an uninitialized
variable by the pci_write_config_dword() function.

Signed-off-by: Wanlong Gao <wanlong.gao@gmail.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/pcie/aer/aer_inject.c

index f62079f..95489cd 100644 (file)
@@ -326,7 +326,7 @@ static int aer_inject(struct aer_error_inj *einj)
        unsigned long flags;
        unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn);
        int pos_cap_err, rp_pos_cap_err;
-       u32 sever, cor_mask, uncor_mask, cor_mask_orig, uncor_mask_orig;
+       u32 sever, cor_mask, uncor_mask, cor_mask_orig = 0, uncor_mask_orig = 0;
        int ret = 0;
 
        dev = pci_get_domain_bus_and_slot((int)einj->domain, einj->bus, devfn);