summaryrefslogtreecommitdiff
path: root/lib/caps.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/caps.c')
-rw-r--r--lib/caps.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/caps.c b/lib/caps.c
index 00b9653..6574a10 100644
--- a/lib/caps.c
+++ b/lib/caps.c
@@ -15,8 +15,11 @@ pci_add_cap(struct pci_dev *d, unsigned int addr, unsigned int id, unsigned int
{
struct pci_cap *cap = pci_malloc(d->access, sizeof(*cap));
- cap->next = d->first_cap;
- d->first_cap = cap;
+ if (d->last_cap)
+ d->last_cap->next = cap;
+ else
+ d->first_cap = cap;
+ d->last_cap = cap;
cap->addr = addr;
cap->id = id;
cap->type = type;