summaryrefslogtreecommitdiff
path: root/drivers/staging/gasket
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2018-07-29 12:36:36 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-30 10:54:50 +0200
commitdd9d1502feea3c23d412f289aad79e1d4e86d45d (patch)
tree35b4051273572f5621ba31bcd3d799f0a8c2c635 /drivers/staging/gasket
parent34cf3ea8dae7f0aa2ab544c1d30a803016af779e (diff)
staging: gasket: page table: hold references to device and pci_dev
Hold references to the struct device and the pci_dev for the page table while the data structures contian pointers to these. Signed-off-by: Todd Poynor <toddpoynor@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/gasket')
-rw-r--r--drivers/staging/gasket/gasket_page_table.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/gasket/gasket_page_table.c b/drivers/staging/gasket/gasket_page_table.c
index b9304d221722..6b946a155ee3 100644
--- a/drivers/staging/gasket/gasket_page_table.c
+++ b/drivers/staging/gasket/gasket_page_table.c
@@ -345,8 +345,8 @@ int gasket_page_table_init(
bar_data->virt_base[page_table_config->base_reg]);
pg_tbl->extended_offset_reg = (u64 __iomem *)&(
bar_data->virt_base[page_table_config->extended_reg]);
- pg_tbl->device = device;
- pg_tbl->pci_dev = pci_dev;
+ pg_tbl->device = get_device(device);
+ pg_tbl->pci_dev = pci_dev_get(pci_dev);
dev_dbg(device, "Page table initialized successfully\n");
@@ -364,6 +364,8 @@ void gasket_page_table_cleanup(struct gasket_page_table *pg_tbl)
vfree(pg_tbl->entries);
pg_tbl->entries = NULL;
+ put_device(pg_tbl->device);
+ pci_dev_put(pg_tbl->pci_dev);
kfree(pg_tbl);
}