Brandon,

Before slot_reset event is called io_error_detected could be called
(where pci_disable_device() is called), right? 

The pci_reenable_device() will call enable only if the device was
enabled before and would not be enabled if the device were disabled. Is
this the intended behavior?

Ram

> -----Original Message-----
> From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
> On Behalf Of Brandon Philips
> Sent: Thursday, August 02, 2007 3:44 PM
> To: [email protected]
> Cc: [EMAIL PROTECTED]; Brandon Philips
> Subject: [patch 1/5][RFC] NET: Change pci_enable_device
> topci_reenable_device to keep device enable balance
> 
> On a slot_reset event pci_disable_device() is never called so calling
> pci_enable_device() will unbalance the enable count.
> 
> Signed-off-by: Brandon Philips <[EMAIL PROTECTED]>
> 
> ---
>  drivers/net/e100.c             |    2 +-
>  drivers/net/e1000/e1000_main.c |    2 +-
>  drivers/net/ixgb/ixgb_main.c   |    2 +-
>  drivers/net/s2io.c             |    2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
> 
> Index: linux-2.6/drivers/net/e100.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/e100.c
> +++ linux-2.6/drivers/net/e100.c
> @@ -2828,7 +2828,7 @@ static pci_ers_result_t e100_io_slot_res
>       struct net_device *netdev = pci_get_drvdata(pdev);
>       struct nic *nic = netdev_priv(netdev);
> 
> -     if (pci_enable_device(pdev)) {
> +     if (pci_reenable_device(pdev)) {
>               printk(KERN_ERR "e100: Cannot re-enable PCI device after
> reset.\n");
>               return PCI_ERS_RESULT_DISCONNECT;
>       }
> Index: linux-2.6/drivers/net/e1000/e1000_main.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/e1000/e1000_main.c
> +++ linux-2.6/drivers/net/e1000/e1000_main.c
> @@ -5270,7 +5270,7 @@ static pci_ers_result_t e1000_io_slot_re
>       struct net_device *netdev = pci_get_drvdata(pdev);
>       struct e1000_adapter *adapter = netdev->priv;
> 
> -     if (pci_enable_device(pdev)) {
> +     if (pci_reenable_device(pdev)) {
>               printk(KERN_ERR "e1000: Cannot re-enable PCI device
after
> reset.\n");
>               return PCI_ERS_RESULT_DISCONNECT;
>       }
> Index: linux-2.6/drivers/net/ixgb/ixgb_main.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/ixgb/ixgb_main.c
> +++ linux-2.6/drivers/net/ixgb/ixgb_main.c
> @@ -2294,7 +2294,7 @@ static pci_ers_result_t ixgb_io_slot_res
>       struct net_device *netdev = pci_get_drvdata(pdev);
>       struct ixgb_adapter *adapter = netdev_priv(netdev);
> 
> -     if(pci_enable_device(pdev)) {
> +     if(pci_reenable_device(pdev)) {
>               DPRINTK(PROBE, ERR, "Cannot re-enable PCI device after
> reset.\n");
>               return PCI_ERS_RESULT_DISCONNECT;
>       }
> Index: linux-2.6/drivers/net/s2io.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/s2io.c
> +++ linux-2.6/drivers/net/s2io.c
> @@ -7833,7 +7833,7 @@ static pci_ers_result_t s2io_io_slot_res
>       struct net_device *netdev = pci_get_drvdata(pdev);
>       struct s2io_nic *sp = netdev->priv;
> 
> -     if (pci_enable_device(pdev)) {
> +     if (pci_reenable_device(pdev)) {
>               printk(KERN_ERR "s2io: "
>                      "Cannot re-enable PCI device after reset.\n");
>               return PCI_ERS_RESULT_DISCONNECT;
> 
> --
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to