Skip to content

Commit

Permalink
FMC: show_sdb_tree: fix offset calculation
Browse files Browse the repository at this point in the history
The code reported wrong addresses in the sdb dumps.  All sdb addresses
are relative, but the code was adding the base address twice.  Bug
exposed by a gateware image with two bridge levels.

Thanks David for reporting the problem.

Signed-off-by: Alessandro Rubini <[email protected]>
Reported-by: Juan David Gonzalez Cobas <[email protected]>
Tested-by: Juan David Gonzalez Cobas <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
rubini authored and gregkh committed Feb 15, 2014
1 parent e4d6c4b commit 83b1bfb
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions drivers/fmc/fmc-sdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,20 +153,17 @@ EXPORT_SYMBOL(fmc_reprogram);
static void __fmc_show_sdb_tree(const struct fmc_device *fmc,
const struct sdb_array *arr)
{
unsigned long base = arr->baseaddr;
int i, j, n = arr->len, level = arr->level;
const struct sdb_array *ap;

for (i = 0; i < n; i++) {
unsigned long base;
union sdb_record *r;
struct sdb_product *p;
struct sdb_component *c;
r = &arr->record[i];
c = &r->dev.sdb_component;
p = &c->product;
base = 0;
for (ap = arr; ap; ap = ap->parent)
base += ap->baseaddr;

dev_info(&fmc->dev, "SDB: ");

for (j = 0; j < level; j++)
Expand Down

0 comments on commit 83b1bfb

Please sign in to comment.