linux/drivers/net/ethernet/intel/ixgbe
Alexander Duyck 7c8ae65a62 ixgbe: Make FCoE allocation and configuration closer to how rings work
This patch changes the behavior of the FCoE configuration so that it is
much closer to how the main body of the ixgbe driver works for ring
allocation.

The first piece is the ixgbe_fcoe_ddp_enable/disable calls.  These allocate
the percpu values and if successful set the fcoe_ddp_xid value indicating
that we can support DDP.

The next piece is the ixgbe_setup/free_ddp_resources calls.  These are
called on open/close and will allocate and free the DMA pools.

Finally ixgbe_configure_fcoe is now just register configuration.  It can go
through and enable the registers for the FCoE redirection offload, and FIP
configuration without any interference from the DDP pool allocation.

The net result of all this is two fold.  First it adds a certain amount of
exception handling.  So for example if ixgbe_setup_fcoe_resources fails we
will actually generate an error in open and refuse to bring up the
interface.

Secondly it provides a much more graceful failure case than the previous
model which would skip setting up the registers for FCoE on failure to
allocate DDP resources leaving no Rx functionality enabled instead of just
disabling DDP.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2012-07-19 18:18:49 -07:00
..
ixgbe.h ixgbe: Make FCoE allocation and configuration closer to how rings work 2012-07-19 18:18:49 -07:00
ixgbe_82598.c ixgbe: Update link flow control to correctly handle multiple packet buffer DCB 2012-05-04 03:25:24 -07:00
ixgbe_82599.c ixgbe: add support for 1G SX modules 2012-06-20 01:37:04 -07:00
ixgbe_common.c drivers/net/ethernet: Fix (nearly-)kernel-doc comments for various functions 2012-07-10 23:13:46 -07:00
ixgbe_common.h ixgbe: Update link flow control to correctly handle multiple packet buffer DCB 2012-05-04 03:25:24 -07:00
ixgbe_dcb.c ixgbe: Populate the prio_tc_map in ixgbe_setup_tc 2012-07-14 14:29:19 -07:00
ixgbe_dcb.h ixgbe: Populate the prio_tc_map in ixgbe_setup_tc 2012-07-14 14:29:19 -07:00
ixgbe_dcb_82598.c ixgbe: Clean up priority based flow control 2012-05-09 22:15:40 -07:00
ixgbe_dcb_82598.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_dcb_82599.c ixgbe: Clean up priority based flow control 2012-05-09 22:15:40 -07:00
ixgbe_dcb_82599.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_dcb_nl.c ixgbe: Populate the prio_tc_map in ixgbe_setup_tc 2012-07-14 14:29:19 -07:00
ixgbe_ethtool.c ixgbe: Retire RSS enabled and capable flags 2012-07-18 13:29:05 -07:00
ixgbe_fcoe.c ixgbe: Make FCoE allocation and configuration closer to how rings work 2012-07-19 18:18:49 -07:00
ixgbe_fcoe.h ixgbe: Make FCoE allocation and configuration closer to how rings work 2012-07-19 18:18:49 -07:00
ixgbe_lib.c ixgbe: Retire RSS enabled and capable flags 2012-07-18 13:29:05 -07:00
ixgbe_main.c ixgbe: Make FCoE allocation and configuration closer to how rings work 2012-07-19 18:18:49 -07:00
ixgbe_mbx.c ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_mbx.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_phy.c ixgbe: add support for 1G SX modules 2012-06-20 01:37:04 -07:00
ixgbe_phy.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_ptp.c drivers/net/ethernet: Fix (nearly-)kernel-doc comments for various functions 2012-07-10 23:13:46 -07:00
ixgbe_sriov.c ixgbe: Fix memory leak when SR-IOV VFs are direct assigned 2012-07-19 18:13:07 -07:00
ixgbe_sriov.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_sysfs.c drivers/net/ethernet: Fix (nearly-)kernel-doc comments for various functions 2012-07-10 23:13:46 -07:00
ixgbe_type.h ixgbe: Cleanup configuration of FCoE registers 2012-07-19 18:14:53 -07:00
ixgbe_x540.c ixgbe: add hwmon interface to export thermal data 2012-05-02 02:12:23 -07:00
Makefile ixgbe: do not compile ixgbe_sysfs.c when CONFIG_IXGBE_HWMON is not set 2012-06-14 03:12:41 -07:00