Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 885015 Details for
Bug 1067126
Virt-manager doesn't configure bridge for VM
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Test patch
0001-Test-rar.patch (text/plain), 8.15 KB, created by
Vlad Yasevich
on 2014-04-10 15:56:35 UTC
(
hide
)
Description:
Test patch
Filename:
MIME Type:
Creator:
Vlad Yasevich
Created:
2014-04-10 15:56:35 UTC
Size:
8.15 KB
patch
obsolete
>From 7c00dbf37b4a2b32ee4ff10dc9c40545641d1dde Mon Sep 17 00:00:00 2001 >From: Vlad Yasevich <vyasevic@redhat.com> >Date: Wed, 9 Apr 2014 22:31:12 -0400 >Subject: [PATCH] Test rar > >--- > drivers/net/ethernet/intel/e1000e/80003es2lan.c | 1 + > drivers/net/ethernet/intel/e1000e/82571.c | 1 + > drivers/net/ethernet/intel/e1000e/hw.h | 1 + > drivers/net/ethernet/intel/e1000e/ich8lan.c | 76 +++++++++++++++++-------- > drivers/net/ethernet/intel/e1000e/mac.c | 5 ++ > drivers/net/ethernet/intel/e1000e/mac.h | 1 + > drivers/net/ethernet/intel/e1000e/netdev.c | 4 +- > 7 files changed, 65 insertions(+), 24 deletions(-) > >diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c >index 895450e..96d03f1 100644 >--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c >+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c >@@ -1369,6 +1369,7 @@ static const struct e1000_mac_operations es2_mac_ops = { > .setup_led = e1000e_setup_led_generic, > .config_collision_dist = e1000e_config_collision_dist_generic, > .rar_set = e1000e_rar_set_generic, >+ .rar_get_count = e1000e_rar_get_count_generic, > }; > > static const struct e1000_phy_operations es2_phy_ops = { >diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c >index 8fed74e..92f45cf 100644 >--- a/drivers/net/ethernet/intel/e1000e/82571.c >+++ b/drivers/net/ethernet/intel/e1000e/82571.c >@@ -1903,6 +1903,7 @@ static const struct e1000_mac_operations e82571_mac_ops = { > .config_collision_dist = e1000e_config_collision_dist_generic, > .read_mac_addr = e1000_read_mac_addr_82571, > .rar_set = e1000e_rar_set_generic, >+ .rar_get_count = e1000e_rar_get_count_generic, > }; > > static const struct e1000_phy_operations e82_phy_ops_igp = { >diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h >index b7f3843..cc08b6c 100644 >--- a/drivers/net/ethernet/intel/e1000e/hw.h >+++ b/drivers/net/ethernet/intel/e1000e/hw.h >@@ -478,6 +478,7 @@ struct e1000_mac_operations { > void (*config_collision_dist)(struct e1000_hw *); > void (*rar_set)(struct e1000_hw *, u8 *, u32); > s32 (*read_mac_addr)(struct e1000_hw *); >+ u32 (*rar_get_count)(struct e1000_hw *); > }; > > /* When to use various PHY register access functions: >diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c >index 70e16f7..3cd9565 100644 >--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c >+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c >@@ -140,6 +140,7 @@ static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw); > static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw); > static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index); > static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index); >+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw); > static s32 e1000_k1_workaround_lv(struct e1000_hw *hw); > static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate); > static s32 e1000_setup_copper_link_pch_lpt(struct e1000_hw *hw); >@@ -656,6 +657,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw) > mac->ops.rar_set = e1000_rar_set_pch_lpt; > mac->ops.setup_physical_interface = > e1000_setup_copper_link_pch_lpt; >+ mac->ops.rar_get_count = e1000_rar_get_count_pch_lpt; > } > > /* Enable PCS Lock-loss workaround for ICH8 */ >@@ -1402,6 +1404,43 @@ out: > } > > /** >+ * e1000_rar_get_count_pch_lpt - Get the number of available SHRA >+ * @hw: pointer to the HW structure >+ * >+ * Get the number of available recieve registers that the Host can >+ * programm. SHRA[0-10] are the shared receive address registers >+ * that are shared between the Host and manageability engine (ME). >+ * ME can reserve any number of addresses and the host needs to be >+ * able to tell how many available registers it has access to so it >+ * can correctly determine if it can program them or turn on >+ * promiscuous mode. >+ **/ >+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw) >+{ >+ u32 wlock_mac; >+ u32 num_entries; >+ >+ wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK; >+ wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT; >+ >+ switch (wlock_mac) { >+ case 0: >+ /* All entries are availble */ >+ num_entries = hw->mac.rar_entry_count; >+ break; >+ case 1: >+ /* All entries are full */ >+ num_entries = 0; >+ break; >+ default: >+ num_entries = wlock_mac; >+ break; >+ } >+ >+ return num_entries; >+} >+ >+/** > * e1000_rar_set_pch_lpt - Set receive address registers > * @hw: pointer to the HW structure > * @addr: pointer to the receive address >@@ -1415,7 +1454,6 @@ out: > static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index) > { > u32 rar_low, rar_high; >- u32 wlock_mac; > > /* HW expects these in little endian so we reverse the byte order > * from network order (big endian) to little endian >@@ -1441,33 +1479,24 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index) > * it is using - those registers are unavailable for use. > */ > if (index < hw->mac.rar_entry_count) { >- wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK; >- wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT; >- >- /* Check if all SHRAR registers are locked */ >- if (wlock_mac == 1) >- goto out; >- >- if ((wlock_mac == 0) || (index <= wlock_mac)) { >- s32 ret_val; >+ s32 ret_val; > >- ret_val = e1000_acquire_swflag_ich8lan(hw); >+ ret_val = e1000_acquire_swflag_ich8lan(hw); > >- if (ret_val) >- goto out; >+ if (ret_val) >+ goto out; > >- ew32(SHRAL_PCH_LPT(index - 1), rar_low); >- e1e_flush(); >- ew32(SHRAH_PCH_LPT(index - 1), rar_high); >- e1e_flush(); >+ ew32(SHRAL_PCH_LPT(index - 1), rar_low); >+ e1e_flush(); >+ ew32(SHRAH_PCH_LPT(index - 1), rar_high); >+ e1e_flush(); > >- e1000_release_swflag_ich8lan(hw); >+ e1000_release_swflag_ich8lan(hw); > >- /* verify the register updates */ >- if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) && >- (er32(SHRAH_PCH_LPT(index - 1)) == rar_high)) >- return; >- } >+ /* verify the register updates */ >+ if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) && >+ (er32(SHRAH_PCH_LPT(index - 1)) == rar_high)) >+ return; > } > > out: >@@ -4660,6 +4689,7 @@ static const struct e1000_mac_operations ich8_mac_ops = { > /* id_led_init dependent on mac type */ > .config_collision_dist = e1000e_config_collision_dist_generic, > .rar_set = e1000e_rar_set_generic, >+ .rar_get_count = e1000e_rar_get_count_generic, > }; > > static const struct e1000_phy_operations ich8_phy_ops = { >diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c >index 2480c10..de118df 100644 >--- a/drivers/net/ethernet/intel/e1000e/mac.c >+++ b/drivers/net/ethernet/intel/e1000e/mac.c >@@ -218,6 +218,11 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) > return 0; > } > >+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw) >+{ >+ return hw->mac.rar_entry_count; >+} >+ > /** > * e1000e_rar_set_generic - Set receive address register > * @hw: pointer to the HW structure >diff --git a/drivers/net/ethernet/intel/e1000e/mac.h b/drivers/net/ethernet/intel/e1000e/mac.h >index a61fee4..525d050 100644 >--- a/drivers/net/ethernet/intel/e1000e/mac.h >+++ b/drivers/net/ethernet/intel/e1000e/mac.h >@@ -68,6 +68,7 @@ void e1000e_update_adaptive(struct e1000_hw *hw); > void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value); > > void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw); >+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw); > void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index); > void e1000e_config_collision_dist_generic(struct e1000_hw *hw); > >diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c >index e87e9b0..b9e2f9d 100644 >--- a/drivers/net/ethernet/intel/e1000e/netdev.c >+++ b/drivers/net/ethernet/intel/e1000e/netdev.c >@@ -3278,9 +3278,11 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev) > { > struct e1000_adapter *adapter = netdev_priv(netdev); > struct e1000_hw *hw = &adapter->hw; >- unsigned int rar_entries = hw->mac.rar_entry_count; >+ unsigned int rar_entries; > int count = 0; > >+ rar_entries = hw->mac.ops.rar_get_count(hw); >+ > /* save a rar entry for our hardware address */ > rar_entries--; > >-- >1.9.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1067126
:
870010
|
870491
| 885015 |
890558
|
891627
|
891643