Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 24138
b: refs/heads/master
c: 18dbc33
h: refs/heads/master
v: v3
  • Loading branch information
Dave Peterson authored and Linus Torvalds committed Mar 26, 2006
1 parent a316c3c commit 4131505
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 50 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 472678ebd30d87cbe8d97562dcc0e46d1076040f
refs/heads/master: 18dbc337af5d6efd30cb9291e74722c8ad134fd3
5 changes: 2 additions & 3 deletions trunk/drivers/edac/amd76x_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,10 +314,9 @@ static void __devexit amd76x_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

if ((mci = edac_mc_find_mci_by_pdev(pdev)) == NULL)
return;
if (edac_mc_del_mc(mci))
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

edac_mc_free(mci);
}

Expand Down
5 changes: 1 addition & 4 deletions trunk/drivers/edac/e752x_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -976,10 +976,7 @@ static void __devexit e752x_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

if ((mci = edac_mc_find_mci_by_pdev(pdev)) == NULL)
return;

if (edac_mc_del_mc(mci))
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

pvt = (struct e752x_pvt *) mci->pvt_info;
Expand Down
12 changes: 6 additions & 6 deletions trunk/drivers/edac/e7xxx_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -510,12 +510,12 @@ static void __devexit e7xxx_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

if (((mci = edac_mc_find_mci_by_pdev(pdev)) != 0) &&
!edac_mc_del_mc(mci)) {
pvt = (struct e7xxx_pvt *) mci->pvt_info;
pci_dev_put(pvt->bridge_ck);
edac_mc_free(mci);
}
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

pvt = (struct e7xxx_pvt *) mci->pvt_info;
pci_dev_put(pvt->bridge_ck);
edac_mc_free(mci);
}


Expand Down
40 changes: 18 additions & 22 deletions trunk/drivers/edac/edac_mc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1370,11 +1370,7 @@ void edac_mc_free(struct mem_ctl_info *mci)
kfree(mci);
}



EXPORT_SYMBOL(edac_mc_find_mci_by_pdev);

struct mem_ctl_info *edac_mc_find_mci_by_pdev(struct pci_dev *pdev)
static struct mem_ctl_info *find_mci_by_pdev(struct pci_dev *pdev)
{
struct mem_ctl_info *mci;
struct list_head *item;
Expand All @@ -1401,7 +1397,7 @@ static int add_mc_to_global_list (struct mem_ctl_info *mci)
mci->mc_idx = 0;
insert_before = &mc_devices;
} else {
if (edac_mc_find_mci_by_pdev(mci->pdev)) {
if (find_mci_by_pdev(mci->pdev)) {
edac_printk(KERN_WARNING, EDAC_MC,
"%s (%s) %s %s already assigned %d\n",
mci->pdev->dev.bus_id,
Expand Down Expand Up @@ -1520,27 +1516,29 @@ EXPORT_SYMBOL(edac_mc_del_mc);
/**
* edac_mc_del_mc: Remove sysfs entries for specified mci structure and
* remove mci structure from global list
* @mci: Pointer to struct mem_ctl_info structure
* @pdev: Pointer to 'struct pci_dev' representing mci structure to remove.
*
* Returns:
* 0 Success
* 1 Failure
* Return pointer to removed mci structure, or NULL if device not found.
*/
int edac_mc_del_mc(struct mem_ctl_info *mci)
struct mem_ctl_info * edac_mc_del_mc(struct pci_dev *pdev)
{
int rc = 1;
struct mem_ctl_info *mci;

debugf0("MC%d: %s()\n", mci->mc_idx, __func__);
edac_remove_sysfs_mci_device(mci);
debugf0("MC: %s()\n", __func__);
down(&mem_ctls_mutex);

if ((mci = find_mci_by_pdev(pdev)) == NULL) {
up(&mem_ctls_mutex);
return NULL;
}

edac_remove_sysfs_mci_device(mci);
del_mc_from_global_list(mci);
up(&mem_ctls_mutex);
edac_printk(KERN_INFO, EDAC_MC,
"Removed device %d for %s %s: PCI %s\n", mci->mc_idx,
mci->mod_name, mci->ctl_name, pci_name(mci->pdev));
rc = 0;
up(&mem_ctls_mutex);

return rc;
return mci;
}


Expand Down Expand Up @@ -2018,14 +2016,12 @@ static inline void clear_pci_parity_errors(void)
*/
static inline void check_mc_devices (void)
{
unsigned long flags;
struct list_head *item;
struct mem_ctl_info *mci;

debugf3("%s()\n", __func__);

/* during poll, have interrupts off */
local_irq_save(flags);
down(&mem_ctls_mutex);

list_for_each(item, &mc_devices) {
mci = list_entry(item, struct mem_ctl_info, link);
Expand All @@ -2034,7 +2030,7 @@ static inline void check_mc_devices (void)
mci->edac_check(mci);
}

local_irq_restore(flags);
up(&mem_ctls_mutex);
}


Expand Down
5 changes: 1 addition & 4 deletions trunk/drivers/edac/edac_mc.h
Original file line number Diff line number Diff line change
Expand Up @@ -410,14 +410,11 @@ void edac_mc_dump_csrow(struct csrow_info *csrow);
#endif /* CONFIG_EDAC_DEBUG */

extern int edac_mc_add_mc(struct mem_ctl_info *mci);
extern int edac_mc_del_mc(struct mem_ctl_info *mci);
extern struct mem_ctl_info * edac_mc_del_mc(struct pci_dev *pdev);

extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
unsigned long page);

extern struct mem_ctl_info *edac_mc_find_mci_by_pdev(struct pci_dev
*pdev);

extern void edac_mc_scrub_block(unsigned long page,
unsigned long offset, u32 size);

Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/edac/i82860_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,9 +237,10 @@ static void __devexit i82860_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

mci = edac_mc_find_mci_by_pdev(pdev);
if ((mci != NULL) && (edac_mc_del_mc(mci) == 0))
edac_mc_free(mci);
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

edac_mc_free(mci);
}

static const struct pci_device_id i82860_pci_tbl[] __devinitdata = {
Expand Down
5 changes: 1 addition & 4 deletions trunk/drivers/edac/i82875p_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ static void __devexit i82875p_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

if ((mci = edac_mc_find_mci_by_pdev(pdev)) == NULL)
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

pvt = (struct i82875p_pvt *) mci->pvt_info;
Expand All @@ -467,9 +467,6 @@ static void __devexit i82875p_remove_one(struct pci_dev *pdev)
pci_dev_put(pvt->ovrfl_pdev);
}

if (edac_mc_del_mc(mci))
return;

edac_mc_free(mci);
}

Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/edac/r82600_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,9 +353,10 @@ static void __devexit r82600_remove_one(struct pci_dev *pdev)

debugf0("%s()\n", __func__);

if (((mci = edac_mc_find_mci_by_pdev(pdev)) != NULL) &&
!edac_mc_del_mc(mci))
edac_mc_free(mci);
if ((mci = edac_mc_del_mc(pdev)) == NULL)
return;

edac_mc_free(mci);
}


Expand Down

0 comments on commit 4131505

Please sign in to comment.