From 1b72d10b886007b0137c5cbb37ca95966694d358 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 14 Apr 2009 11:16:08 +0100 Subject: [PATCH] linux/pci_back: fix NULL pointer ref. pcistub_device_release() can be called during initialization. Thus pci_get_drvdata() can return NULL. Fix it by inserting NULL check. Signed-off-by: Isaku Yamahata --- drivers/xen/pciback/conf_space.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/xen/pciback/conf_space.c b/drivers/xen/pciback/conf_space.c index 0c4dd490..0c76db1d 100644 --- a/drivers/xen/pciback/conf_space.c +++ b/drivers/xen/pciback/conf_space.c @@ -297,6 +297,8 @@ void pciback_config_free_dyn_fields(struct pci_dev *dev) dev_dbg(&dev->dev, "free-ing dynamically allocated virtual configuration space fields\n"); + if (!dev_data) + return; list_for_each_entry_safe(cfg_entry, t, &dev_data->config_fields, list) { field = cfg_entry->field; @@ -321,6 +323,8 @@ void pciback_config_reset_dev(struct pci_dev *dev) const struct config_field *field; dev_dbg(&dev->dev, "resetting virtual configuration space\n"); + if (!dev_data) + return; list_for_each_entry(cfg_entry, &dev_data->config_fields, list) { field = cfg_entry->field; @@ -337,6 +341,8 @@ void pciback_config_free_dev(struct pci_dev *dev) const struct config_field *field; dev_dbg(&dev->dev, "free-ing virtual configuration space fields\n"); + if (!dev_data) + return; list_for_each_entry_safe(cfg_entry, t, &dev_data->config_fields, list) { list_del(&cfg_entry->list); -- 2.39.5