staging: gasket: page table: hold references to device and pci_dev
authorTodd Poynor <toddpoynor@google.com>
Sun, 29 Jul 2018 19:36:36 +0000 (12:36 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Jul 2018 08:54:50 +0000 (10:54 +0200)
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>
drivers/staging/gasket/gasket_page_table.c

index b9304d2..6b946a1 100644 (file)
@@ -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);
 }