Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 43730
b: refs/heads/master
c: b103b5c
h: refs/heads/master
v: v3
  • Loading branch information
Jiri Slaby authored and Linus Torvalds committed Dec 8, 2006
1 parent 7612e78 commit 236773f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 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: a00f33f3ab6385ef24f6e88bf970e8ac32b24099
refs/heads/master: b103b5cfcb8e6703b40124da631adfdd1470d878
15 changes: 11 additions & 4 deletions trunk/drivers/char/istallion.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ static struct asystats stli_cdkstats;

/*****************************************************************************/

static DEFINE_MUTEX(stli_brdslock);
static struct stlibrd *stli_brds[STL_MAXBRDS];

static int stli_shared;
Expand Down Expand Up @@ -3677,8 +3678,6 @@ static int stli_startbrd(struct stlibrd *brdp)

static int __devinit stli_brdinit(struct stlibrd *brdp)
{
stli_brds[brdp->brdnr] = brdp;

switch (brdp->brdtype) {
case BRD_ECP:
case BRD_ECPE:
Expand Down Expand Up @@ -3896,6 +3895,7 @@ static int stli_findeisabrds(void)
outb(0x1, (iobase + 0xc84));
if (stli_eisamemprobe(brdp))
outb(0, (iobase + 0xc84));
stli_brds[brdp->brdnr] = brdp;
stli_brdinit(brdp);
}

Expand Down Expand Up @@ -3933,14 +3933,18 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev,
retval = -ENOMEM;
goto err;
}
mutex_lock(&stli_brdslock);
brdnr = stli_getbrdnr();
if (brdnr < 0) { /* TODO: locking */
if (brdnr < 0) {
printk(KERN_INFO "STALLION: too many boards found, "
"maximum supported %d\n", STL_MAXBRDS);
mutex_unlock(&stli_brdslock);
retval = -EIO;
goto err_fr;
}
brdp->brdnr = (unsigned int)brdnr;
stli_brds[brdp->brdnr] = brdp;
mutex_unlock(&stli_brdslock);
brdp->brdtype = BRD_ECPPCI;
/*
* We have all resources from the board, so lets setup the actual
Expand All @@ -3950,11 +3954,13 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev,
brdp->memaddr = pci_resource_start(pdev, 2);
retval = stli_brdinit(brdp);
if (retval)
goto err_fr;
goto err_null;

pci_set_drvdata(pdev, brdp);

return 0;
err_null:
stli_brds[brdp->brdnr] = NULL;
err_fr:
kfree(brdp);
err:
Expand Down Expand Up @@ -4026,6 +4032,7 @@ static int stli_initbrds(void)
brdp->brdtype = conf.brdtype;
brdp->iobase = conf.ioaddr1;
brdp->memaddr = conf.memaddr;
stli_brds[brdp->brdnr] = brdp;
stli_brdinit(brdp);
}

Expand Down

0 comments on commit 236773f

Please sign in to comment.