conf1_read(struct pci_dev *d, int pos, byte *buf, int len)
{
int addr = 0xcfc + (pos&3);
+
+ if (pos >= 256)
+ return 0;
+
outl(0x80000000 | ((d->bus & 0xff) << 16) | (PCI_DEVFN(d->dev, d->func) << 8) | (pos&~3), 0xcf8);
switch (len)
conf1_write(struct pci_dev *d, int pos, byte *buf, int len)
{
int addr = 0xcfc + (pos&3);
+
+ if (pos >= 256)
+ return 0;
+
outl(0x80000000 | ((d->bus & 0xff) << 16) | (PCI_DEVFN(d->dev, d->func) << 8) | (pos&~3), 0xcf8);
switch (len)
{
int addr = 0xc000 | (d->dev << 8) | pos;
+ if (pos >= 256)
+ return 0;
+
if (d->dev >= 16)
/* conf2 supports only 16 devices per bus */
return 0;
{
int addr = 0xc000 | (d->dev << 8) | pos;
+ if (pos >= 256)
+ return 0;
+
if (d->dev >= 16)
d->access->error("conf2_write: only first 16 devices exist.");
outb((d->func << 1) | 0xf0, 0xcf8);