lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAErSpo7aj8WfH_aQQMQaQwYV2Y2R_e787rXQo4EVsKbOFq-DuA@mail.gmail.com>
Date:	Mon, 7 Jan 2013 11:48:12 -0700
From:	Bjorn Helgaas <bhelgaas@...gle.com>
To:	Sasha Levin <sasha.levin@...cle.com>
Cc:	Alan Cox <alan@...ux.intel.com>, linux-pci@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] PCI: cpqphp: minor cleanup and removal of unreachable paths

On Thu, Dec 20, 2012 at 12:11 PM, Sasha Levin <sasha.levin@...cle.com> wrote:
> Remove cases of redundant checks and remote unreachable paths.
>
> Signed-off-by: Sasha Levin <sasha.levin@...cle.com>

Thanks, Sasha.  I applied this for v3.9.

> ---
>  drivers/pci/hotplug/cpqphp_ctrl.c | 57 ++++++++++++++-------------------------
>  1 file changed, 20 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c
> index 36112fe..d282019 100644
> --- a/drivers/pci/hotplug/cpqphp_ctrl.c
> +++ b/drivers/pci/hotplug/cpqphp_ctrl.c
> @@ -1900,8 +1900,7 @@ static void interrupt_event_handler(struct controller *ctrl)
>                                         dbg("power fault\n");
>                                 } else {
>                                         /* refresh notification */
> -                                       if (p_slot)
> -                                               update_slot_info(ctrl, p_slot);
> +                                       update_slot_info(ctrl, p_slot);
>                                 }
>
>                                 ctrl->event_queue[loop].event_type = 0;
> @@ -2520,44 +2519,28 @@ static int configure_new_function(struct controller *ctrl, struct pci_func *func
>
>                 /* If we have IO resources copy them and fill in the bridge's
>                  * IO range registers */
> -               if (io_node) {
> -                       memcpy(hold_IO_node, io_node, sizeof(struct pci_resource));
> -                       io_node->next = NULL;
> +               memcpy(hold_IO_node, io_node, sizeof(struct pci_resource));
> +               io_node->next = NULL;
>
> -                       /* set IO base and Limit registers */
> -                       temp_byte = io_node->base >> 8;
> -                       rc = pci_bus_write_config_byte(pci_bus, devfn, PCI_IO_BASE, temp_byte);
> +               /* set IO base and Limit registers */
> +               temp_byte = io_node->base >> 8;
> +               rc = pci_bus_write_config_byte(pci_bus, devfn, PCI_IO_BASE, temp_byte);
>
> -                       temp_byte = (io_node->base + io_node->length - 1) >> 8;
> -                       rc = pci_bus_write_config_byte(pci_bus, devfn, PCI_IO_LIMIT, temp_byte);
> -               } else {
> -                       kfree(hold_IO_node);
> -                       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);
> +               temp_byte = (io_node->base + io_node->length - 1) >> 8;
> +               rc = pci_bus_write_config_byte(pci_bus, devfn, PCI_IO_LIMIT, temp_byte);
>
> -                       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);
> +               /* Copy the memory resources and fill in the bridge's memory
> +                * range registers.
> +                */
> +               memcpy(hold_mem_node, mem_node, sizeof(struct pci_resource));
> +               mem_node->next = NULL;
>
> -                       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;
> @@ -2627,7 +2610,7 @@ static int configure_new_function(struct controller *ctrl, struct pci_func *func
>                 /* Return unused bus resources
>                  * First use the temporary node to store information for
>                  * the board */
> -               if (hold_bus_node && bus_node && temp_resources.bus_head) {
> +               if (bus_node && temp_resources.bus_head) {
>                         hold_bus_node->length = bus_node->base - hold_bus_node->base;
>
>                         hold_bus_node->next = func->bus_head;
> @@ -2751,7 +2734,7 @@ static int configure_new_function(struct controller *ctrl, struct pci_func *func
>                 }
>                 /* If we have prefetchable memory space available and there
>                  * is some left at the end, return the unused portion */
> -               if (hold_p_mem_node && temp_resources.p_mem_head) {
> +               if (temp_resources.p_mem_head) {
>                         p_mem_node = do_pre_bridge_resource_split(&(temp_resources.p_mem_head),
>                                                                   &hold_p_mem_node, 0x100000);
>
> --
> 1.8.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ