Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
8af3994e
Commit
8af3994e
authored
May 04, 2012
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
parents
0a6ba092
dd7f5c9e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
32 additions
and
34 deletions
+32
-34
drivers/net/ethernet/intel/e1000/e1000_main.c
drivers/net/ethernet/intel/e1000/e1000_main.c
+2
-2
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/igb/igb_main.c
+2
-2
drivers/net/ethernet/intel/ixgbe/ixgbe.h
drivers/net/ethernet/intel/ixgbe/ixgbe.h
+0
-3
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+20
-23
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+2
-0
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+6
-4
No files found.
drivers/net/ethernet/intel/e1000/e1000_main.c
View file @
8af3994e
...
...
@@ -3380,7 +3380,7 @@ static void e1000_dump(struct e1000_adapter *adapter)
for
(
i
=
0
;
tx_ring
->
desc
&&
(
i
<
tx_ring
->
count
);
i
++
)
{
struct
e1000_tx_desc
*
tx_desc
=
E1000_TX_DESC
(
*
tx_ring
,
i
);
struct
e1000_buffer
*
buffer_info
=
&
tx_ring
->
buffer_info
[
i
];
struct
my_u
{
u64
a
;
u
64
b
;
};
struct
my_u
{
__le64
a
;
__le
64
b
;
};
struct
my_u
*
u
=
(
struct
my_u
*
)
tx_desc
;
const
char
*
type
;
...
...
@@ -3424,7 +3424,7 @@ static void e1000_dump(struct e1000_adapter *adapter)
for
(
i
=
0
;
rx_ring
->
desc
&&
(
i
<
rx_ring
->
count
);
i
++
)
{
struct
e1000_rx_desc
*
rx_desc
=
E1000_RX_DESC
(
*
rx_ring
,
i
);
struct
e1000_buffer
*
buffer_info
=
&
rx_ring
->
buffer_info
[
i
];
struct
my_u
{
u64
a
;
u
64
b
;
};
struct
my_u
{
__le64
a
;
__le
64
b
;
};
struct
my_u
*
u
=
(
struct
my_u
*
)
rx_desc
;
const
char
*
type
;
...
...
drivers/net/ethernet/intel/igb/igb_main.c
View file @
8af3994e
...
...
@@ -2771,8 +2771,6 @@ void igb_configure_tx_ring(struct igb_adapter *adapter,
txdctl
|=
E1000_TXDCTL_QUEUE_ENABLE
;
wr32
(
E1000_TXDCTL
(
reg_idx
),
txdctl
);
netdev_tx_reset_queue
(
txring_txq
(
ring
));
}
/**
...
...
@@ -3282,6 +3280,8 @@ static void igb_clean_tx_ring(struct igb_ring *tx_ring)
igb_unmap_and_free_tx_resource
(
tx_ring
,
buffer_info
);
}
netdev_tx_reset_queue
(
txring_txq
(
tx_ring
));
size
=
sizeof
(
struct
igb_tx_buffer
)
*
tx_ring
->
count
;
memset
(
tx_ring
->
tx_buffer_info
,
0
,
size
);
...
...
drivers/net/ethernet/intel/ixgbe/ixgbe.h
View file @
8af3994e
...
...
@@ -574,9 +574,6 @@ extern struct ixgbe_info ixgbe_82599_info;
extern
struct
ixgbe_info
ixgbe_X540_info
;
#ifdef CONFIG_IXGBE_DCB
extern
const
struct
dcbnl_rtnl_ops
dcbnl_ops
;
extern
int
ixgbe_copy_dcb_cfg
(
struct
ixgbe_dcb_config
*
src_dcb_cfg
,
struct
ixgbe_dcb_config
*
dst_dcb_cfg
,
int
tc_max
);
#endif
extern
char
ixgbe_driver_name
[];
...
...
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
View file @
8af3994e
...
...
@@ -44,18 +44,26 @@
#define DCB_NO_HW_CHG 1
/* DCB configuration did not change */
#define DCB_HW_CHG 2
/* DCB configuration changed, no reset */
int
ixgbe_copy_dcb_cfg
(
struct
ixgbe_dcb_config
*
scfg
,
struct
ixgbe_dcb_config
*
dcfg
,
int
tc_max
)
static
int
ixgbe_copy_dcb_cfg
(
struct
ixgbe_adapter
*
adapter
,
int
tc_max
)
{
struct
ixgbe_dcb_config
*
scfg
=
&
adapter
->
temp_dcb_cfg
;
struct
ixgbe_dcb_config
*
dcfg
=
&
adapter
->
dcb_cfg
;
struct
tc_configuration
*
src
=
NULL
;
struct
tc_configuration
*
dst
=
NULL
;
int
i
,
j
;
int
tx
=
DCB_TX_CONFIG
;
int
rx
=
DCB_RX_CONFIG
;
int
changes
=
0
;
#ifdef IXGBE_FCOE
struct
dcb_app
app
=
{
.
selector
=
DCB_APP_IDTYPE_ETHTYPE
,
.
protocol
=
ETH_P_FCOE
,
};
u8
up
=
dcb_getapp
(
adapter
->
netdev
,
&
app
);
if
(
!
scfg
||
!
dcfg
)
return
changes
;
if
(
up
&&
!
(
up
&
(
1
<<
adapter
->
fcoe
.
up
)))
changes
|=
BIT_APP_UPCHG
;
#endif
for
(
i
=
DCB_PG_ATTR_TC_0
;
i
<
tc_max
+
DCB_PG_ATTR_TC_0
;
i
++
)
{
src
=
&
scfg
->
tc_config
[
i
-
DCB_PG_ATTR_TC_0
];
...
...
@@ -332,28 +340,12 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
struct
ixgbe_adapter
*
adapter
=
netdev_priv
(
netdev
);
int
ret
=
DCB_NO_HW_CHG
;
int
i
;
#ifdef IXGBE_FCOE
struct
dcb_app
app
=
{
.
selector
=
DCB_APP_IDTYPE_ETHTYPE
,
.
protocol
=
ETH_P_FCOE
,
};
u8
up
;
/* In IEEE mode, use the IEEE Ethertype selector value */
if
(
adapter
->
dcbx_cap
&
DCB_CAP_DCBX_VER_IEEE
)
{
app
.
selector
=
IEEE_8021QAZ_APP_SEL_ETHERTYPE
;
up
=
dcb_ieee_getapp_mask
(
netdev
,
&
app
);
}
else
{
up
=
dcb_getapp
(
netdev
,
&
app
);
}
#endif
/* Fail command if not in CEE mode */
if
(
!
(
adapter
->
dcbx_cap
&
DCB_CAP_DCBX_VER_CEE
))
return
ret
;
adapter
->
dcb_set_bitmap
|=
ixgbe_copy_dcb_cfg
(
&
adapter
->
temp_dcb_cfg
,
&
adapter
->
dcb_cfg
,
adapter
->
dcb_set_bitmap
|=
ixgbe_copy_dcb_cfg
(
adapter
,
MAX_TRAFFIC_CLASS
);
if
(
!
adapter
->
dcb_set_bitmap
)
return
ret
;
...
...
@@ -440,8 +432,13 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
* FCoE is using changes. This happens if the APP info
* changes or the up2tc mapping is updated.
*/
if
((
up
&&
!
(
up
&
(
1
<<
adapter
->
fcoe
.
up
)))
||
(
adapter
->
dcb_set_bitmap
&
BIT_APP_UPCHG
))
{
if
(
adapter
->
dcb_set_bitmap
&
BIT_APP_UPCHG
)
{
struct
dcb_app
app
=
{
.
selector
=
DCB_APP_IDTYPE_ETHTYPE
,
.
protocol
=
ETH_P_FCOE
,
};
u8
up
=
dcb_getapp
(
netdev
,
&
app
);
adapter
->
fcoe
.
up
=
ffs
(
up
)
-
1
;
ixgbe_dcbnl_devreset
(
netdev
);
ret
=
DCB_HW_CHG_RST
;
...
...
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
View file @
8af3994e
...
...
@@ -1780,6 +1780,8 @@ static u16 ixgbe_clean_test_rings(struct ixgbe_ring *rx_ring,
rx_desc
=
IXGBE_RX_DESC
(
rx_ring
,
rx_ntc
);
}
netdev_tx_reset_queue
(
txring_txq
(
tx_ring
));
/* re-map buffers to ring, store next to clean values */
ixgbe_alloc_rx_buffers
(
rx_ring
,
count
);
rx_ring
->
next_to_clean
=
rx_ntc
;
...
...
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
View file @
8af3994e
...
...
@@ -2671,8 +2671,6 @@ void ixgbe_configure_tx_ring(struct ixgbe_adapter *adapter,
/* enable queue */
IXGBE_WRITE_REG
(
hw
,
IXGBE_TXDCTL
(
reg_idx
),
txdctl
);
netdev_tx_reset_queue
(
txring_txq
(
ring
));
/* TXDCTL.EN will return 0 on 82598 if link is down, so skip it */
if
(
hw
->
mac
.
type
==
ixgbe_mac_82598EB
&&
!
(
IXGBE_READ_REG
(
hw
,
IXGBE_LINKS
)
&
IXGBE_LINKS_UP
))
...
...
@@ -4167,6 +4165,8 @@ static void ixgbe_clean_tx_ring(struct ixgbe_ring *tx_ring)
ixgbe_unmap_and_free_tx_resource
(
tx_ring
,
tx_buffer_info
);
}
netdev_tx_reset_queue
(
txring_txq
(
tx_ring
));
size
=
sizeof
(
struct
ixgbe_tx_buffer
)
*
tx_ring
->
count
;
memset
(
tx_ring
->
tx_buffer_info
,
0
,
size
);
...
...
@@ -4418,8 +4418,8 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
adapter
->
dcb_cfg
.
pfc_mode_enable
=
false
;
adapter
->
dcb_set_bitmap
=
0x00
;
adapter
->
dcbx_cap
=
DCB_CAP_DCBX_HOST
|
DCB_CAP_DCBX_VER_CEE
;
ixgbe_copy_dcb_cfg
(
&
adapter
->
dcb_cfg
,
&
adapter
->
temp_
dcb_cfg
,
MAX_TRAFFIC_CLASS
);
memcpy
(
&
adapter
->
temp_dcb_cfg
,
&
adapter
->
dcb_cfg
,
sizeof
(
adapter
->
temp_dcb_cfg
)
);
#endif
...
...
@@ -4866,10 +4866,12 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
netif_device_detach
(
netdev
);
if
(
netif_running
(
netdev
))
{
rtnl_lock
();
ixgbe_down
(
adapter
);
ixgbe_free_irq
(
adapter
);
ixgbe_free_all_tx_resources
(
adapter
);
ixgbe_free_all_rx_resources
(
adapter
);
rtnl_unlock
();
}
ixgbe_clear_interrupt_scheme
(
adapter
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment