If !mem_node we did already return -ENOMEM above in the function.

Spotted by the Coverity checker.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

---

 drivers/pci/hotplug/cpqphp_ctrl.c |   28 +++++++---------------------
 1 file changed, 7 insertions(+), 21 deletions(-)

--- linux-2.6.22-rc6-mm1/drivers/pci/hotplug/cpqphp_ctrl.c.old  2007-07-23 
15:13:27.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/pci/hotplug/cpqphp_ctrl.c      2007-07-23 
15:15:22.000000000 +0200
@@ -2558,29 +2558,15 @@ static int configure_new_function(struct
                        hold_IO_node = NULL;
                }
 
-               /* If we have memory resources copy them and fill in the
-                * bridge's memory range registers.  Otherwise, fill in the
-                * range registers with values that disable them. */
-               if (mem_node) {
-                       memcpy(hold_mem_node, mem_node, sizeof(struct 
pci_resource));
-                       mem_node->next = NULL;
-
-                       /* set Mem base and Limit registers */
-                       temp_word = mem_node->base >> 16;
-                       rc = pci_bus_write_config_word(pci_bus, devfn, 
PCI_MEMORY_BASE, temp_word);
+               memcpy(hold_mem_node, mem_node, sizeof(struct pci_resource));
+               mem_node->next = NULL;
 
-                       temp_word = (mem_node->base + mem_node->length - 1) >> 
16;
-                       rc = pci_bus_write_config_word(pci_bus, devfn, 
PCI_MEMORY_LIMIT, temp_word);
-               } else {
-                       temp_word = 0xFFFF;
-                       rc = pci_bus_write_config_word(pci_bus, devfn, 
PCI_MEMORY_BASE, temp_word);
-
-                       temp_word = 0x0000;
-                       rc = pci_bus_write_config_word(pci_bus, devfn, 
PCI_MEMORY_LIMIT, temp_word);
+               /* set Mem base and Limit registers */
+               temp_word = mem_node->base >> 16;
+               rc = pci_bus_write_config_word(pci_bus, devfn, PCI_MEMORY_BASE, 
temp_word);
 
-                       kfree(hold_mem_node);
-                       hold_mem_node = NULL;
-               }
+               temp_word = (mem_node->base + mem_node->length - 1) >> 16;
+               rc = pci_bus_write_config_word(pci_bus, devfn, 
PCI_MEMORY_LIMIT, temp_word);
 
                memcpy(hold_p_mem_node, p_mem_node, sizeof(struct 
pci_resource));
                p_mem_node->next = NULL;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to