* Re: [PATCH 0/6] bnx2x fixes
From: David Miller @ 2011-07-24 20:12 UTC (permalink / raw)
To: dmitry; +Cc: netdev, eilong
In-Reply-To: <1311516194.23243.14.camel@lb-tlvb-dmitry>
From: "Dmitry Kravkov" <dmitry@broadcom.com>
Date: Sun, 24 Jul 2011 17:03:14 +0300
> Following the short series of "last minute" fixes. Will you able to
> apply it to the net-next?
All applied, thanks.
^ permalink raw reply
* Re: [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: David Miller @ 2011-07-24 20:08 UTC (permalink / raw)
To: linville
Cc: johannes.berg, wey-yi.w.guy, linux-wireless, netdev, linux-kernel
In-Reply-To: <1311535150-28686-1-git-send-email-linville@tuxdriver.com>
From: "John W. Linville" <linville@tuxdriver.com>
Date: Sun, 24 Jul 2011 15:19:10 -0400
> drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
> drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
> drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
> drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
>
> This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Since I already minimally fixed up my build locally last night I know
that your patch leads to a set of warnings because the methods whose
hookup are now commented out become completely unused and they are all
marked "static". And recursively functions that those methods use
become unused too.
Did you turn off CONFIG_PM and test the build of this file to see
what the compiler actually does with it?
I'm checking in the following, but I expect much better from you John.
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4b666b7..b0ae4de 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2279,6 +2279,7 @@ static void iwlagn_mac_stop(struct ieee80211_hw *hw)
IWL_DEBUG_MAC80211(priv, "leave\n");
}
+#ifdef CONFIG_PM
static int iwlagn_send_patterns(struct iwl_priv *priv,
struct cfg80211_wowlan *wowlan)
{
@@ -2320,6 +2321,7 @@ static int iwlagn_send_patterns(struct iwl_priv *priv,
kfree(pattern_cmd);
return err;
}
+#endif
static void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
@@ -2352,6 +2354,7 @@ struct wowlan_key_data {
bool error, use_rsc_tsc, use_tkip;
};
+#ifdef CONFIG_PM
static void iwlagn_convert_p1k(u16 *p1k, __le16 *out)
{
int i;
@@ -2739,6 +2742,7 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw)
return 1;
}
+#endif
static void iwlagn_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
{
@@ -3461,8 +3465,10 @@ struct ieee80211_ops iwlagn_hw_ops = {
.tx = iwlagn_mac_tx,
.start = iwlagn_mac_start,
.stop = iwlagn_mac_stop,
+#ifdef CONFIG_PM
.suspend = iwlagn_mac_suspend,
.resume = iwlagn_mac_resume,
+#endif
.add_interface = iwl_mac_add_interface,
.remove_interface = iwl_mac_remove_interface,
.change_interface = iwl_mac_change_interface,
^ permalink raw reply related
* Re: [Bugme-new] [Bug 39742] New: 2.6.39.3 crash and hangs in 1-2 minutes with igb-RSS and L2TP PPTP services on the NAS server
From: Rustam Afanasyev @ 2011-07-24 19:38 UTC (permalink / raw)
To: Andrew Morton; +Cc: netdev, bugme-daemon, Patrick McHardy
In-Reply-To: <20110722144214.577718f0.akpm@linux-foundation.org>
Andrew Morton wrote:
> (switched to email. Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
I apply patch from this thread.
-----------------------------------------
--- Comment #2 from xeb@mail.ru 2011-07-23 15:42:04 ---
Please check this message http://www.spinics.net/lists/netdev/msg170766.html
maybe it is the reason.
-----------------------------------------
Now :
[root@nas3 ~]# uptime
23:36:49 up 1 day, 41 min, 1 user, load average: 0.00, 0.01, 0.05
[root@nas3 ~]#
Seems it work! There is now strange hangs and panic.
^ permalink raw reply
* [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: John W. Linville @ 2011-07-24 19:19 UTC (permalink / raw)
To: davem-fT/PcQaiUtIeIZ0/mPfg9Q
Cc: Johannes Berg, Wey-Yi Guy, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, John W. Linville
In-Reply-To: <20110724.030949.1727841105144911931.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
Signed-off-by: John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Wey-Yi Guy <wey-yi.w.guy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
drivers/net/wireless/iwlwifi/iwl-agn.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4b666b7..ff3e6c0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3461,8 +3461,10 @@ struct ieee80211_ops iwlagn_hw_ops = {
.tx = iwlagn_mac_tx,
.start = iwlagn_mac_start,
.stop = iwlagn_mac_stop,
+#ifdef CONFIG_PM
.suspend = iwlagn_mac_suspend,
.resume = iwlagn_mac_resume,
+#endif /* CONFIG_PM */
.add_interface = iwl_mac_add_interface,
.remove_interface = iwl_mac_remove_interface,
.change_interface = iwl_mac_change_interface,
--
1.7.4.4
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related
* Re: LInux kernel 3.0 sit creation bug report
From: Jay Rouman @ 2011-07-24 15:40 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, davem
In-Reply-To: <1311496931.6669.16.camel@edumazet-laptop>
I got the route2 configuration to work. Sorry for the bother. There
does seem to be a change in behavior as noted between 2.6.39 and 3.0
when using ifconfig and sit0. Perhaps this was intended.
--Jay Rouman
> Le samedi 23 juillet 2011 ? 12:27 -0400, Jay Rouman a ?crit :
> > Kernel 3.0 (release version)
> > Summary: sit tunnel creation fails with "No buffer space available"
> >
> > Example:
> >
> > icebox:/home/u/jsr(3)# /sbin/ip tunnel add sit0 mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> > add tunnel sit0 failed: No buffer space available
> >
> > icebox:/home/u/jsr(8)# /sbin/ifconfig sit0 inet6 tunnel ::209.51.18.1
> > SIOCSIFDSTADDR: No buffer space available
> >
> > Notes:
> >
> > Oddly, the ifconfig example creates a working sit0. The "ip" example
> > does not. The problem existed in rc1 but unfortunately I did not test
> > sit creation then. This was discovered when I upgraded a machine with
> > an HE tunnel to the 3.0 kernel. I am happy to do further testing or
> > provide whatever additional info I can.
> >
>
> I believe you use a deprecated (~10 years ago ?) way to setup your
> tunnel, its not a linux-3.0 new behavior.
>
> sit0 is reserved (fall back tunnel), you should use a different name.
>
> Try :
>
> # ip tunnel add aster mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> # ifconfig aster up
>
> # ip tunnel
> sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
> aster: ipv6/ip remote 209.51.18.1 local 216.111.203.89 ttl 255
^ permalink raw reply
* [PATCH 6/6] bnx2x: use pci_pcie_cap()
From: Dmitry Kravkov @ 2011-07-24 13:58 UTC (permalink / raw)
To: netdev@vger.kernel.org, David Miller
Cc: Vladislav Zolotarov, Eilon Greenstein
From: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 475f66f..b049fe1 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -5652,7 +5652,7 @@ static void bnx2x_init_pxp(struct bnx2x *bp)
int r_order, w_order;
pci_read_config_word(bp->pdev,
- bp->pdev->pcie_cap + PCI_EXP_DEVCTL, &devctl);
+ pci_pcie_cap(bp->pdev) + PCI_EXP_DEVCTL, &devctl);
DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl);
w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
if (bp->mrrs == -1)
--
1.7.2.2
^ permalink raw reply related
* [PATCH 0/6] bnx2x fixes
From: Dmitry Kravkov @ 2011-07-24 14:03 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Eilon Greenstein
Hello Dave,
Following the short series of "last minute" fixes. Will you able to
apply it to the net-next?
Thanks a lot!
Dmitry
^ permalink raw reply
* [PATCH 1/6] bnx2x: dcb - send all unmapped priorities to same COS as L2
From: Dmitry Kravkov @ 2011-07-24 14:09 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Eilon Greenstein, ariele
As a result of DCBX negotiation some priorities maybe untouched and still
unmapped to any COS; instead of sending them to COS0 we assign them
to the same COS as L2 traffic - to avoid collisions with storage class of
service.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_dcb.c | 39 +++++++++++++++++++++++++++++++++------
1 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_dcb.c b/drivers/net/bnx2x/bnx2x_dcb.c
index d028794..a4ea35f 100644
--- a/drivers/net/bnx2x/bnx2x_dcb.c
+++ b/drivers/net/bnx2x/bnx2x_dcb.c
@@ -19,15 +19,13 @@
#include <linux/netdevice.h>
#include <linux/types.h>
#include <linux/errno.h>
+#include <linux/rtnetlink.h>
+#include <net/dcbnl.h>
#include "bnx2x.h"
#include "bnx2x_cmn.h"
#include "bnx2x_dcb.h"
-#ifdef BCM_DCBNL
-#include <linux/rtnetlink.h>
-#endif
-
/* forward declarations of dcbx related functions */
static int bnx2x_dcbx_stop_hw_tx(struct bnx2x *bp);
static void bnx2x_pfc_set_pfc(struct bnx2x *bp);
@@ -333,6 +331,32 @@ static void bnx2x_dcbx_get_pfc_feature(struct bnx2x *bp,
}
}
+/* maps unmapped priorities to to the same COS as L2 */
+static void bnx2x_dcbx_map_nw(struct bnx2x *bp)
+{
+ int i;
+ u32 unmapped = (1 << MAX_PFC_PRIORITIES) - 1; /* all ones */
+ u32 *ttp = bp->dcbx_port_params.app.traffic_type_priority;
+ u32 nw_prio = 1 << ttp[LLFC_TRAFFIC_TYPE_NW];
+ struct bnx2x_dcbx_cos_params *cos_params =
+ bp->dcbx_port_params.ets.cos_params;
+
+ /* get unmapped priorities by clearing mapped bits */
+ for (i = 0; i < LLFC_DRIVER_TRAFFIC_TYPE_MAX; i++)
+ unmapped &= ~(1 << ttp[i]);
+
+ /* find cos for nw prio and extend it with unmapped */
+ for (i = 0; i < ARRAY_SIZE(bp->dcbx_port_params.ets.cos_params); i++) {
+ if (cos_params[i].pri_bitmask & nw_prio) {
+ /* extend the bitmask with unmapped */
+ DP(NETIF_MSG_LINK,
+ "cos %d extended with 0x%08x", i, unmapped);
+ cos_params[i].pri_bitmask |= unmapped;
+ break;
+ }
+ }
+}
+
static void bnx2x_get_dcbx_drv_param(struct bnx2x *bp,
struct dcbx_features *features,
u32 error)
@@ -342,6 +366,8 @@ static void bnx2x_get_dcbx_drv_param(struct bnx2x *bp,
bnx2x_dcbx_get_pfc_feature(bp, &features->pfc, error);
bnx2x_dcbx_get_ets_feature(bp, &features->ets, error);
+
+ bnx2x_dcbx_map_nw(bp);
}
#define DCBX_LOCAL_MIB_MAX_TRY_READ (100)
@@ -682,6 +708,8 @@ static inline void bnx2x_dcbx_update_tc_mapping(struct bnx2x *bp)
if (bp->dcbx_port_params.ets.cos_params[cos].pri_bitmask
& (1 << prio)) {
bp->prio_to_cos[prio] = cos;
+ DP(NETIF_MSG_LINK,
+ "tx_mapping %d --> %d\n", prio, cos);
}
}
}
@@ -749,7 +777,7 @@ void bnx2x_dcbx_set_params(struct bnx2x *bp, u32 state)
DP(NETIF_MSG_LINK, "BNX2X_DCBX_STATE_TX_RELEASED\n");
bnx2x_fw_command(bp, DRV_MSG_CODE_DCBX_PMF_DRV_OK, 0);
#ifdef BCM_DCBNL
- /**
+ /*
* Send a notification for the new negotiated parameters
*/
dcbnl_cee_notify(bp->dev, RTM_GETDCB, DCB_CMD_CEE_GET, 0, 0);
@@ -1732,7 +1760,6 @@ static void bnx2x_dcbx_fill_cos_params(struct bnx2x *bp,
pri_join_mask,
num_of_dif_pri);
-
for (i = 0; i < cos_data.num_of_cos ; i++) {
struct bnx2x_dcbx_cos_params *p =
&bp->dcbx_port_params.ets.cos_params[i];
--
1.7.2.2
^ permalink raw reply related
* [PATCH 5/6] bnx2x: fix bnx2x_stop_on_error flow in bnx2x_sp_rtnl_task
From: Dmitry Kravkov @ 2011-07-24 13:57 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Vladislav Zolotarov, Eilon Greenstein
From: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 36 +++++++++++++++++++++++++-----------
1 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 9c62092..475f66f 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -8413,31 +8413,45 @@ static void bnx2x_sp_rtnl_task(struct work_struct *work)
if (!netif_running(bp->dev))
goto sp_rtnl_exit;
- if (test_and_clear_bit(BNX2X_SP_RTNL_SETUP_TC, &bp->sp_rtnl_state))
- bnx2x_setup_tc(bp->dev, bp->dcbx_port_params.ets.num_of_cos);
-
/* if stop on error is defined no recovery flows should be executed */
#ifdef BNX2X_STOP_ON_ERROR
BNX2X_ERR("recovery flow called but STOP_ON_ERROR defined "
"so reset not done to allow debug dump,\n"
"you will need to reboot when done\n");
- goto sp_rtnl_exit;
+ goto sp_rtnl_not_reset;
#endif
if (unlikely(bp->recovery_state != BNX2X_RECOVERY_DONE)) {
/*
- * Clear TX_TIMEOUT bit as we are going to reset the function
- * anyway.
+ * Clear all pending SP commands as we are going to reset the
+ * function anyway.
*/
- smp_mb__before_clear_bit();
- clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT, &bp->sp_rtnl_state);
- smp_mb__after_clear_bit();
+ bp->sp_rtnl_state = 0;
+ smp_mb();
+
bnx2x_parity_recover(bp);
- } else if (test_and_clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT,
- &bp->sp_rtnl_state)){
+
+ goto sp_rtnl_exit;
+ }
+
+ if (test_and_clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT, &bp->sp_rtnl_state)) {
+ /*
+ * Clear all pending SP commands as we are going to reset the
+ * function anyway.
+ */
+ bp->sp_rtnl_state = 0;
+ smp_mb();
+
bnx2x_nic_unload(bp, UNLOAD_NORMAL);
bnx2x_nic_load(bp, LOAD_NORMAL);
+
+ goto sp_rtnl_exit;
}
+#ifdef BNX2X_STOP_ON_ERROR
+sp_rtnl_not_reset:
+#endif
+ if (test_and_clear_bit(BNX2X_SP_RTNL_SETUP_TC, &bp->sp_rtnl_state))
+ bnx2x_setup_tc(bp->dev, bp->dcbx_port_params.ets.num_of_cos);
sp_rtnl_exit:
rtnl_unlock();
--
1.7.2.2
^ permalink raw reply related
* [PATCH 4/6] bnx2x: enable internal target-read for 57712 and up only
From: Dmitry Kravkov @ 2011-07-24 13:57 UTC (permalink / raw)
To: netdev@vger.kernel.org, David Miller; +Cc: Eilon Greenstein, shmulikr
From: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 9c146f7..9c62092 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -10242,11 +10242,14 @@ static int __devinit bnx2x_init_dev(struct pci_dev *pdev,
REG_WR(bp, PXP2_REG_PGL_ADDR_90_F0 + BP_PORT(bp)*16, 0);
REG_WR(bp, PXP2_REG_PGL_ADDR_94_F0 + BP_PORT(bp)*16, 0);
- /**
+ /*
* Enable internal target-read (in case we are probed after PF FLR).
- * Must be done prior to any BAR read access
+ * Must be done prior to any BAR read access. Only for 57712 and up
*/
- REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1);
+ if (board_type != BCM57710 &&
+ board_type != BCM57711 &&
+ board_type != BCM57711E)
+ REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1);
/* Reset the load counter */
bnx2x_clear_load_cnt(bp);
--
1.7.2.2
^ permalink raw reply related
* [PATCH 3/6] bnx2x: count statistic ramrods on EQ to prevent MC assert
From: Dmitry Kravkov @ 2011-07-24 13:54 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Vladislav Zolotarov, Eilon Greenstein
From: Vladislav Zolotarov <vladz@broadcom.com>
This patch includes:
- Counting statistics ramrods as EQ ramrods the way they should be. This
accounting is meant to prevent MC asserts in case of software bugs.
- Fixes in debug facilities which were added while working on one of such
bugs.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 63 ++++++++++++++++++++-------------------
1 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 48490da..9c146f7 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -1671,11 +1671,12 @@ void bnx2x_sp_event(struct bnx2x_fastpath *fp, union eth_rx_cqe *rr_cqe)
switch (command) {
case (RAMROD_CMD_ID_ETH_CLIENT_UPDATE):
- DP(NETIF_MSG_IFUP, "got UPDATE ramrod. CID %d\n", cid);
+ DP(BNX2X_MSG_SP, "got UPDATE ramrod. CID %d\n", cid);
drv_cmd = BNX2X_Q_CMD_UPDATE;
break;
+
case (RAMROD_CMD_ID_ETH_CLIENT_SETUP):
- DP(NETIF_MSG_IFUP, "got MULTI[%d] setup ramrod\n", cid);
+ DP(BNX2X_MSG_SP, "got MULTI[%d] setup ramrod\n", cid);
drv_cmd = BNX2X_Q_CMD_SETUP;
break;
@@ -1685,17 +1686,17 @@ void bnx2x_sp_event(struct bnx2x_fastpath *fp, union eth_rx_cqe *rr_cqe)
break;
case (RAMROD_CMD_ID_ETH_HALT):
- DP(NETIF_MSG_IFDOWN, "got MULTI[%d] halt ramrod\n", cid);
+ DP(BNX2X_MSG_SP, "got MULTI[%d] halt ramrod\n", cid);
drv_cmd = BNX2X_Q_CMD_HALT;
break;
case (RAMROD_CMD_ID_ETH_TERMINATE):
- DP(NETIF_MSG_IFDOWN, "got MULTI[%d] teminate ramrod\n", cid);
+ DP(BNX2X_MSG_SP, "got MULTI[%d] teminate ramrod\n", cid);
drv_cmd = BNX2X_Q_CMD_TERMINATE;
break;
case (RAMROD_CMD_ID_ETH_EMPTY):
- DP(NETIF_MSG_IFDOWN, "got MULTI[%d] empty ramrod\n", cid);
+ DP(BNX2X_MSG_SP, "got MULTI[%d] empty ramrod\n", cid);
drv_cmd = BNX2X_Q_CMD_EMPTY;
break;
@@ -1725,6 +1726,8 @@ void bnx2x_sp_event(struct bnx2x_fastpath *fp, union eth_rx_cqe *rr_cqe)
/* push the change in bp->spq_left and towards the memory */
smp_mb__after_atomic_inc();
+ DP(BNX2X_MSG_SP, "bp->cq_spq_left %x\n", atomic_read(&bp->cq_spq_left));
+
return;
}
@@ -3089,26 +3092,23 @@ int bnx2x_sp_post(struct bnx2x *bp, int command, int cid,
spe->data.update_data_addr.hi = cpu_to_le32(data_hi);
spe->data.update_data_addr.lo = cpu_to_le32(data_lo);
- /* stats ramrod has it's own slot on the spq */
- if (command != RAMROD_CMD_ID_COMMON_STAT_QUERY) {
- /*
- * It's ok if the actual decrement is issued towards the memory
- * somewhere between the spin_lock and spin_unlock. Thus no
- * more explict memory barrier is needed.
- */
- if (common)
- atomic_dec(&bp->eq_spq_left);
- else
- atomic_dec(&bp->cq_spq_left);
- }
+ /*
+ * It's ok if the actual decrement is issued towards the memory
+ * somewhere between the spin_lock and spin_unlock. Thus no
+ * more explict memory barrier is needed.
+ */
+ if (common)
+ atomic_dec(&bp->eq_spq_left);
+ else
+ atomic_dec(&bp->cq_spq_left);
DP(BNX2X_MSG_SP/*NETIF_MSG_TIMER*/,
- "SPQE[%x] (%x:%x) command %d hw_cid %x data (%x:%x) "
- "type(0x%x) left (ETH, COMMON) (%x,%x)\n",
+ "SPQE[%x] (%x:%x) (cmd, common?) (%d,%d) hw_cid %x data (%x:%x) "
+ "type(0x%x) left (CQ, EQ) (%x,%x)\n",
bp->spq_prod_idx, (u32)U64_HI(bp->spq_mapping),
(u32)(U64_LO(bp->spq_mapping) +
- (void *)bp->spq_prod_bd - (void *)bp->spq), command,
+ (void *)bp->spq_prod_bd - (void *)bp->spq), command, common,
HW_CID(bp, cid), data_hi, data_lo, type,
atomic_read(&bp->cq_spq_left), atomic_read(&bp->eq_spq_left));
@@ -3465,6 +3465,7 @@ static inline void bnx2x_attn_int_deasserted3(struct bnx2x *bp, u32 attn)
} else if (attn & BNX2X_MC_ASSERT_BITS) {
BNX2X_ERR("MC assert!\n");
+ bnx2x_mc_assert(bp);
REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_10, 0);
REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_9, 0);
REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_8, 0);
@@ -4424,7 +4425,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
sw_cons = bp->eq_cons;
sw_prod = bp->eq_prod;
- DP(BNX2X_MSG_SP, "EQ: hw_cons %u sw_cons %u bp->cq_spq_left %u\n",
+ DP(BNX2X_MSG_SP, "EQ: hw_cons %u sw_cons %u bp->eq_spq_left %x\n",
hw_cons, sw_cons, atomic_read(&bp->eq_spq_left));
for (; sw_cons != hw_cons;
@@ -4443,7 +4444,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
DP(NETIF_MSG_TIMER, "got statistics comp event %d\n",
bp->stats_comp++);
/* nothing to do with stats comp */
- continue;
+ goto next_spqe;
case EVENT_RING_OPCODE_CFC_DEL:
/* handle according to cid range */
@@ -4451,7 +4452,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
* we may want to verify here that the bp state is
* HALTING
*/
- DP(NETIF_MSG_IFDOWN,
+ DP(BNX2X_MSG_SP,
"got delete ramrod for MULTI[%d]\n", cid);
#ifdef BCM_CNIC
if (!bnx2x_cnic_handle_cfc_del(bp, cid, elem))
@@ -4467,7 +4468,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
goto next_spqe;
case EVENT_RING_OPCODE_STOP_TRAFFIC:
- DP(NETIF_MSG_IFUP, "got STOP TRAFFIC\n");
+ DP(BNX2X_MSG_SP, "got STOP TRAFFIC\n");
if (f_obj->complete_cmd(bp, f_obj,
BNX2X_F_CMD_TX_STOP))
break;
@@ -4475,21 +4476,21 @@ static void bnx2x_eq_int(struct bnx2x *bp)
goto next_spqe;
case EVENT_RING_OPCODE_START_TRAFFIC:
- DP(NETIF_MSG_IFUP, "got START TRAFFIC\n");
+ DP(BNX2X_MSG_SP, "got START TRAFFIC\n");
if (f_obj->complete_cmd(bp, f_obj,
BNX2X_F_CMD_TX_START))
break;
bnx2x_dcbx_set_params(bp, BNX2X_DCBX_STATE_TX_RELEASED);
goto next_spqe;
case EVENT_RING_OPCODE_FUNCTION_START:
- DP(NETIF_MSG_IFUP, "got FUNC_START ramrod\n");
+ DP(BNX2X_MSG_SP, "got FUNC_START ramrod\n");
if (f_obj->complete_cmd(bp, f_obj, BNX2X_F_CMD_START))
break;
goto next_spqe;
case EVENT_RING_OPCODE_FUNCTION_STOP:
- DP(NETIF_MSG_IFDOWN, "got FUNC_STOP ramrod\n");
+ DP(BNX2X_MSG_SP, "got FUNC_STOP ramrod\n");
if (f_obj->complete_cmd(bp, f_obj, BNX2X_F_CMD_STOP))
break;
@@ -4503,7 +4504,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
BNX2X_STATE_OPENING_WAIT4_PORT):
cid = elem->message.data.eth_event.echo &
BNX2X_SWCID_MASK;
- DP(NETIF_MSG_IFUP, "got RSS_UPDATE ramrod. CID %d\n",
+ DP(BNX2X_MSG_SP, "got RSS_UPDATE ramrod. CID %d\n",
cid);
rss_raw->clear_pending(rss_raw);
break;
@@ -4518,7 +4519,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
BNX2X_STATE_DIAG):
case (EVENT_RING_OPCODE_CLASSIFICATION_RULES |
BNX2X_STATE_CLOSING_WAIT4_HALT):
- DP(NETIF_MSG_IFUP, "got (un)set mac ramrod\n");
+ DP(BNX2X_MSG_SP, "got (un)set mac ramrod\n");
bnx2x_handle_classification_eqe(bp, elem);
break;
@@ -4528,7 +4529,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
BNX2X_STATE_DIAG):
case (EVENT_RING_OPCODE_MULTICAST_RULES |
BNX2X_STATE_CLOSING_WAIT4_HALT):
- DP(NETIF_MSG_IFUP, "got mcast ramrod\n");
+ DP(BNX2X_MSG_SP, "got mcast ramrod\n");
bnx2x_handle_mcast_eqe(bp);
break;
@@ -4538,7 +4539,7 @@ static void bnx2x_eq_int(struct bnx2x *bp)
BNX2X_STATE_DIAG):
case (EVENT_RING_OPCODE_FILTERS_RULES |
BNX2X_STATE_CLOSING_WAIT4_HALT):
- DP(NETIF_MSG_IFUP, "got rx_mode ramrod\n");
+ DP(BNX2X_MSG_SP, "got rx_mode ramrod\n");
bnx2x_handle_rx_mode_eqe(bp);
break;
default:
--
1.7.2.2
^ permalink raw reply related
* [PATCH 2/6] bnx2x: fix loopback for non 10G link
From: Dmitry Kravkov @ 2011-07-24 13:53 UTC (permalink / raw)
To: netdev@vger.kernel.org, David Miller; +Cc: eilon Greenstein, "; yanivr"
From: Yaniv Rosner <yanivr@broadcom.com>
Also fixes minor formatting in that function.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index e1ec1a3..48490da 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -2151,10 +2151,12 @@ u8 bnx2x_initial_phy_init(struct bnx2x *bp, int load_mode)
u8 rc;
int cfx_idx = bnx2x_get_link_cfg_idx(bp);
u16 req_line_speed = bp->link_params.req_line_speed[cfx_idx];
- /* Initialize link parameters structure variables */
- /* It is recommended to turn off RX FC for jumbo frames
- for better performance */
- if ((CHIP_IS_E1x(bp)) && (bp->dev->mtu > 5000))
+ /*
+ * Initialize link parameters structure variables
+ * It is recommended to turn off RX FC for jumbo frames
+ * for better performance
+ */
+ if (CHIP_IS_E1x(bp) && (bp->dev->mtu > 5000))
bp->link_params.req_fc_auto_adv = BNX2X_FLOW_CTRL_TX;
else
bp->link_params.req_fc_auto_adv = BNX2X_FLOW_CTRL_BOTH;
@@ -2162,8 +2164,18 @@ u8 bnx2x_initial_phy_init(struct bnx2x *bp, int load_mode)
bnx2x_acquire_phy_lock(bp);
if (load_mode == LOAD_DIAG) {
- bp->link_params.loopback_mode = LOOPBACK_XGXS;
- bp->link_params.req_line_speed[cfx_idx] = SPEED_10000;
+ struct link_params *lp = &bp->link_params;
+ lp->loopback_mode = LOOPBACK_XGXS;
+ /* do PHY loopback at 10G speed, if possible */
+ if (lp->req_line_speed[cfx_idx] < SPEED_10000) {
+ if (lp->speed_cap_mask[cfx_idx] &
+ PORT_HW_CFG_SPEED_CAPABILITY_D0_10G)
+ lp->req_line_speed[cfx_idx] =
+ SPEED_10000;
+ else
+ lp->req_line_speed[cfx_idx] =
+ SPEED_1000;
+ }
}
rc = bnx2x_phy_init(&bp->link_params, &bp->link_vars);
--
1.7.2.2
^ permalink raw reply related
* Re: LInux kernel 3.0 sit creation bug report
From: Jay Rouman @ 2011-07-24 12:15 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, davem
In-Reply-To: <1311496931.6669.16.camel@edumazet-laptop>
Thank you for the reply. I was not aware that sit0 was deprecated,
but something has changed in 3.0. The "SIOCSIFDSTADDR: No buffer
space available" error does not happen in 2.6.39. The Linux-net-tools
command creates a working tunnel to Hurricane Electric's tunnel broker,
even though the error message is generated. I have tried the route-2
commands and while they work without error, I can't get the tunnel to
function. I get I never tried the route-2 (/bin/ip) setup in 2.6.39.
--
Jay Rouman (jsr@dexter.mi.org jsr@edzone.net)
/sbin/ifconfig sit0 inet6 tunnel ::<ip address>
> Le samedi 23 juillet 2011 ? 12:27 -0400, Jay Rouman a ?crit :
> > Kernel 3.0 (release version)
> > Summary: sit tunnel creation fails with "No buffer space available"
> >
> > Example:
> >
> > icebox:/home/u/jsr(3)# /sbin/ip tunnel add sit0 mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> > add tunnel sit0 failed: No buffer space available
> >
> > icebox:/home/u/jsr(8)# /sbin/ifconfig sit0 inet6 tunnel ::209.51.18.1
> > SIOCSIFDSTADDR: No buffer space available
> >
> > Notes:
> >
> > Oddly, the ifconfig example creates a working sit0. The "ip" example
> > does not. The problem existed in rc1 but unfortunately I did not test
> > sit creation then. This was discovered when I upgraded a machine with
> > an HE tunnel to the 3.0 kernel. I am happy to do further testing or
> > provide whatever additional info I can.
> >
>
> I believe you use a deprecated (~10 years ago ?) way to setup your
> tunnel, its not a linux-3.0 new behavior.
>
> sit0 is reserved (fall back tunnel), you should use a different name.
>
> Try :
>
> # ip tunnel add aster mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> # ifconfig aster up
>
> # ip tunnel
> sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
> aster: ipv6/ip remote 209.51.18.1 local 216.111.203.89 ttl 255
^ permalink raw reply
* Re: pull request: wireless-next-2.6 2011-07-22
From: David Miller @ 2011-07-24 10:09 UTC (permalink / raw)
To: linville-2XuSBdqkA4R54TAoqtyWWQ
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20110722.171635.1154932336401179368.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
From: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Date: Fri, 22 Jul 2011 17:16:35 -0700 (PDT)
> From: "John W. Linville" <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
> Date: Fri, 22 Jul 2011 18:23:09 -0400
>
>> Here is the last big pull request of new wireless bits intended
>> for 3.1. This includes the usual big batch of updates to iwlagn,
>> a number of updates to ath9k, mwifiex, carl9170, libertas, and other
>> drivers, and soem updates to mac80211 and cfg80211 from Johannes.
>> The most noteworth bits are most of the final push from Rafał for
>> supporting current Broadcom wireless hardware in b43.
>>
>> Please let me know if there are problems!
>
> A little late to be submitting this since the merge window is
> already open, but I pulled anyways.
>
> Thanks!
Please fix this build regression, the suspend/resume ops are only
available when CONFIG_PM is defined.
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: LInux kernel 3.0 sit creation bug report
From: Eric Dumazet @ 2011-07-24 8:42 UTC (permalink / raw)
To: jsr; +Cc: netdev, davem
In-Reply-To: <E1Qkf2u-0007ZF-DS@dex.edzone.net>
Le samedi 23 juillet 2011 à 12:27 -0400, Jay Rouman a écrit :
> Kernel 3.0 (release version)
> Summary: sit tunnel creation fails with "No buffer space available"
>
> Example:
>
> icebox:/home/u/jsr(3)# /sbin/ip tunnel add sit0 mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> add tunnel sit0 failed: No buffer space available
>
> icebox:/home/u/jsr(8)# /sbin/ifconfig sit0 inet6 tunnel ::209.51.18.1
> SIOCSIFDSTADDR: No buffer space available
>
> Notes:
>
> Oddly, the ifconfig example creates a working sit0. The "ip" example
> does not. The problem existed in rc1 but unfortunately I did not test
> sit creation then. This was discovered when I upgraded a machine with
> an HE tunnel to the 3.0 kernel. I am happy to do further testing or
> provide whatever additional info I can.
>
I believe you use a deprecated (~10 years ago ?) way to setup your
tunnel, its not a linux-3.0 new behavior.
sit0 is reserved (fall back tunnel), you should use a different name.
Try :
# ip tunnel add aster mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
# ifconfig aster up
# ip tunnel
sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
aster: ipv6/ip remote 209.51.18.1 local 216.111.203.89 ttl 255
^ permalink raw reply
* Re: IPv6: autoconfiguration and suspend/resume or link down/up
From: Nicolas de Pesloüan @ 2011-07-24 8:35 UTC (permalink / raw)
To: Herbert Xu; +Cc: Stephen Hemminger, David Miller, jbohac, netdev
In-Reply-To: <20110724001816.GA14051@gondor.apana.org.au>
Le 24/07/2011 02:18, Herbert Xu a écrit :
> On Sat, Jul 23, 2011 at 09:37:43AM -0700, Stephen Hemminger wrote:
>>
>> Would it be possible to do live migration without dropping carrier
>> or setting interface down?
>
> I think LM uses the same mechanism as suspend and resume so whatever
> happens in one case will happen in the other case as well.
So we need to distinguish between two kind of link events:
1/ Really having the link goes down then up. This should trigger a renegotiation.
2/ Having the system suspend then resume :
2a/ This should trigger link down/link up events to force a renegotiation, for normal suspend/resume
where the network might have changed between suspend and resume.
2/ This should *not* trigger link down/link up events to avoid a renegotiation (for live migration)
because it is assumed that the network didn't change while suspended.
Can't we allow the user to set a global "link-down-link-up-timeout" and only force a renegotiation
if the time between link down and link up events is longer than this timeout? Normal user would set
this timeout close to 0 (default value). Live migration user would set this timeout to about twice
the time it normally takes to do a live migration. That way, in a VM environment, if the
suspend/resume cycle happens to take far more than a normal live migration time, the kernel would
renegotiate, which sounds reasonable, from my point of view.
Does this make sense?
Nicolas.
^ permalink raw reply
* Re: write() udp socket
From: Huajun Li @ 2011-07-24 8:33 UTC (permalink / raw)
To: ZHOU Xiaobo; +Cc: netdev
In-Reply-To: <tencent_287F494544728EDB6DA9C8ED@qq.com>
2011/7/23 ZHOU Xiaobo <xb.zhou@qq.com>:
> question No1:
> When I call
> ssize_t write(int fd, const void *buf, size_t count);
>
>
> on a nonblocking UDP socket, is the return value always equal to 'count'?
>
>
I don't think so. The function may be interrupt by signal or return
due to other reason, so the return value only represents the size it
writes successfully to the fd.
> question No2:
> Can I write() a UDP socket in multiple threads without locking?
>
In my opinion, you could. However, the receiver may not get what you expected.
>
> thanks
>
>
> ------------------
> Sincerely yours
> ZHOU Xiaobo
^ permalink raw reply
* GREETINGS
From: MICROSOFT AWARD @ 2011-07-24 5:38 UTC (permalink / raw)
To: info
Your Email Id has won 1,000,000.00 GBP in the British MICROSOFT Promo 2011. send your
Names.
Address.
Sex.
Age.
Tel.
Occupation.
^ permalink raw reply
* [PATCH] drivers:connector:remove an unused variable *tracer*
From: Wanlong Gao @ 2011-07-24 3:06 UTC (permalink / raw)
To: zbr, Jiri Kosina; +Cc: netdev, linux-kernel, Wanlong Gao
From: Wanlong Gao <gaowanlong@cn.fujitsu.com>
The variable 'tracer' never be used, so remove it.
Added by f701e5b73a1a79ea62ffd45d9e2bed4c7d5c1fd2.
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
drivers/connector/cn_proc.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c
index 281902d..0debc17 100644
--- a/drivers/connector/cn_proc.c
+++ b/drivers/connector/cn_proc.c
@@ -173,7 +173,6 @@ void proc_ptrace_connector(struct task_struct *task, int ptrace_id)
struct proc_event *ev;
struct timespec ts;
__u8 buffer[CN_PROC_MSG_SIZE];
- struct task_struct *tracer;
if (atomic_read(&proc_event_num_listeners) < 1)
return;
--
1.7.4.1
^ permalink raw reply related
* Re: [PATCH net-2.6 v2] gre: fix improper error handling
From: David Miller @ 2011-07-24 3:06 UTC (permalink / raw)
To: eric.dumazet; +Cc: xeb, netdev
In-Reply-To: <1311409964.6669.9.camel@edumazet-laptop>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Sat, 23 Jul 2011 10:32:44 +0200
> Le samedi 23 juillet 2011 à 10:49 +0400, xeb@mail.ru a écrit :
>> Fix improper protocol err_handler, current implementation is fully
>> unapplicable and may cause kernel crash due to double kfree_skb.
>>
>> Signed-off-by: Dmitry Kozlov <xeb@mail.ru>
>> ---
>> net/ipv4/gre.c | 21 ++++++---------------
>> 1 files changed, 6 insertions(+), 15 deletions(-)
>>
>
> Good catch !
>
> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Applied, thanks everyone.
^ permalink raw reply
* Re: [PATCH] ipv4: use RT_TOS after some rt_tos conversions
From: David Miller @ 2011-07-24 3:05 UTC (permalink / raw)
To: ja; +Cc: netdev
In-Reply-To: <alpine.LFD.2.00.1107231455220.1537@ja.ssi.bg>
From: Julian Anastasov <ja@ssi.bg>
Date: Sat, 23 Jul 2011 15:00:41 +0300 (EEST)
> rt_tos was changed to iph->tos but it must be filtered by RT_TOS
>
> Signed-off-by: Julian Anastasov <ja@ssi.bg>
Applied, thanks Julian.
^ permalink raw reply
* Re: [PATCH] via-velocity: remove duplicated #include
From: David Miller @ 2011-07-24 3:02 UTC (permalink / raw)
To: weiyi.huang; +Cc: netdev
In-Reply-To: <1311409245-3324-1-git-send-email-weiyi.huang@gmail.com>
From: Huang Weiyi <weiyi.huang@gmail.com>
Date: Sat, 23 Jul 2011 16:20:45 +0800
> Remove duplicated #include('s) in
> drivers/net/via-velocity.c
>
> Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Applied.
^ permalink raw reply
* Re: [PATCH] qlge: remove duplicated #include
From: David Miller @ 2011-07-24 3:02 UTC (permalink / raw)
To: weiyi.huang; +Cc: linux-driver, netdev
In-Reply-To: <1311409225-2340-1-git-send-email-weiyi.huang@gmail.com>
From: Huang Weiyi <weiyi.huang@gmail.com>
Date: Sat, 23 Jul 2011 16:20:25 +0800
> Remove duplicated #include('s) in
> drivers/net/qlge/qlge_main.c
>
> Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Applied.
^ permalink raw reply
* Re: [PATCH] igb: remove duplicated #include
From: David Miller @ 2011-07-24 3:02 UTC (permalink / raw)
To: weiyi.huang; +Cc: jeffrey.t.kirsher, netdev
In-Reply-To: <1311409201-2324-1-git-send-email-weiyi.huang@gmail.com>
From: Huang Weiyi <weiyi.huang@gmail.com>
Date: Sat, 23 Jul 2011 16:20:01 +0800
> Remove duplicated #include('s) in
> drivers/net/igb/igb_main.c
>
> Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Applied.
^ permalink raw reply
* Re: [PATCH] can: c_can: remove duplicated #include
From: David Miller @ 2011-07-24 3:01 UTC (permalink / raw)
To: weiyi.huang; +Cc: netdev
In-Reply-To: <1311409180-2988-1-git-send-email-weiyi.huang@gmail.com>
From: Huang Weiyi <weiyi.huang@gmail.com>
Date: Sat, 23 Jul 2011 16:19:40 +0800
> Remove duplicated #include('s) in
> drivers/net/can/c_can/c_can.c
> drivers/net/can/c_can/c_can_platform.c
>
> Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Applied.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox