* Re: [PATCH] PPC: bpf_jit_comp: add SKF_AD_PKTTYPE instruction
From: Michael Ellerman @ 2014-10-30 4:44 UTC (permalink / raw)
To: Denis Kirjanov; +Cc: linuxppc-dev, netdev, Matt Evans
In-Reply-To: <CAOJe8K0t3G-bHm_24GjrTp9mmKnYZS1_bdGgrwQBLjC_s5is6w@mail.gmail.com>
On Wed, 2014-10-29 at 13:21 +0400, Denis Kirjanov wrote:
> Any feedback from PPC folks?
Hi Denis,
I had a look at this, but I don't know enough about BPF to comment.
Maybe you can explain what a BPF_ANC | SKF_AD_PKTTYPE means and perhaps then we
can guess if the code is correct.
I think testing it is the best option :)
cheers
^ permalink raw reply
* Re: [PATCH] rtlwifi: Add more checks for get_btc_status callback
From: Larry Finger @ 2014-10-30 4:30 UTC (permalink / raw)
To: Murilo Opsfelder Araujo, linux-kernel
Cc: linux-wireless, netdev, Chaoming Li, John W. Linville,
Mike Galbraith, Thadeu Cascardo, troy_tan
In-Reply-To: <1414625302-3654-1-git-send-email-mopsfelder@gmail.com>
On 10/29/2014 06:28 PM, Murilo Opsfelder Araujo wrote:
> This is a complement of commit 08054200117a95afc14c3d2ed3a38bf4e345bf78
> "rtlwifi: Add check for get_btc_status callback".
>
> With this patch, next-20141029 at least does not panic with rtl8192se
> device.
>
This patch is OK, but as noted it is not complete.
I have patches to fix all the kernel panics for rtl8192se AND rtl8192ce. There
are missing parts, but I would prefer submitting mine, which would conflict with
this one. For that reason, NACK for this one, and please apply the set I am
submitting now.
Larry
> Signed-off-by: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
> ---
>
> Hello, everyone.
>
> Some days ago, I reported [1] that next-20140930 introduced an issue
> with rtl8192se devices.
>
> Later on, Larry Finger proposed [2] a fix that did not solve the
> problem thoroughly.
>
> This patch is based on Larry's one [3]. It also does not solve the
> rtl8192se issue completely but I can at least boot next-20141029
> without a panic.
>
> The remaining issue is that the rtl8192se device does not associate.
> It does not even show any wifi network available. The device is shown
> by iwconfig, but I cannot do anything with it.
>
> I need help from someone out there that could provide me guidance or
> possibly investigate the issue (I'm not a kernel expert yet).
>
> I'd not like to see this regression landing on v3.18.
>
> [1] http://marc.info/?l=linux-wireless&m=141403434929612
> [2] http://marc.info/?l=linux-wireless&m=141408165513255
> [3] http://marc.info/?l=linux-wireless&m=141416876810127
>
> drivers/net/wireless/rtlwifi/base.c | 6 ++++--
> drivers/net/wireless/rtlwifi/core.c | 9 ++++++---
> drivers/net/wireless/rtlwifi/pci.c | 3 ++-
> drivers/net/wireless/rtlwifi/ps.c | 12 ++++++++----
> 4 files changed, 20 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c
> index 40b6d1d..1a51577 100644
> --- a/drivers/net/wireless/rtlwifi/base.c
> +++ b/drivers/net/wireless/rtlwifi/base.c
> @@ -1234,7 +1234,8 @@ EXPORT_SYMBOL_GPL(rtl_action_proc);
> static void setup_arp_tx(struct rtl_priv *rtlpriv, struct rtl_ps_ctl *ppsc)
> {
> rtlpriv->ra.is_special_data = true;
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_special_packet_notify(
> rtlpriv, 1);
> rtlpriv->enter_ps = false;
> @@ -1629,7 +1630,8 @@ void rtl_watchdog_wq_callback(void *data)
> }
> }
>
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_periodical(rtlpriv);
>
> rtlpriv->link_info.bcn_rx_inperiod = 0;
> diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
> index f6179bc..686d256 100644
> --- a/drivers/net/wireless/rtlwifi/core.c
> +++ b/drivers/net/wireless/rtlwifi/core.c
> @@ -1133,7 +1133,8 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
> ppsc->report_linked = (mstatus == RT_MEDIA_CONNECT) ?
> true : false;
>
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_mediastatus_notify(
> rtlpriv, mstatus);
> }
> @@ -1373,7 +1374,8 @@ static void rtl_op_sw_scan_start(struct ieee80211_hw *hw)
> return;
> }
>
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_scan_notify(rtlpriv, 1);
>
> if (rtlpriv->dm.supp_phymode_switch) {
> @@ -1425,7 +1427,8 @@ static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw)
> }
>
> rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_RESTORE);
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_scan_notify(rtlpriv, 0);
> }
>
> diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
> index 25daa87..ed3364d 100644
> --- a/drivers/net/wireless/rtlwifi/pci.c
> +++ b/drivers/net/wireless/rtlwifi/pci.c
> @@ -1833,7 +1833,8 @@ static void rtl_pci_stop(struct ieee80211_hw *hw)
> unsigned long flags;
> u8 RFInProgressTimeOut = 0;
>
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_halt_notify();
>
> /*
> diff --git a/drivers/net/wireless/rtlwifi/ps.c b/drivers/net/wireless/rtlwifi/ps.c
> index b69321d..2278af9 100644
> --- a/drivers/net/wireless/rtlwifi/ps.c
> +++ b/drivers/net/wireless/rtlwifi/ps.c
> @@ -261,7 +261,8 @@ void rtl_ips_nic_off_wq_callback(void *data)
> ppsc->in_powersavemode = true;
>
> /* call before RF off */
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv,
> ppsc->inactive_pwrstate);
>
> @@ -306,7 +307,8 @@ void rtl_ips_nic_on(struct ieee80211_hw *hw)
> ppsc->in_powersavemode = false;
> _rtl_ps_inactive_ps(hw);
> /* call after RF on */
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv,
> ppsc->inactive_pwrstate);
> }
> @@ -390,14 +392,16 @@ void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode)
> if (ppsc->p2p_ps_info.opp_ps)
> rtl_p2p_ps_cmd(hw , P2P_PS_ENABLE);
>
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode);
> } else {
> if (rtl_get_fwlps_doze(hw)) {
> RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
> "FW LPS enter ps_mode:%x\n",
> ppsc->fwctrl_psmode);
> - if (rtlpriv->cfg->ops->get_btc_status())
> + if (rtlpriv->cfg->ops->get_btc_status &&
> + rtlpriv->cfg->ops->get_btc_status())
> rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode);
> enter_fwlps = true;
> ppsc->pwr_mode = ppsc->fwctrl_psmode;
> --
> 2.1.2
>
^ permalink raw reply
* [PATCH 6/6 V3.18] rtlwifi: rtl8192se: Fix firmware loading
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Larry Finger, netdev, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger@lwfinger.net>
An error in the code makes the allocated space for firmware to be too
small.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
index 1fd2208..aadba29 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
@@ -209,8 +209,8 @@ static int rtl92s_init_sw_vars(struct ieee80211_hw *hw)
if (!rtlpriv->rtlhal.pfirmware)
return 1;
- rtlpriv->max_fw_size = RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE;
-
+ rtlpriv->max_fw_size = RTL8190_MAX_FIRMWARE_CODE_SIZE*2 +
+ sizeof(struct fw_hdr);
pr_info("Driver for Realtek RTL8192SE/RTL8191SE\n"
"Loading firmware %s\n", rtlpriv->cfg->fw_name);
/* request fw */
--
2.1.1
^ permalink raw reply related
* [PATCH 5/6 V3.18] rtlwifi: rtl8821ae: Remove extra semicolons
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Larry Finger, netdev, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger@lwfinger.net>
The kbuild test robot reports that there are extra semicolons in this
driver. All of them are caused by using "};" rather than "}" at the
end of a switch statement. This patch does not change any functionality.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8821ae/phy.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c b/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c
index 1e9570f..9b4d8a6 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c
@@ -800,7 +800,7 @@ static void _rtl8821ae_phy_set_txpower_by_rate_base(struct ieee80211_hw *hw,
"Invalid RateSection %d in Band 2.4G,Rf Path %d, %dTx in PHY_SetTxPowerByRateBase()\n",
rate_section, path, txnum);
break;
- };
+ }
} else if (band == BAND_ON_5G) {
switch (rate_section) {
case OFDM:
@@ -823,7 +823,7 @@ static void _rtl8821ae_phy_set_txpower_by_rate_base(struct ieee80211_hw *hw,
"Invalid RateSection %d in Band 5G, Rf Path %d, %dTx in PHY_SetTxPowerByRateBase()\n",
rate_section, path, txnum);
break;
- };
+ }
} else {
RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
"Invalid Band %d in PHY_SetTxPowerByRateBase()\n", band);
@@ -870,7 +870,7 @@ static u8 _rtl8821ae_phy_get_txpower_by_rate_base(struct ieee80211_hw *hw,
"Invalid RateSection %d in Band 2.4G, Rf Path %d, %dTx in PHY_GetTxPowerByRateBase()\n",
rate_section, path, txnum);
break;
- };
+ }
} else if (band == BAND_ON_5G) {
switch (rate_section) {
case OFDM:
@@ -893,7 +893,7 @@ static u8 _rtl8821ae_phy_get_txpower_by_rate_base(struct ieee80211_hw *hw,
"Invalid RateSection %d in Band 5G, Rf Path %d, %dTx in PHY_GetTxPowerByRateBase()\n",
rate_section, path, txnum);
break;
- };
+ }
} else {
RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
"Invalid Band %d in PHY_GetTxPowerByRateBase()\n", band);
@@ -3746,7 +3746,7 @@ static void _rtl8821ae_iqk_tx_fill_iqc(struct ieee80211_hw *hw,
break;
default:
break;
- };
+ }
}
static void _rtl8821ae_iqk_rx_fill_iqc(struct ieee80211_hw *hw,
@@ -3767,7 +3767,7 @@ static void _rtl8821ae_iqk_rx_fill_iqc(struct ieee80211_hw *hw,
break;
default:
break;
- };
+ }
}
#define cal_num 10
--
2.1.1
^ permalink raw reply related
* [PATCH 4/6i V3.18] rtlwifi: rtl8192ce: Add missing section to read descriptor setting
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Larry Finger, netdev, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger@lwfinger.net>
The new version of rtlwifi needs code in rtl92ce_get_desc() that returns
the buffer address for read operations.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8192ce/def.h | 2 ++
drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
index 831df10..9b660df 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
@@ -114,6 +114,8 @@
LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 16, 4)
#define GET_C2H_CMD_FEEDBACK_CCX_SEQ(__pcmdfbhdr) \
LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 20, 12)
+#define GET_RX_STATUS_DESC_BUFF_ADDR(__pdesc) \
+ SHIFT_AND_MASK_LE(__pdesc + 24, 0, 32)
#define CHIP_VER_B BIT(4)
#define CHIP_BONDING_IDENTIFIER(_value) (((_value) >> 22) & 0x3)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
index 2fb9c7a..dc3d20b 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
@@ -728,6 +728,9 @@ u32 rtl92ce_get_desc(u8 *p_desc, bool istx, u8 desc_name)
case HW_DESC_RXPKT_LEN:
ret = GET_RX_DESC_PKT_LEN(pdesc);
break;
+ case HW_DESC_RXBUFF_ADDR:
+ ret = GET_RX_STATUS_DESC_BUFF_ADDR(pdesc);
+ break;
default:
RT_ASSERT(false, "ERR rxdesc :%d not process\n",
desc_name);
--
2.1.1
^ permalink raw reply related
* [PATCH 3/6i V3.18] rtlwifi: rtl8192se: Add missing section to read descriptor setting
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Larry Finger, netdev, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger@lwfinger.net>
The new version of rtlwifi needs code in rtl92se_get_desc() that returns
the buffer address for read operations.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8192se/def.h | 2 ++
drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/def.h b/drivers/net/wireless/rtlwifi/rtl8192se/def.h
index 83c9867..6e7a70b 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/def.h
@@ -446,6 +446,8 @@
/* DWORD 6 */
#define SET_RX_STATUS__DESC_BUFF_ADDR(__pdesc, __val) \
SET_BITS_OFFSET_LE(__pdesc + 24, 0, 32, __val)
+#define GET_RX_STATUS_DESC_BUFF_ADDR(__pdesc) \
+ SHIFT_AND_MASK_LE(__pdesc + 24, 0, 32)
#define SE_RX_HAL_IS_CCK_RATE(_pdesc)\
(GET_RX_STATUS_DESC_RX_MCS(_pdesc) == DESC92_RATE1M || \
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
index b358ebc..672fd3b 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
@@ -640,6 +640,9 @@ u32 rtl92se_get_desc(u8 *desc, bool istx, u8 desc_name)
case HW_DESC_RXPKT_LEN:
ret = GET_RX_STATUS_DESC_PKT_LEN(desc);
break;
+ case HW_DESC_RXBUFF_ADDR:
+ ret = GET_RX_STATUS_DESC_BUFF_ADDR(desc);
+ break;
default:
RT_ASSERT(false, "ERR rxdesc :%d not process\n",
desc_name);
--
2.1.1
^ permalink raw reply related
* [PATCH 0/6 3.18] Fixes for iwlwifi drivers
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Larry Finger, netdev, Murilo Opsfelder Araujo
Some late changes to rtlwifi made some of the older drivers not start correctly.
These patches should be applied to 3.18.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Murilo Opsfelder Araujo <mopsfelder@gmail.com>
Larry Finger (6):
rtlwifi: rtl8192ce: rtl8192de: rtl8192se: Fix handling for missing
get_btc_status
rtlwifi: rtl8192se: Fix duplicate calls to ieee80211_register_hw()
rtlwifi: rtl8192se: Add missing section to read descriptor setting
rtlwifi: rtl8192ce: Add missing section to read descriptor setting
rtlwifi: rtl8821ae: Remove extra semicolons
rtlwifi: rtl8192se: Fix firmware loading
drivers/net/wireless/rtlwifi/core.c | 6 ++++++
drivers/net/wireless/rtlwifi/core.h | 1 +
drivers/net/wireless/rtlwifi/rtl8192ce/def.h | 2 ++
drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | 1 +
drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 3 +++
drivers/net/wireless/rtlwifi/rtl8192de/sw.c | 1 +
drivers/net/wireless/rtlwifi/rtl8192se/def.h | 2 ++
drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 22 +++-------------------
drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 3 +++
drivers/net/wireless/rtlwifi/rtl8821ae/phy.c | 12 ++++++------
10 files changed, 28 insertions(+), 25 deletions(-)
--
2.1.1
^ permalink raw reply
* [PATCH 2/6 V3.18] rtlwifi: rtl8192se: Fix duplicate calls to ieee80211_register_hw()
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville-2XuSBdqkA4R54TAoqtyWWQ
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA, Larry Finger,
netdev-u79uwXL29TY76Z2rM5mHXA, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
Driver rtlwifi has been modified to call ieee80211_register_hw()
from the probe routine; however, the existing call in the callback
routine for deferred firmware loading was not removed.
Signed-off-by: Larry Finger <Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
Cc: Murilo Opsfelder Araujo <mopsfelder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
index 5e16984..1fd2208 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
@@ -87,11 +87,8 @@ static void rtl92s_init_aspm_vars(struct ieee80211_hw *hw)
static void rtl92se_fw_cb(const struct firmware *firmware, void *context)
{
struct ieee80211_hw *hw = context;
- struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
struct rtl_priv *rtlpriv = rtl_priv(hw);
- struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
struct rt_firmware *pfirmware = NULL;
- int err;
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
"Firmware callback routine entered!\n");
@@ -112,20 +109,6 @@ static void rtl92se_fw_cb(const struct firmware *firmware, void *context)
memcpy(pfirmware->sz_fw_tmpbuffer, firmware->data, firmware->size);
pfirmware->sz_fw_tmpbufferlen = firmware->size;
release_firmware(firmware);
-
- err = ieee80211_register_hw(hw);
- if (err) {
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "Can't register mac80211 hw\n");
- return;
- } else {
- rtlpriv->mac80211.mac80211_registered = 1;
- }
- rtlpci->irq_alloc = 1;
- set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
^ permalink raw reply related
* [PATCH 1/6 3.18] rtlwifi: rtl8192ce: rtl8192de: rtl8192se: Fix handling for missing get_btc_status
From: Larry Finger @ 2014-10-30 4:17 UTC (permalink / raw)
To: linville-2XuSBdqkA4R54TAoqtyWWQ
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA, Larry Finger,
netdev-u79uwXL29TY76Z2rM5mHXA, Murilo Opsfelder Araujo
In-Reply-To: <1414642633-3700-1-git-send-email-Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
The recent changes in checking for Bluetooth status added some callbacks to code
in rtlwifi. To make certain that all callbacks are defined, a dummy routine has been
added to rtlwifi, and the drivers that need to use it are modified.
Signed-off-by: Larry Finger <Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
Cc: Murilo Opsfelder Araujo <mopsfelder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
drivers/net/wireless/rtlwifi/core.c | 6 ++++++
drivers/net/wireless/rtlwifi/core.h | 1 +
drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | 1 +
drivers/net/wireless/rtlwifi/rtl8192de/sw.c | 1 +
drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 1 +
5 files changed, 10 insertions(+)
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index f6179bc..07dae0d 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -1828,3 +1828,9 @@ const struct ieee80211_ops rtl_ops = {
.flush = rtl_op_flush,
};
EXPORT_SYMBOL_GPL(rtl_ops);
+
+bool rtl_btc_status_false(void)
+{
+ return false;
+}
+EXPORT_SYMBOL_GPL(rtl_btc_status_false);
diff --git a/drivers/net/wireless/rtlwifi/core.h b/drivers/net/wireless/rtlwifi/core.h
index 59cd3b9..624e1dc 100644
--- a/drivers/net/wireless/rtlwifi/core.h
+++ b/drivers/net/wireless/rtlwifi/core.h
@@ -42,5 +42,6 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
u32 mask, u32 data);
void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data);
bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb);
+bool rtl_btc_status_false(void);
#endif
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
index d86b5b5..46ea076 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
@@ -244,6 +244,7 @@ static struct rtl_hal_ops rtl8192ce_hal_ops = {
.phy_lc_calibrate = _rtl92ce_phy_lc_calibrate,
.phy_set_bw_mode_callback = rtl92ce_phy_set_bw_mode_callback,
.dm_dynamic_txpower = rtl92ce_dm_dynamic_txpower,
+ .get_btc_status = rtl_btc_status_false,
};
static struct rtl_mod_params rtl92ce_mod_params = {
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/sw.c b/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
index edab5a5..a0aba08 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
@@ -251,6 +251,7 @@ static struct rtl_hal_ops rtl8192de_hal_ops = {
.get_rfreg = rtl92d_phy_query_rf_reg,
.set_rfreg = rtl92d_phy_set_rf_reg,
.linked_set_reg = rtl92d_linked_set_reg,
+ .get_btc_status = rtl_btc_status_false,
};
static struct rtl_mod_params rtl92de_mod_params = {
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
index 1bff2a0..5e16984 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
@@ -294,6 +294,7 @@ static struct rtl_hal_ops rtl8192se_hal_ops = {
.set_bbreg = rtl92s_phy_set_bb_reg,
.get_rfreg = rtl92s_phy_query_rf_reg,
.set_rfreg = rtl92s_phy_set_rf_reg,
+ .get_btc_status = rtl_btc_status_false,
};
static struct rtl_mod_params rtl92se_mod_params = {
--
2.1.1
--
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
* [PATCH net-next] r8152: set RTL8152_UNPLUG when finding -ENODEV
From: Hayes Wang @ 2014-10-30 3:46 UTC (permalink / raw)
To: netdev; +Cc: nic_swsd, linux-kernel, linux-usb, Hayes Wang
Set RTL8152_UNPLUG when finding -ENODEV. This could accelerate
unloading the driver when the device is unplugged.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
drivers/net/usb/r8152.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index e1810bc..f116335 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -690,6 +690,9 @@ static int generic_ocp_read(struct r8152 *tp, u16 index, u16 size,
}
}
+ if (ret == -ENODEV)
+ set_bit(RTL8152_UNPLUG, &tp->flags);
+
return ret;
}
@@ -757,6 +760,9 @@ static int generic_ocp_write(struct r8152 *tp, u16 index, u16 byteen,
}
error1:
+ if (ret == -ENODEV)
+ set_bit(RTL8152_UNPLUG, &tp->flags);
+
return ret;
}
@@ -1083,6 +1089,7 @@ static void read_bulk_callback(struct urb *urb)
result = r8152_submit_rx(tp, agg, GFP_ATOMIC);
if (result == -ENODEV) {
+ set_bit(RTL8152_UNPLUG, &tp->flags);
netif_device_detach(tp->netdev);
} else if (result) {
spin_lock(&tp->rx_lock);
@@ -1187,11 +1194,13 @@ static void intr_callback(struct urb *urb)
resubmit:
res = usb_submit_urb(urb, GFP_ATOMIC);
- if (res == -ENODEV)
+ if (res == -ENODEV) {
+ set_bit(RTL8152_UNPLUG, &tp->flags);
netif_device_detach(tp->netdev);
- else if (res)
+ } else if (res) {
netif_err(tp, intr, tp->netdev,
"can't resubmit intr, status %d\n", res);
+ }
}
static inline void *rx_agg_align(void *data)
@@ -1755,6 +1764,7 @@ static void tx_bottom(struct r8152 *tp)
struct net_device *netdev = tp->netdev;
if (res == -ENODEV) {
+ set_bit(RTL8152_UNPLUG, &tp->flags);
netif_device_detach(netdev);
} else {
struct net_device_stats *stats = &netdev->stats;
--
1.9.3
^ permalink raw reply related
* [PATCH net] gre: Fix regression in gretap TSO support
From: alexander.duyck @ 2014-10-30 3:26 UTC (permalink / raw)
To: netdev, davem
Cc: H.K. Jerry Chu, Eric Dumazet, Alexander Duyck, Neal Cardwell,
Pravin B Shelar
From: Alexander Duyck <alexander.h.duyck@redhat.com>
On recent kernels I found that TSO on gretap interfaces didn't work. After
bisecting it I found that commit b884b1a4 had introduced a regression in
which the Ethernet header was being included in the GRE header length.
This change corrects that by basing the GRE header length on the inner mac
header in the case of GRE tunnels using transparent Ethernet bridging, and
uses the network header for all other GRE tunnel types.
Fixes: b884b1a4 ("gre_offload: simplify GRE header length calculation in gre_gso_segment()")
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: H.K. Jerry Chu <hkchu@google.com>
Cc: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
---
net/ipv4/gre_offload.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c
index f6e345c..67a1f66 100644
--- a/net/ipv4/gre_offload.c
+++ b/net/ipv4/gre_offload.c
@@ -47,7 +47,10 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb,
greh = (struct gre_base_hdr *)skb_transport_header(skb);
- ghl = skb_inner_network_header(skb) - skb_transport_header(skb);
+ if (greh->protocol == htons(ETH_P_TEB))
+ ghl = skb_inner_mac_header(skb) - skb_transport_header(skb);
+ else
+ ghl = skb_inner_network_header(skb) - skb_transport_header(skb);
if (unlikely(ghl < sizeof(*greh)))
goto out;
^ permalink raw reply related
* RE: suspend/resume broken on 3.18-rc2
From: fugang.duan @ 2014-10-30 3:11 UTC (permalink / raw)
To: Anson.Huang@freescale.com, Fabio Estevam
Cc: Frank.Li@freescale.com, Russell King, Shawn Guo,
netdev@vger.kernel.org
In-Reply-To: <8bbe5cec19124e1cae128cc39d249148@BN1PR0301MB0628.namprd03.prod.outlook.com>
From: Huang Yongcai-B20788 Sent: Thursday, October 30, 2014 10:35 AM
>To: Fabio Estevam; Duan Fugang-B38611
>Cc: Li Frank-B20596; Russell King; Shawn Guo; netdev@vger.kernel.org
>Subject: RE: suspend/resume broken on 3.18-rc2
>
>Hi, all
> I just tried the 3.18.0-rc2 on our i.MX6SX-SDB board, attached is my
>log, seems like the issue is inside the ENET driver, I guess you did NOT
>add "no_console_suspend" in the cmdline, so when failed, you can NOT see
>any log, please check the attached log, I can see the failure is in FEC
>when reusme.
>
> I also tried using sd rootfs and unplug the enet cable, the
>suspend/resume is OK without FEC driver. So please add
>"no_console_suspend" into cmdline and do debug for FEC driver.
>
>
>Best regards!
>Anson Huang
>
I tried it yesterday with FEC close, resume cannot back.
I will try it again.
Regards,
Andy
^ permalink raw reply
* Re: [Patch net 2/2] net_sched: always call ->destroy when ->init() fails
From: John Fastabend @ 2014-10-30 3:09 UTC (permalink / raw)
To: xiyou.wangcong, wang.bo116
Cc: David Miller, netdev, john.r.fastabend, edumazet, kaber, vtlam
In-Reply-To: <20141029.142934.1722309776700951536.davem@davemloft.net>
On 10/29/2014 11:29 AM, David Miller wrote:
> From: Cong Wang <xiyou.wangcong@gmail.com>
> Date: Fri, 24 Oct 2014 16:55:59 -0700
>
>> In qdisc_create(), when ->init() exists and it fails, we should
>> call ->destroy() to clean up the potentially partially initialized
>> qdisc's. This will also make the ->init() implementation easier.
>>
>> qdisc_create_dflt() already does that. Most callers of qdisc_create_dflt()
>> simply use noop_qdisc when it fails.
>>
>> And, most of the ->destroy() implementations are already able to clean up
>> partially initialization, we don't need to worry.
>>
>> The following ->init()'s need to catch up:
>> fq_codel_init(), hhf_init(), multiq_init(), sfq_init(), mq_init(),
>> mqprio_init().
>>
>> Reported-by: Wang Bo <wang.bo116@zte.com.cn>
>> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
>
> As discussed, I really want to see ->init() clean up it's own crap.
>
> There are certain kinds of initializations that cannot be tested for,
> such as setting up a workqueue etc.
>
> Therefore, the mere idea that we can call ->destroy() to handle this
> is a pure non-starter as far as I am concerned.
>
> Thanks.
> --
Cong/Wang, anyone working on this? Otherwise I'll take a stab
at it tomorrow.
Thanks!
John
--
John Fastabend Intel Corporation
^ permalink raw reply
* RE: suspend/resume broken on 3.18-rc2
From: Anson.Huang @ 2014-10-30 2:34 UTC (permalink / raw)
To: Fabio Estevam, fugang.duan@freescale.com
Cc: Frank.Li@freescale.com, Russell King, Shawn Guo,
netdev@vger.kernel.org
In-Reply-To: <CAOMZO5C9tcL9K79rwWbYkYcpRMPkpvHS+v2kYyRpY4bt7h=Cgw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1318 bytes --]
Hi, all
I just tried the 3.18.0-rc2 on our i.MX6SX-SDB board, attached is my log, seems like the issue is inside the ENET driver, I guess you did NOT add "no_console_suspend" in the cmdline, so when failed, you can NOT see any log, please check the attached log, I can see the failure is in FEC when reusme.
I also tried using sd rootfs and unplug the enet cable, the suspend/resume is OK without FEC driver. So please add "no_console_suspend" into cmdline and do debug for FEC driver.
Best regards!
Anson Huang
-----Original Message-----
From: Fabio Estevam [mailto:festevam@gmail.com]
Sent: 2014-10-29 7:48 PM
To: Duan Fugang-B38611; Huang Yongcai-B20788
Cc: Li Frank-B20596; Russell King; Shawn Guo; netdev@vger.kernel.org
Subject: Re: suspend/resume broken on 3.18-rc2
On Wed, Oct 29, 2014 at 3:46 AM, fugang.duan@freescale.com <fugang.duan@freescale.com> wrote:
> Hi, Fabio,
>
> I test 3.18.0-rc2, and has some problems:
> - most of time, imx6sx-sdb cannot resume back regardless of nfs or SD rootfs, and power key also cannnot resume back.
> - when do "echo core > /sys/power/pm_test", and then do suspend/resume test, console key can wake up system, but no broken issue found in nfs.
Adding Anson in case he could look into this problem from a power management perspective.
[-- Attachment #2: 318-rc2.TXT --]
[-- Type: text/plain, Size: 49804 bytes --]
Environment size: 3050/8188 bytes
=> setenv rootfs /dev/mmcblk0p2
=> save
Saving Environment to MMC...
Writing to MMC(2)... done
=> run fsl
BOOTP broadcast 1
*** Unhandled DHCP Option in OFFER/ACK: 44
*** Unhandled DHCP Option in OFFER/ACK: 46
*** Unhandled DHCP Option in OFFER/ACK: 44
*** Unhandled DHCP Option in OFFER/ACK: 46
DHCP client bound to address 10.192.242.178
Using FEC0 device
TFTP from server 10.192.242.118; our IP address is 10.192.242.178
Filename 'imx6sx-sdb-318rc2.dtb'.
Load address: 0x84000000
Loading: ###
1.9 MiB/s
done
Bytes transferred = 33156 (8184 hex)
BOOTP broadcast 1
*** Unhandled DHCP Option in OFFER/ACK: 44
*** Unhandled DHCP Option in OFFER/ACK: 46
*** Unhandled DHCP Option in OFFER/ACK: 44
*** Unhandled DHCP Option in OFFER/ACK: 46
DHCP client bound to address 10.192.242.178
Using FEC0 device
TFTP from server 10.192.242.118; our IP address is 10.192.242.178
Filename 'zImage-318rc2'.
Load address: 0x80800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################
1.9 MiB/s
done
Bytes transferred = 5477488 (539470 hex)
Kernel image @ 0x80800000 [ 0x000000 - 0x539470 ]
## Flattened Device Tree blob at 84000000
Booting using the fdt blob at 0x84000000
Using Device Tree in place at 84000000, end 8400b183
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.18.0-rc2 (anson@ubuntu) (gcc version 4.8.1 (GCC) ) #845 SMP Thu Oct 30 10:08:29 CST 2014
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: Freescale i.MX6 SoloX SDB Board
[ 0.000000] cma: Reserved 16 MiB at bf000000
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] PERCPU: Embedded 10 pages/cpu @be7c2000 s8960 r8192 d23808 u40960
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
[ 0.000000] Kernel command line: console=ttymxc0,115200n8 no_console_suspend uart_from_osc root=/dev/mmcblk0p2 rootwait rw
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 1004648K/1048576K available (6835K kernel code, 403K rwdata, 2328K rodata, 356K init, 8349K bss, 43928K reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xffe00000 (2048 kB)
[ 0.000000] vmalloc : 0xc0800000 - 0xff000000 (1000 MB)
[ 0.000000] lowmem : 0x80000000 - 0xc0000000 (1024 MB)
[ 0.000000] pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
[ 0.000000] modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
[ 0.000000] .text : 0x80008000 - 0x808faf9c (9164 kB)
[ 0.000000] .init : 0x808fb000 - 0x80954000 ( 356 kB)
[ 0.000000] .data : 0x80954000 - 0x809b8de0 ( 404 kB)
[ 0.000000] .bss : 0x809b8de0 - 0x811e0394 (8350 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] PL310 OF: cache setting yield illegal associativity
[ 0.000000] PL310 OF: -2147101976 calculated, only 8 and 16 legal
[ 0.000000] L2C-310 erratum 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76030001
[ 0.000000] Switching to timer-based delay loop, resolution 333ns
[ 0.000007] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655765682ns
[ 0.001155] Console: colour dummy device 80x30
[ 0.001185] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.001194] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.001203] ... MAX_LOCK_DEPTH: 48
[ 0.001211] ... MAX_LOCKDEP_KEYS: 8191
[ 0.001218] ... CLASSHASH_SIZE: 4096
[ 0.001226] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.001233] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.001240] ... CHAINHASH_SIZE: 32768
[ 0.001247] memory used by lock dependency info: 5167 kB
[ 0.001256] per task-struct memory footprint: 1152 bytes
[ 0.001280] Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[ 0.001297] pid_max: default: 32768 minimum: 301
[ 0.001633] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001652] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.003303] CPU: Testing write buffer coherency: ok
[ 0.003983] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004061] Setting up static identity map for 0x806b26e0 - 0x806b2750
[ 0.006427] Brought up 1 CPUs
[ 0.006444] SMP: Total of 1 processors activated.
[ 0.006455] CPU: All CPU(s) started in SVC mode.
[ 0.008093] devtmpfs: initialized
[ 0.016958] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.019071] pinctrl core: initialized pinctrl subsystem
[ 0.020754] regulator-dummy: no parameters
[ 0.042012] NET: Registered protocol family 16
[ 0.045070] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.066525] vdd1p1: 800 <--> 1375 mV at 1100 mV
[ 0.067512] vdd3p0: 2800 <--> 3150 mV at 3000 mV
[ 0.068443] vdd2p5: 2100 <--> 2875 mV at 2500 mV
[ 0.069438] vddarm: 725 <--> 1450 mV at 1150 mV
[ 0.070390] vddpcie: 725 <--> 1450 mV at 1100 mV
[ 0.071448] vddsoc: 725 <--> 1450 mV at 1175 mV
[ 0.089010] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.089027] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.092561] imx6sx-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[ 0.119512] mxs-dma 1804000.dma-apbh: initialized
[ 0.121454] VCC_SD3: 3000 mV
[ 0.122280] usb_otg1_vbus: 5000 mV
[ 0.122990] usb_otg2_vbus: 5000 mV
[ 0.123620] PSU-5V0: 5000 mV
[ 0.124263] lcd-3v3: no parameters
[ 0.126441] vgaarb: loaded
[ 0.127353] SCSI subsystem initialized
[ 0.128510] usbcore: registered new interface driver usbfs
[ 0.128684] usbcore: registered new interface driver hub
[ 0.128871] usbcore: registered new device driver usb
[ 0.132668] i2c i2c-0: IMX I2C adapter registered
[ 0.134152] i2c i2c-3: IMX I2C adapter registered
[ 0.134365] Linux video capture interface: v2.00
[ 0.134652] pps_core: LinuxPPS API ver. 1 registered
[ 0.134666] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.134722] PTP clock support registered
[ 0.135454] Advanced Linux Sound Architecture Driver Initialized.
[ 0.139696] cfg80211: Calling CRDA to update world regulatory domain
[ 0.141273] Switched to clocksource mxc_timer1
[ 0.167245] NET: Registered protocol family 2
[ 0.168818] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.169048] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
[ 0.171704] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.171987] TCP: reno registered
[ 0.172028] UDP hash table entries: 512 (order: 3, 40960 bytes)
[ 0.172380] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
[ 0.173589] NET: Registered protocol family 1
[ 0.174620] RPC: Registered named UNIX socket transport module.
[ 0.174639] RPC: Registered udp transport module.
[ 0.174650] RPC: Registered tcp transport module.
[ 0.174661] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.175778] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 0.178893] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.196083] VFS: Disk quotas dquot_6.5.2
[ 0.196516] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.203620] NFS: Registering the id_resolver key type
[ 0.203833] Key type id_resolver registered
[ 0.203848] Key type id_legacy registered
[ 0.204047] jffs2: version 2.2. (NAND) ¦© 2001-2006 Red Hat, Inc.
[ 0.205882] fuse init (API version 7.23)
[ 0.206717] msgmni has been set to 1994
[ 0.209375] io scheduler noop registered
[ 0.209409] io scheduler deadline registered
[ 0.209517] io scheduler cfq registered (default)
[ 0.210239] imx-weim 21b8000.weim: Driver registered.
[ 0.217734] backlight supply power not found, using dummy regulator
[ 0.221688] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 0.221716] imx-sdma 20ec000.sdma: firmware not found
[ 0.229050] imx-sdma 20ec000.sdma: initialized
[ 0.230890] pfuze100-regulator 0-0008: Illegal ID: 11
[ 0.230908] pfuze100-regulator 0-0008: unrecognized pfuze chip ID!
[ 0.232402] Serial: IMX driver
[ 0.233117] imx-uart 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58, base_baud = 1500000) is a IMX
[ 0.960159] console [ttymxc0] enabled
[ 0.965922] imx-uart 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 62, base_baud = 1500000) is a IMX
[ 0.976375] serial: Freescale lpuart driver
[ 0.981516] [drm] Initialized drm 1.1.0 20060810
[ 1.005986] brd: module loaded
[ 1.019845] loop: module loaded
[ 1.028235] CAN device driver interface
[ 1.034203] 2188000.ethernet supply phy not found, using dummy regulator
[ 1.043109] pps pps0: new PPS source ptp0
[ 1.055802] libphy: fec_enet_mii_bus: probed
[ 1.062233] fec 2188000.ethernet eth0: registered PHC device 0
[ 1.069402] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.076110] ehci-pci: EHCI PCI platform driver
[ 1.080715] ehci-mxc: Freescale On-Chip EHCI Host driver
[ 1.086547] usbcore: registered new interface driver usb-storage
[ 1.106388] ci_hdrc ci_hdrc.1: EHCI Host Controller
[ 1.111740] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[ 1.131336] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[ 1.140391] hub 1-0:1.0: USB hub found
[ 1.144484] hub 1-0:1.0: 1 port detected
[ 1.152000] mousedev: PS/2 mouse device common for all mice
[ 1.161943] snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0
[ 1.170490] i2c /dev entries driver
[ 1.176766] IR NEC protocol handler initialized
[ 1.181448] IR RC5(x/sz) protocol handler initialized
[ 1.186523] IR RC6 protocol handler initialized
[ 1.191066] IR JVC protocol handler initialized
[ 1.195645] IR Sony protocol handler initialized
[ 1.200282] IR SANYO protocol handler initialized
[ 1.205030] IR Sharp protocol handler initialized
[ 1.209752] IR MCE Keyboard/mouse protocol handler initialized
[ 1.215625] IR XMP protocol handler initialized
[ 1.223460] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[ 1.230096] sdhci: Secure Digital Host Controller Interface driver
[ 1.236346] sdhci: Copyright(c) Pierre Ossman
[ 1.240725] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.250665] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[ 1.256924] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[ 1.311298] mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
[ 1.325258] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[ 1.381934] mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[ 1.389975] sdhci-esdhc-imx 219c000.usdhc: could not get ultra high speed state, work on normal mode
[ 1.401527] sdhci-esdhc-imx 219c000.usdhc: No vmmc regulator found
[ 1.407725] sdhci-esdhc-imx 219c000.usdhc: No vqmmc regulator found
[ 1.451952] mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
[ 1.469967] usbcore: registered new interface driver usbhid
[ 1.475609] usbhid: USB HID core driver
[ 1.485067] wm8962 3-001a: Failed to get supply 'DCVDD': -517
[ 1.490835] wm8962 3-001a: Failed to request supplies: -517
[ 1.498642] i2c 3-001a: Driver wm8962 requests probe deferral
[ 1.509017] imx-wm8962 sound: failed to find codec platform device
[ 1.515426] imx-wm8962: probe of sound failed with error -22
[ 1.531842] TCP: cubic registered
[ 1.543088] NET: Registered protocol family 10
[ 1.564822] sit: IPv6 over IPv4 tunneling driver
[ 1.575556] NET: Registered protocol family 17
[ 1.580146] can: controller area network core (rev 20120528 abi 9)
[ 1.586557] NET: Registered protocol family 29
[ 1.591037] can: raw protocol (rev 20120528)
[ 1.597569] can: broadcast manager protocol (rev 20120528 t)
[ 1.603325] can: netlink gateway (rev 20130117) max_hops=1
[ 1.609591] Key type dns_resolver registered
[ 1.615256] cpu cpu0: dev_pm_opp_get_opp_count: device OPP not found (-19)
[ 1.634511] Registering SWP/SWPB emulation handler
[ 1.649394] wm8962 3-001a: Failed to get supply 'DCVDD': -517
[ 1.657245] wm8962 3-001a: Failed to request supplies: -517
[ 1.663029] i2c 3-001a: Driver wm8962 requests probe deferral
[ 1.675196] input: gpio-keys as /devices/soc0/gpio-keys/input/input0
[ 1.687135] wm8962 3-001a: Failed to get supply 'DCVDD': -517
[ 1.692940] wm8962 3-001a: Failed to request supplies: -517
[ 1.698612] i2c 3-001a: Driver wm8962 requests probe deferral
[ 1.707054] snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)
[ 1.794156] lcd-3v3: disabling
[ 1.797251] PSU-5V0: disabling
[ 1.800316] usb_otg1_vbus: disabling
[ 1.804038] VCC_SD3: disabling
[ 1.807195] vddpcie: disabling
[ 1.810799] ALSA device list:
[ 1.813841] No soundcards found.
[ 1.819086] Waiting for root device /dev/mmcblk0p2...
[ 1.834536] mmc2: new SDHC card at address a062
[ 1.840608] mmcblk0: mmc2:a062 SD04G 3.69 GiB
[ 1.849250] mmcblk0: p1 p2
[ 1.854859] wm8962 3-001a: Failed to get supply 'DCVDD': -517
[ 1.860622] wm8962 3-001a: Failed to request supplies: -517
[ 1.866615] i2c 3-001a: Driver wm8962 requests probe deferral
[ 7.528424] kjournald starting. Commit interval 5 seconds
[ 8.195812] EXT3-fs (mmcblk0p2): using internal journal
[ 8.364044] EXT3-fs (mmcblk0p2): recovery complete
[ 8.368851] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[ 8.375901] VFS: Mounted root (ext3 filesystem) on device 179:2.
[ 8.386050] devtmpfs: mounted
[ 8.389416] Freeing unused kernel memory: 356K (808fb000 - 80954000)
INIT: version 2.88 booting
Error opening /dev/fb0: No such file or directory
Starting udev
[ 9.169734] random: nonblocking pool is initialized
[ 9.440691] udevd[78]: starting version 182
[ 13.541982] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
bootlogd.
ALSA: Restoring mixer settings...
/usr/sbin/alsactl: load_state:1729: No soundcards found...
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
Wed Oct 22 21:50:00 UTC 2014
INIT: Entering runlevel: 5
Configuring network interfaces... [ 17.521824] fec 2188000.ethernet eth0: Freescale FEC PHY driver [Atheros 8031 ethernet] (mii_bus:phy_addr=2188000.ethernet:01, irq=
-1)
[ 17.535149] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.22.1) started
Sending discover...
[ 20.523727] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 20.532093] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sending discover...
Sending select for 10.192.242.178...
Lease of 10.192.242.178 obtained, lease time 172800
/etc/udhcpc.d/50default: Adding DNS 10.192.130.201
/etc/udhcpc.d/50default: Adding DNS 10.211.0.3
/etc/udhcpc.d/50default: Adding DNS 10.196.51.200
done.
Starting Xserver
Starting system message bus: open /dev/fb0: No such file or directory
dbus.
Starting Connection Manager
Starting OpenBSD Secure Shell server: sshd
done.
Starting rpcbind daemon...[ 24.242702] fec 2188000.ethernet eth0: Freescale FEC PHY driver [Atheros 8031 ethernet] (mii_bus:phy_addr=2188000.ethernet:01, irq=-1)
done.
creating NFS state directory: done
starting statd: done
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting Distributed Compiler Daemon: distcc.
NFS daemon support not enabled in kernel
Starting ntpd: done
Starting syslogd/klogd: done
[ ok ]rting Avahi mDNS/DNS-SD Daemon: avahi-daemon
Starting Telephony daemon
Starting Linux NFC daemon
cupsd: Child exited with status 1
cups: unable to start scheduler.
Starting OProfileUI server
Running local boot scripts (/etc/rc.hdmi).
Running local boot scripts (/etc/rc.local).
Stopping Bootlog daemon: bootlogd.
Starting tcf-agent: OK
Poky (Yocto Project Reference Distro) 1.6.1 imx6qdlsolo /dev/ttymxc0
imx6qdlsolo login: [ 26.315871] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
roo[ 27.242844] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 27.250776] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
t
root@imx6qdlsolo:~# echo enabled > /sys/class/tty/ttymxc0/po
port power/
root@imx6qdlsolo:~# echo enabled > /sys/class/tty/ttymxc0/power/wakeup
root@imx6qdlsolo:~# echo standby > /sys/power/state
[ 40.022657] PM: Syncing filesystems ... done.
[ 40.594564] Freezing user space processes ... (elapsed 0.006 seconds) done.
[ 40.608421] Freezing remaining freezable tasks ... (elapsed 0.004 seconds) done.
[ 40.662249] PM: suspend of devices complete after 37.664 msecs
[ 40.668103] PM: suspend devices took 0.050 seconds
[ 40.677070] PM: late suspend of devices complete after 4.099 msecs
[ 40.687955] PM: noirq suspend of devices complete after 4.585 msecs
[ 40.694453] Disabling non-boot CPUs ...
[ 40.703787] PM: noirq resume of devices complete after 4.718 msecs
[ 40.714247] PM: early resume of devices complete after 3.389 msecs
[ 40.796634] PM: resume of devices complete after 76.122 msecs
[ 40.807752] PM: resume devices took 0.080 seconds
[ 40.812533] Restarting tasks ... done.
root@imx6qdlsolo:~#
root@imx6qdlsolo:~#
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 45.941203] PM: Syncing filesystems ... done.
[ 45.953274] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 45.963585] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 46.012051] PM: suspend of devices complete after 33.197 msecs
[ 46.017923] PM: suspend devices took 0.040 seconds
[ 46.031332] PM: late suspend of devices complete after 8.480 msecs
[ 46.046314] PM: noirq suspend of devices complete after 8.741 msecs
[ 46.052814] Disabling non-boot CPUs ...
[ 46.061392] PM: noirq resume of devices complete after 4.555 msecs
[ 46.074655] PM: early resume of devices complete after 5.626 msecs
[ 46.156322] PM: resume of devices complete after 75.357 msecs
[ 46.168163] PM: resume devices took 0.080 seconds
[ 46.172955] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 46.951139] PM: Syncing filesystems ... done.
[ 46.962996] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 46.973311] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 47.022054] PM: suspend of devices complete after 33.427 msecs
[ 47.027930] PM: suspend devices took 0.040 seconds
[ 47.041516] PM: late suspend of devices complete after 8.657 msecs
[ 47.056320] PM: noirq suspend of devices complete after 8.563 msecs
[ 47.062813] Disabling non-boot CPUs ...
[ 47.071365] PM: noirq resume of devices complete after 4.529 msecs
[ 47.084648] PM: early resume of devices complete after 5.647 msecs
[ 47.166226] PM: resume of devices complete after 75.265 msecs
[ 47.176611] PM: resume devices took 0.080 seconds
[ 47.181393] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 47.781030] PM: Syncing filesystems ... done.
[ 47.792893] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 47.803209] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 47.851981] PM: suspend of devices complete after 33.493 msecs
[ 47.857856] PM: suspend devices took 0.040 seconds
[ 47.871276] PM: late suspend of devices complete after 8.491 msecs
[ 47.886082] PM: noirq suspend of devices complete after 8.566 msecs
[ 47.892577] Disabling non-boot CPUs ...
[ 47.901149] PM: noirq resume of devices complete after 4.547 msecs
[ 47.914404] PM: early resume of devices complete after 5.620 msecs
[ 47.996108] PM: resume of devices complete after 75.390 msecs
[ 48.006520] PM: resume devices took 0.080 seconds
[ 48.011303] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 48.480938] PM: Syncing filesystems ... done.
[ 48.492778] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 48.503092] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 48.552051] PM: suspend of devices complete after 33.675 msecs
[ 48.557926] PM: suspend devices took 0.040 seconds
[ 48.571351] PM: late suspend of devices complete after 8.498 msecs
[ 48.586142] PM: noirq suspend of devices complete after 8.551 msecs
[ 48.592638] Disabling non-boot CPUs ...
[ 48.601202] PM: noirq resume of devices complete after 4.539 msecs
[ 48.614441] PM: early resume of devices complete after 5.596 msecs
[ 48.696073] PM: resume of devices complete after 75.322 msecs
[ 48.706450] PM: resume devices took 0.080 seconds
[ 48.711240] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 49.180849] PM: Syncing filesystems ... done.
[ 49.192697] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 49.203013] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 49.251140] PM: suspend of devices complete after 32.844 msecs
[ 49.257016] PM: suspend devices took 0.040 seconds
[ 49.270427] PM: late suspend of devices complete after 8.485 msecs
[ 49.285229] PM: noirq suspend of devices complete after 8.562 msecs
[ 49.291717] Disabling non-boot CPUs ...
[ 49.300267] PM: noirq resume of devices complete after 4.527 msecs
[ 49.313500] PM: early resume of devices complete after 5.607 msecs
[ 49.395967] PM: resume of devices complete after 76.223 msecs
[ 49.406363] PM: resume devices took 0.090 seconds
[ 49.411144] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 49.920773] PM: Syncing filesystems ... done.
[ 49.932632] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 49.942958] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 49.991125] PM: suspend of devices complete after 32.912 msecs
[ 49.996999] PM: suspend devices took 0.040 seconds
[ 50.010417] PM: late suspend of devices complete after 8.485 msecs
[ 50.025238] PM: noirq suspend of devices complete after 8.580 msecs
[ 50.031724] Disabling non-boot CPUs ...
[ 50.040472] PM: noirq resume of devices complete after 4.726 msecs
[ 50.053742] PM: early resume of devices complete after 5.632 msecs
[ 50.135878] PM: resume of devices complete after 75.824 msecs
[ 50.146275] PM: resume devices took 0.080 seconds
[ 50.151052] Restarting tasks ... done.
root@imx6qdlsolo:~# echo mem > /sys/power/state
[ 50.640672] PM: Syncing filesystems ... done.
[ 50.652530] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 50.662864] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 50.711100] PM: suspend of devices complete after 32.952 msecs
[ 50.716976] PM: suspend devices took 0.040 seconds
[ 50.730396] PM: late suspend of devices complete after 8.495 msecs
[ 50.745215] PM: noirq suspend of devices complete after 8.580 msecs
[ 50.751701] Disabling non-boot CPUs ...
[ 50.760267] PM: noirq resume of devices complete after 4.544 msecs
[ 50.773520] PM: early resume of devices complete after 5.615 msecs
[ 50.855805] PM: resume of devices complete after 75.976 msecs
[ 50.866186] PM: resume devices took 0.080 seconds
[ 50.870963] Restarting tasks ... done.
root@imx6qdlsolo:~# /unit_tests/suspend_random_auto.sh
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:50:53 2014
[ 64.087316] PM: Syncing filesystems ... done.
[ 64.098668] Freezing user space processes ... (elapsed 0.003 seconds) done.
[ 64.109189] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 64.156086] PM: suspend of devices complete after 34.632 msecs
[ 64.162019] PM: suspend devices took 0.050 seconds
[ 64.171024] PM: late suspend of devices complete after 4.187 msecs
[ 64.181817] PM: noirq suspend of devices complete after 4.581 msecs
[ 64.188106] Disabling non-boot CPUs ...
[ 64.194693] PM: noirq resume of devices complete after 2.553 msecs
[ 64.205560] PM: early resume of devices complete after 3.607 msecs
[ 64.285188] PM: resume of devices complete after 73.359 msecs
[ 64.295427] PM: resume devices took 0.080 seconds
[ 64.300207] Restarting tasks ... done.
=============================
suspend 0 times
=============================
wakeup 9 seconds, sleep 4 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:51:08 2014
[ 69.430226] PM: Syncing filesystems ... done.
[ 69.437518] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 69.446119] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 69.485364] PM: suspend of devices complete after 27.786 msecs
[ 69.491275] PM: suspend devices took 0.040 seconds
[ 69.499084] PM: late suspend of devices complete after 2.997 msecs
[ 69.508595] PM: noirq suspend of devices complete after 3.244 msecs
[ 69.515009] Disabling non-boot CPUs ...
[ 69.520810] PM: noirq resume of devices complete after 1.876 msecs
[ 69.530491] PM: early resume of devices complete after 2.789 msecs
[ 69.604979] PM: resume of devices complete after 68.281 msecs
[ 69.613203] PM: resume devices took 0.080 seconds
[ 69.617929] Restarting tasks ... done.
=============================
suspend 1 times
=============================
wakeup 5 seconds, sleep 3 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:51:18 2014
[ 73.739424] PM: Syncing filesystems ... done.
[ 73.746898] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 73.755495] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 73.794643] PM: suspend of devices complete after 27.695 msecs
[ 73.800554] PM: suspend devices took 0.040 seconds
[ 73.808341] PM: late suspend of devices complete after 2.975 msecs
[ 73.817854] PM: noirq suspend of devices complete after 3.245 msecs
[ 73.824268] Disabling non-boot CPUs ...
[ 73.830093] PM: noirq resume of devices complete after 1.900 msecs
[ 73.839778] PM: early resume of devices complete after 2.788 msecs
[ 73.914936] PM: resume of devices complete after 68.951 msecs
[ 73.923146] PM: resume devices took 0.080 seconds
[ 73.927872] Restarting tasks ... done.
[ 75.850586] fec 2188000.ethernet eth0: Link is Down
[ 76.424646] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 76.851261] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 76.859193] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
=============================
suspend 2 times
=============================
wakeup 8 seconds, sleep 2 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:51:30 2014
[ 77.060087] PM: Syncing filesystems ... done.
[ 77.171500] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 77.180232] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 77.215885] PM: suspend of devices complete after 23.412 msecs
[ 77.221810] PM: suspend devices took 0.040 seconds
[ 77.230825] PM: late suspend of devices complete after 4.197 msecs
[ 77.241615] PM: noirq suspend of devices complete after 4.579 msecs
[ 77.247905] Disabling non-boot CPUs ...
[ 77.254486] PM: noirq resume of devices complete after 2.548 msecs
[ 77.264846] PM: early resume of devices complete after 3.270 msecs
[ 77.274918] fec 2188000.ethernet eth0: rcv is not +last
[ 77.280225] fec 2188000.ethernet eth0: rcv is not +last
[ 77.285482] fec 2188000.ethernet eth0: rcv is not +last
[ 77.290738] fec 2188000.ethernet eth0: rcv is not +last
[ 77.365033] PM: resume of devices complete after 93.924 msecs
[ 77.375307] PM: resume devices took 0.100 seconds
[ 77.380089] Restarting tasks ... done.
[ 79.290403] fec 2188000.ethernet eth0: Link is Down
[ 79.360357] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
=============================
suspend 3 times
=============================
wakeup 7 seconds, sleep 3 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:51:40 2014
[ 79.473022] PM: Syncing filesystems ... done.
[ 79.581269] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 79.590019] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 79.626132] PM: suspend of devices complete after 23.994 msecs
[ 79.632058] PM: suspend devices took 0.040 seconds
[ 79.641064] PM: late suspend of devices complete after 4.188 msecs
[ 79.651841] PM: noirq suspend of devices complete after 4.566 msecs
[ 79.658131] Disabling non-boot CPUs ...
[ 79.664702] PM: noirq resume of devices complete after 2.540 msecs
[ 79.675048] PM: early resume of devices complete after 3.249 msecs
[ 79.754991] PM: resume of devices complete after 73.680 msecs
[ 79.765256] PM: resume devices took 0.080 seconds
[ 79.770040] Restarting tasks ... done.
[ 82.681061] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 82.688992] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
=============================
suspend 4 times
=============================
wakeup 6 seconds, sleep 4 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:51:50 2014
[ 82.886987] PM: Syncing filesystems ... done.
[ 82.924167] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 82.933940] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 82.965482] PM: suspend of devices complete after 19.380 msecs
[ 82.971404] PM: suspend devices took 0.030 seconds
[ 82.980456] PM: late suspend of devices complete after 4.233 msecs
[ 82.991214] PM: noirq suspend of devices complete after 4.547 msecs
[ 82.997503] Disabling non-boot CPUs ...
[ 83.004082] PM: noirq resume of devices complete after 2.543 msecs
[ 83.014422] PM: early resume of devices complete after 3.245 msecs
[ 83.023693] fec 2188000.ethernet eth0: rcv is not +last
[ 83.028985] fec 2188000.ethernet eth0: rcv is not +last
[ 83.034251] fec 2188000.ethernet eth0: rcv is not +last
[ 83.039543] fec 2188000.ethernet eth0: rcv is not +last
[ 83.114946] PM: resume of devices complete after 94.260 msecs
[ 83.125211] PM: resume devices took 0.100 seconds
[ 83.129994] Restarting tasks ... done.
[ 85.040570] fec 2188000.ethernet eth0: Link is Down
[ 85.092644] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 86.040976] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 86.048908] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
=============================
suspend 5 times
=============================
wakeup 5 seconds, sleep 5 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:52:00 2014
[ 87.261459] PM: Syncing filesystems ... done.
[ 87.346381] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 87.355212] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 87.375486] PM: suspend of devices complete after 8.229 msecs
[ 87.381337] PM: suspend devices took 0.020 seconds
[ 87.390415] PM: late suspend of devices complete after 4.259 msecs
[ 87.401187] PM: noirq suspend of devices complete after 4.558 msecs
[ 87.407476] Disabling non-boot CPUs ...
[ 87.414044] PM: noirq resume of devices complete after 2.534 msecs
[ 87.424424] PM: early resume of devices complete after 3.279 msecs
[ 87.434566] fec 2188000.ethernet eth0: rcv is not +last
[ 87.439865] fec 2188000.ethernet eth0: rcv is not +last
[ 87.514909] PM: resume of devices complete after 84.222 msecs
[ 87.525170] PM: resume devices took 0.090 seconds
[ 87.529955] Restarting tasks ... done.
[ 89.373573] fec 2188000.ethernet eth0: rcv is not +last
[ 89.378942] fec 2188000.ethernet eth0: rcv is not +last
[ 89.384242] fec 2188000.ethernet eth0: rcv is not +last
[ 89.389532] fec 2188000.ethernet eth0: rcv is not +last
[ 89.394817] fec 2188000.ethernet eth0: rcv is not +last
[ 89.400104] fec 2188000.ethernet eth0: rcv is not +last
[ 89.405391] fec 2188000.ethernet eth0: rcv is not +last
[ 89.410676] fec 2188000.ethernet eth0: rcv is not +last
[ 89.415962] fec 2188000.ethernet eth0: rcv is not +last
[ 89.421245] fec 2188000.ethernet eth0: rcv is not +last
[ 89.426528] fec 2188000.ethernet eth0: rcv is not +last
[ 89.431873] fec 2188000.ethernet eth0: rcv is not +last
[ 89.437189] fec 2188000.ethernet eth0: rcv is not +last
[ 89.442488] fec 2188000.ethernet eth0: rcv is not +last
[ 89.447781] fec 2188000.ethernet eth0: rcv is not +last
[ 89.453136] fec 2188000.ethernet eth0: rcv is not +last
[ 89.458431] fec 2188000.ethernet eth0: rcv is not +last
[ 89.463719] fec 2188000.ethernet eth0: rcv is not +last
[ 89.469005] fec 2188000.ethernet eth0: rcv is not +last
[ 89.474316] fec 2188000.ethernet eth0: rcv is not +last
[ 89.479601] fec 2188000.ethernet eth0: rcv is not +last
[ 89.487695] fec 2188000.ethernet eth0: rcv is not +last
[ 89.493100] fec 2188000.ethernet eth0: rcv is not +last
[ 89.498396] fec 2188000.ethernet eth0: rcv is not +last
[ 89.503732] fec 2188000.ethernet eth0: rcv is not +last
[ 89.509028] fec 2188000.ethernet eth0: rcv is not +last
[ 89.514358] fec 2188000.ethernet eth0: rcv is not +last
[ 89.519702] fec 2188000.ethernet eth0: rcv is not +last
[ 89.524995] fec 2188000.ethernet eth0: rcv is not +last
[ 89.530332] fec 2188000.ethernet eth0: rcv is not +last
[ 89.535619] fec 2188000.ethernet eth0: rcv is not +last
[ 89.540948] fec 2188000.ethernet eth0: rcv is not +last
[ 89.546240] fec 2188000.ethernet eth0: rcv is not +last
[ 89.551680] fec 2188000.ethernet eth0: rcv is not +last
[ 89.556984] fec 2188000.ethernet eth0: rcv is not +last
[ 89.562326] fec 2188000.ethernet eth0: rcv is not +last
[ 89.567617] fec 2188000.ethernet eth0: rcv is not +last
[ 89.572947] fec 2188000.ethernet eth0: rcv is not +last
[ 89.578241] fec 2188000.ethernet eth0: rcv is not +last
[ 89.583571] fec 2188000.ethernet eth0: rcv is not +last
[ 89.588934] fec 2188000.ethernet eth0: rcv is not +last
[ 89.594264] fec 2188000.ethernet eth0: rcv is not +last
[ 89.808371] fec 2188000.ethernet eth0: rcv is not +last
[ 89.813657] fec 2188000.ethernet eth0: rcv is not +last
[ 89.818906] fec 2188000.ethernet eth0: rcv is not +last
[ 89.824153] fec 2188000.ethernet eth0: rcv is not +last
[ 89.829400] fec 2188000.ethernet eth0: rcv is not +last
[ 89.834677] fec 2188000.ethernet eth0: rcv is not +last
[ 89.839926] fec 2188000.ethernet eth0: rcv is not +last
[ 89.845185] fec 2188000.ethernet eth0: rcv is not +last
[ 89.850433] fec 2188000.ethernet eth0: rcv is not +last
[ 89.855686] fec 2188000.ethernet eth0: rcv is not +last
[ 89.860932] fec 2188000.ethernet eth0: rcv is not +last
[ 89.866195] fec 2188000.ethernet eth0: rcv is not +last
[ 89.871444] fec 2188000.ethernet eth0: rcv is not +last
[ 89.876695] fec 2188000.ethernet eth0: rcv is not +last
[ 89.881940] fec 2188000.ethernet eth0: rcv is not +last
[ 89.887185] fec 2188000.ethernet eth0: rcv is not +last
[ 89.892432] fec 2188000.ethernet eth0: rcv is not +last
[ 89.897677] fec 2188000.ethernet eth0: rcv is not +last
[ 89.902922] fec 2188000.ethernet eth0: rcv is not +last
[ 89.908183] fec 2188000.ethernet eth0: rcv is not +last
[ 89.913430] fec 2188000.ethernet eth0: rcv is not +last
[ 90.089265] fec 2188000.ethernet eth0: rcv is not +last
[ 90.094625] fec 2188000.ethernet eth0: rcv is not +last
[ 90.099925] fec 2188000.ethernet eth0: rcv is not +last
[ 90.105254] fec 2188000.ethernet eth0: rcv is not +last
[ 90.110543] fec 2188000.ethernet eth0: rcv is not +last
[ 90.115829] fec 2188000.ethernet eth0: rcv is not +last
[ 90.121129] fec 2188000.ethernet eth0: rcv is not +last
[ 90.126414] fec 2188000.ethernet eth0: rcv is not +last
[ 90.131701] fec 2188000.ethernet eth0: rcv is not +last
[ 90.136984] fec 2188000.ethernet eth0: rcv is not +last
[ 90.142267] fec 2188000.ethernet eth0: rcv is not +last
[ 90.147551] fec 2188000.ethernet eth0: rcv is not +last
[ 90.152833] fec 2188000.ethernet eth0: rcv is not +last
[ 90.158114] fec 2188000.ethernet eth0: rcv is not +last
[ 90.163451] fec 2188000.ethernet eth0: rcv is not +last
[ 90.168753] fec 2188000.ethernet eth0: rcv is not +last
[ 90.174039] fec 2188000.ethernet eth0: rcv is not +last
[ 90.179321] fec 2188000.ethernet eth0: rcv is not +last
[ 90.184603] fec 2188000.ethernet eth0: rcv is not +last
[ 90.189913] fec 2188000.ethernet eth0: rcv is not +last
[ 90.195205] fec 2188000.ethernet eth0: rcv is not +last
[ 90.200489] fec 2188000.ethernet eth0: rcv is not +last
[ 90.205771] fec 2188000.ethernet eth0: rcv is not +last
[ 90.211052] fec 2188000.ethernet eth0: rcv is not +last
[ 90.216332] fec 2188000.ethernet eth0: rcv is not +last
[ 90.221612] fec 2188000.ethernet eth0: rcv is not +last
[ 90.226894] fec 2188000.ethernet eth0: rcv is not +last
[ 90.232178] fec 2188000.ethernet eth0: rcv is not +last
[ 90.237460] fec 2188000.ethernet eth0: rcv is not +last
[ 90.242745] fec 2188000.ethernet eth0: rcv is not +last
[ 90.248028] fec 2188000.ethernet eth0: rcv is not +last
[ 90.253382] fec 2188000.ethernet eth0: rcv is not +last
[ 90.258673] fec 2188000.ethernet eth0: rcv is not +last
[ 90.263956] fec 2188000.ethernet eth0: rcv is not +last
[ 90.269248] fec 2188000.ethernet eth0: rcv is not +last
[ 90.274536] fec 2188000.ethernet eth0: rcv is not +last
[ 90.279817] fec 2188000.ethernet eth0: rcv is not +last
[ 90.285101] fec 2188000.ethernet eth0: rcv is not +last
[ 90.290381] fec 2188000.ethernet eth0: rcv is not +last
[ 90.295658] fec 2188000.ethernet eth0: rcv is not +last
[ 90.300966] fec 2188000.ethernet eth0: rcv is not +last
[ 90.306256] fec 2188000.ethernet eth0: rcv is not +last
[ 90.373535] fec 2188000.ethernet eth0: rcv is not +last
[ 90.378893] fec 2188000.ethernet eth0: rcv is not +last
[ 90.384193] fec 2188000.ethernet eth0: rcv is not +last
[ 90.389482] fec 2188000.ethernet eth0: rcv is not +last
[ 90.394765] fec 2188000.ethernet eth0: rcv is not +last
[ 90.400067] fec 2188000.ethernet eth0: rcv is not +last
[ 90.405354] fec 2188000.ethernet eth0: rcv is not +last
[ 90.410643] fec 2188000.ethernet eth0: rcv is not +last
[ 90.415927] fec 2188000.ethernet eth0: rcv is not +last
[ 90.421211] fec 2188000.ethernet eth0: rcv is not +last
[ 90.426538] fec 2188000.ethernet eth0: rcv is not +last
[ 90.431827] fec 2188000.ethernet eth0: rcv is not +last
[ 90.437109] fec 2188000.ethernet eth0: rcv is not +last
[ 90.442403] fec 2188000.ethernet eth0: rcv is not +last
[ 90.447688] fec 2188000.ethernet eth0: rcv is not +last
[ 90.452974] fec 2188000.ethernet eth0: rcv is not +last
[ 90.458256] fec 2188000.ethernet eth0: rcv is not +last
[ 90.463537] fec 2188000.ethernet eth0: rcv is not +last
[ 90.468817] fec 2188000.ethernet eth0: rcv is not +last
[ 90.474137] fec 2188000.ethernet eth0: rcv is not +last
[ 90.479483] fec 2188000.ethernet eth0: rcv is not +last
[ 90.565466] fec 2188000.ethernet eth0: rcv is not +last
[ 90.570767] fec 2188000.ethernet eth0: rcv is not +last
[ 90.576027] fec 2188000.ethernet eth0: rcv is not +last
[ 90.581280] fec 2188000.ethernet eth0: rcv is not +last
[ 90.586535] fec 2188000.ethernet eth0: rcv is not +last
[ 90.591789] fec 2188000.ethernet eth0: rcv is not +last
[ 90.597041] fec 2188000.ethernet eth0: rcv is not +last
[ 90.602297] fec 2188000.ethernet eth0: rcv is not +last
[ 90.607553] fec 2188000.ethernet eth0: rcv is not +last
[ 90.612833] fec 2188000.ethernet eth0: rcv is not +last
[ 90.618087] fec 2188000.ethernet eth0: rcv is not +last
[ 90.623338] fec 2188000.ethernet eth0: rcv is not +last
[ 90.628601] fec 2188000.ethernet eth0: rcv is not +last
[ 90.633902] fec 2188000.ethernet eth0: rcv is not +last
[ 90.639159] fec 2188000.ethernet eth0: rcv is not +last
[ 90.644411] fec 2188000.ethernet eth0: rcv is not +last
[ 90.649668] fec 2188000.ethernet eth0: rcv is not +last
[ 90.654920] fec 2188000.ethernet eth0: rcv is not +last
[ 90.660173] fec 2188000.ethernet eth0: rcv is not +last
=============================
suspend 6 times
=============================
wakeup 10 seconds, sleep 1 seconds
rtcwakeup.out: wakeup from "mem" using rtc0 at Thu Oct 23 21:52:16 2014
[ 92.660264] PM: Syncing filesystems ... done.
[ 92.667594] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 92.676193] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 92.714883] PM: suspend of devices complete after 27.239 msecs
[ 92.720796] PM: suspend devices took 0.040 seconds
[ 92.728591] PM: late suspend of devices complete after 2.981 msecs
[ 92.738102] PM: noirq suspend of devices complete after 3.245 msecs
[ 92.744519] Disabling non-boot CPUs ...
[ 92.750323] PM: noirq resume of devices complete after 1.879 msecs
[ 92.759985] PM: early resume of devices complete after 2.771 msecs
[ 92.768895] fec 2188000.ethernet eth0: rcv is not +last
[ 92.774169] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 92.782264] pgd = 80004000
[ 92.784976] [00000000] *pgd=00000000
[ 92.788575] Internal error: Oops: 17 [#1] SMP ARM
[ 92.793282] Modules linked in:
[ 92.796359] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-rc2 #845
[ 92.802807] task: 80960270 ti: 80954000 task.ti: 80954000
[ 92.808221] PC is at memcpy+0x80/0x330
[ 92.811980] LR is at gro_pull_from_frag0+0x34/0xa8
[ 92.816777] pc : [<802aea40>] lr : [<80547ae0>] psr: 00000153
[ 92.816777] sp : 80955ce4 ip : 00000010 fp : 80955d1c
[ 92.828256] r10: 0000000e r9 : 00000000 r8 : 8095d9c0
[ 92.833483] r7 : 8095d9c0 r6 : 00000012 r5 : bd921140 r4 : bd97f6c0
[ 92.840012] r3 : 00000804 r2 : fffffff2 r1 : 00000000 r0 : bd92093c
[ 92.846544] Flags: nzcv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel
[ 92.853942] Control: 10c5387d Table: bc0f804a DAC: 00000015
[ 92.859692] Process swapper/0 (pid: 0, stack limit = 0x80954240)
[ 92.865703] Stack: (0x80955ce4 to 0x80956000)
[ 92.870070] 5ce0: bd921140 00000012 8095d9c0 8095d9c0 bd92093c bd97f6c0 80547ae0
[ 92.878252] 5d00: 00000000 bd97f6c0 be03f710 00000003 80955d74 80955d20 8054a028 80547ab8
[ 92.886434] 5d20: 00000000 00000000 8054a0e4 811b1080 000007c1 befa3400 00000002 be03f000
[ 92.894616] 5d40: 80955d7c 8095d9c0 00000000 bd97f6c0 be03f710 be03f004 00000000 00000080
[ 92.902799] 5d60: 00000002 be03f000 80955d8c 80955d78 8054a570 80549fc0 bf084020 bd97f6c0
[ 92.910981] 5d80: 80955e1c 80955d90 80423b20 8054a554 00000000 00000001 00004018 bd920940
[ 92.919163] 5da0: 00000017 00000000 80fe7940 be03f710 be03f600 00000040 be03f694 00000000
[ 92.927346] 5dc0: 00000000 80994c1c bdaf03c0 00000000 00000000 be3c1004 be3c1000 00000040
[ 92.935529] 5de0: bf084020 00000001 8005fa60 8005f91c 0000012c 0000012c be7c41c0 80956100
[ 92.943712] 5e00: be7c41c8 00000040 be03f710 00000003 80955e54 80955e20 8054afa4 8042374c
[ 92.951894] 5e20: 8005fa60 ffffaf0e 00000008 00000000 8095608c 80956080 80954000 40000003
[ 92.960077] 5e40: 00000100 00000003 80955ea4 80955e58 8002dd14 8054aee4 be01065c be01065c
[ 92.968260] 5e60: 80955e84 00000001 00200000 ffffaf0d 0000000a 80954018 80955ea4 80954028
[ 92.976443] 5e80: 8095cd78 80951e6c 80954000 00000000 00000001 be00a400 80955ebc 80955ea8
[ 92.984626] 5ea0: 8002e1c4 8002dc18 00000000 8095cd78 80955eec 80955ec0 8006b7dc 8002e118
[ 92.992807] 5ec0: 80955f18 c080e10c 00000086 80955f18 8095cef0 c080e100 806b56ec 00000000
[ 93.000990] 5ee0: 80955f14 80955ef0 8000877c 8006b770 80960270 8000f73c 20000153 ffffffff
[ 93.009173] 5f00: 80955f4c 809b8bb0 80955f6c 80955f18 80013264 80008760 00000001 00000001
[ 93.017356] 5f20: 00000000 80960270 80954000 8095c9c4 8095c978 809b8bb0 809b8bb0 806b56ec
[ 93.025539] 5f40: 00000000 80955f6c 00000000 80955f60 8005faa8 8000f73c 20000153 ffffffff
[ 93.033721] 5f60: 80955f84 80955f70 8005b2b8 8000f720 00000000 8095c8c0 80955fac 80955f88
[ 93.041904] 5f80: 806a5c88 8005b1c0 00000000 00000000 806a5bd8 809b8e00 8095ca78 ffffffff
[ 93.050089] 5fa0: 80955ff4 80955fb0 808fbc94 806a5be4 ffffffff ffffffff 808fb6cc 00000000
[ 93.058271] 5fc0: 00000000 80942f48 00000000 809b9094 8095c968 80942f44 80961988 8000406a
[ 93.066454] 5fe0: 412fc09a 00000000 00000000 80955ff8 80008074 808fb950 00000000 00000000
[ 93.074630] Backtrace:
[ 93.077103] [<80547aac>] (gro_pull_from_frag0) from [<8054a028>] (dev_gro_receive+0x74/0x3e4)
[ 93.085632] r6:00000003 r5:be03f710 r4:bd97f6c0 r3:00000000
[ 93.091360] [<80549fb4>] (dev_gro_receive) from [<8054a570>] (napi_gro_receive+0x28/0xa8)
[ 93.099537] r10:be03f000 r9:00000002 r8:00000080 r7:00000000 r6:be03f004 r5:be03f710
[ 93.107440] r4:bd97f6c0
[ 93.109999] [<8054a548>] (napi_gro_receive) from [<80423b20>] (fec_enet_rx_napi+0x3e0/0xabc)
[ 93.118438] r5:bd97f6c0 r4:bf084020
[ 93.122053] [<80423740>] (fec_enet_rx_napi) from [<8054afa4>] (net_rx_action+0xcc/0x1b4)
[ 93.130146] r10:00000003 r9:be03f710 r8:00000040 r7:be7c41c8 r6:80956100 r5:be7c41c0
[ 93.138048] r4:0000012c
[ 93.140606] [<8054aed8>] (net_rx_action) from [<8002dd14>] (__do_softirq+0x108/0x2a4)
[ 93.148438] r10:00000003 r9:00000100 r8:40000003 r7:80954000 r6:80956080 r5:8095608c
[ 93.156341] r4:00000000
[ 93.158896] [<8002dc0c>] (__do_softirq) from [<8002e1c4>] (irq_exit+0xb8/0x10c)
[ 93.166206] r10:be00a400 r9:00000001 r8:00000000 r7:80954000 r6:80951e6c r5:8095cd78
[ 93.174109] r4:80954028
[ 93.176668] [<8002e10c>] (irq_exit) from [<8006b7dc>] (__handle_domain_irq+0x78/0xcc)
[ 93.184499] r5:8095cd78 r4:00000000
[ 93.188109] [<8006b764>] (__handle_domain_irq) from [<8000877c>] (gic_handle_irq+0x28/0x68)
[ 93.196461] r10:00000000 r9:806b56ec r8:c080e100 r7:8095cef0 r6:80955f18 r5:00000086
[ 93.204368] r4:c080e10c r3:80955f18
[ 93.207979] [<80008754>] (gic_handle_irq) from [<80013264>] (__irq_svc+0x44/0x5c)
[ 93.215465] Exception stack(0x80955f18 to 0x80955f60)
[ 93.220519] 5f00: 00000001 00000001
[ 93.228703] 5f20: 00000000 80960270 80954000 8095c9c4 8095c978 809b8bb0 809b8bb0 806b56ec
[ 93.236885] 5f40: 00000000 80955f6c 00000000 80955f60 8005faa8 8000f73c 20000153 ffffffff
[ 93.245063] r8:809b8bb0 r7:80955f4c r6:ffffffff r5:20000153 r4:8000f73c r3:80960270
[ 93.252892] [<8000f714>] (arch_cpu_idle) from [<8005b2b8>] (cpu_startup_entry+0x104/0x16c)
[ 93.261171] [<8005b1b4>] (cpu_startup_entry) from [<806a5c88>] (rest_init+0xb0/0xd8)
[ 93.268916] r7:8095c8c0 r3:00000000
[ 93.272535] [<806a5bd8>] (rest_init) from [<808fbc94>] (start_kernel+0x350/0x3bc)
[ 93.280018] r5:ffffffff r4:8095ca78
[ 93.283629] [<808fb944>] (start_kernel) from [<80008074>] (0x80008074)
[ 93.290165] Code: e320f000 e4913004 e4914004 e4915004 (e4916004)
[ 93.296317] ---[ end trace 6785d73df15a3bc3 ]---
[ 93.300943] Kernel panic - not syncing: Fatal exception in interrupt
[ 93.307306] ---[ end Kernel panic - not syncing: Fatal exception in interrupt
^ permalink raw reply
* Re: [PATCH 6/7] can: m_can: update to support CAN FD features
From: Dong Aisheng @ 2014-10-30 2:42 UTC (permalink / raw)
To: Oliver Hartkopp
Cc: linux-can, mkl, wg, varkabhadram, netdev, linux-arm-kernel
In-Reply-To: <54513E38.4020703@hartkopp.net>
On Wed, Oct 29, 2014 at 08:21:28PM +0100, Oliver Hartkopp wrote:
> Hello Dong,
>
> thanks for your update to support CAN FD with the 3.0.x M_CAN IP core.
>
> AFAIK from the last CAN in Automation (CiA) Plugfest which took place in
> Nuremberg yesterday, there are two more IP cores on the way:
>
> v3.0.1 / v3.0.2 (the current spec from the Bosch website)
>
> v3.1.0 which will support per-frame CAN/CANFD switching in the tx path
> (the FDF/(former)EDL bit and the BRS bit appear in the TX buffer element at
> the bit position you know from reading the RX FIFO element)
>
> v3.2.0 which will support the final(?) ISO specification with a bitstuffing
> counter before the CRC in the frame on the wire.
>
Sounds good.
> So first I would suggest to check the core release register (CREL) to be
> version 3.0.x and quit the driver initialization if it doesn't fit this
> version. I would suggest to provide a separate patch for that check. What
> about printing the core release version into the kernel log at driver
> initialization time?
>
One question is that if v3.1.0 and v3.2.0 will be backward compatible with
v3.0.1, if yes, how about let the driver still work for them instead of
simply quit?
And then we can add new features according new released IP version.
> Regarding the CAN FD support in this patch I have some remarks in the text ...
>
> On 10/29/2014 11:45 AM, Dong Aisheng wrote:
>
> > /* Rx Buffer Element */
> > +/* R0 */
> > #define RX_BUF_ESI BIT(31)
> > #define RX_BUF_XTD BIT(30)
> > #define RX_BUF_RTR BIT(29)
> > +/* R1 */
> > +#define RX_BUF_ANMF BIT(31)
> > +#define RX_BUF_EDL BIT(21)
> > +#define RX_BUF_BRS BIT(20)
> >
> > /* Tx Buffer Element */
> > +/* R0 */
> > #define TX_BUF_XTD BIT(30)
> > #define TX_BUF_RTR BIT(29)
> >
> > @@ -327,11 +357,12 @@ static inline void m_can_disable_all_interrupts(const struct m_can_priv *priv)
> > m_can_write(priv, M_CAN_ILE, 0x0);
> > }
> >
> > -static void m_can_read_fifo(const struct net_device *dev, struct can_frame *cf,
> > +static void m_can_read_fifo(const struct net_device *dev, struct canfd_frame *cf,
> > u32 rxfs)
> > {
> > struct m_can_priv *priv = netdev_priv(dev);
> > u32 id, fgi;
> > + int i;
> >
> > /* calculate the fifo get index for where to read data */
> > fgi = (rxfs & RXFS_FGI_MASK) >> RXFS_FGI_OFF;
> > @@ -341,15 +372,23 @@ static void m_can_read_fifo(const struct net_device *dev, struct can_frame *cf,
> > else
> > cf->can_id = (id >> 18) & CAN_SFF_MASK;
> >
> > + if (id & RX_BUF_ESI) {
> > + cf->flags |= CANFD_ESI;
> > + netdev_dbg(dev, "ESI Error\n");
> > + }
> > +
> > if (id & RX_BUF_RTR) {
> > cf->can_id |= CAN_RTR_FLAG;
>
> When RX_BUF_EDL is set you should not check for RX_BUF_RTR as RTR is not
> allowed for CAN FD.
>
Right, will change it.
> > } else {
> > id = m_can_fifo_read(priv, fgi, M_CAN_FIFO_DLC);
> > - cf->can_dlc = get_can_dlc((id >> 16) & 0x0F);
> > - *(u32 *)(cf->data + 0) = m_can_fifo_read(priv, fgi,
> > - M_CAN_FIFO_DATA(0));
> > - *(u32 *)(cf->data + 4) = m_can_fifo_read(priv, fgi,
> > - M_CAN_FIFO_DATA(1));
> > + cf->len = can_dlc2len(get_canfd_dlc((id >> 16) & 0x0F));
> > +
> > + if (id & RX_BUF_BRS)
> > + cf->flags |= CANFD_BRS;
> > +
> > + for (i = 0; i < cf->len; i += 4)
> > + *(u32 *)(cf->data + i) =
> > + m_can_fifo_read(priv, fgi, M_CAN_FIFO_DATA(i / 4));
> > }
> >
> > /* acknowledge rx fifo 0 */
> > @@ -361,7 +400,7 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
> > struct m_can_priv *priv = netdev_priv(dev);
> > struct net_device_stats *stats = &dev->stats;
> > struct sk_buff *skb;
> > - struct can_frame *frame;
> > + struct canfd_frame *frame;
> > u32 pkts = 0;
> > u32 rxfs;
> >
> > @@ -375,7 +414,7 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
> > if (rxfs & RXFS_RFL)
> > netdev_warn(dev, "Rx FIFO 0 Message Lost\n");
> >
> > - skb = alloc_can_skb(dev, &frame);
> > + skb = alloc_canfd_skb(dev, &frame);
>
> You are *always* allocating CAN FD frames now?
>
Yes, currently it is.
The test seemed ok using CAN FD frames even receive normal frame.
The issue i know is that candump seemed can not recognize remote frame reported
by the driver.
Not sure if it's caused by canfd_frame used.
Will test and check.
> Depending on RX_BUF_EDL in the RX FIFO message you should create a CAN or CAN
> FD frame.
>
> Of course you can use the struct canfd_frame in m_can_read_fifo() as the
> layout of the struct can_frame is identical when filled with 'normal' CAN
> frame content.
>
> But you need to distinguish whether it is a CAN or CAN FD frame when
> allocating the skb based on the RX_BUF_EDL value.
>
Yes, i think it's good to do that.
One obvious benefit is it saves memory at least.
> > if (!skb) {
> > stats->rx_dropped++;
> > return pkts;
> > @@ -384,7 +423,7 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
> > m_can_read_fifo(dev, frame, rxfs);
> >
> > stats->rx_packets++;
> > - stats->rx_bytes += frame->can_dlc;
> > + stats->rx_bytes += frame->len;
> >
> > netif_receive_skb(skb);
> >
>
> The rest of your entire patch set looks very good from my perspective.
>
Thanks for the review. :-)
> Best regards,
> Oliver
>
>
Regards
Dong Aisheng
^ permalink raw reply
* Re: [PATCH] Bluetooth: Revert "Bluetooth: rfcomm: Remove unnecessary krfcommd event"
From: Peter Hurley @ 2014-10-30 2:06 UTC (permalink / raw)
To: Sasha Levin, marcel, gustavo, johan.hedberg
Cc: davem, linux-bluetooth, netdev, linux-kernel
In-Reply-To: <1414632736-18782-1-git-send-email-sasha.levin@oracle.com>
Hi Sasha,
On 10/29/2014 09:32 PM, Sasha Levin wrote:
> This reverts commit e5842cdb0f4f2c68f6acd39e286e5d10d8c073e8.
>
> We can't call rfcomm_process_sessions() while our task state is not
> TASK_RUNNING since rfcomm_process_sessions() tries to lock mutexes
> and sleep. The scheduler even complains about it:
>
> [ 21.683959] WARNING: CPU: 13 PID: 8165 at kernel/sched/core.c:7305 __might_sleep+0xe5/0x1b0()
> [ 21.683962] do not call blocking ops when !TASK_RUNNING; state=1 set at rfcomm_run (net/bluetooth/rfcomm/core.c:2096)
This problem is in-process with Peter Z and Oleg and a new api
for handling nested sleeps.
The thread is here
http://www.gossamer-threads.com/lists/linux/kernel/2019181?do=post_view_threaded
and the reminder thread here
https://lkml.org/lkml/2014/10/27/343
Regards,
Peter Hurley
^ permalink raw reply
* Re: TCP NewReno and single retransmit
From: Neal Cardwell @ 2014-10-30 2:03 UTC (permalink / raw)
To: Marcelo Ricardo Leitner; +Cc: netdev, Yuchung Cheng, Eric Dumazet
In-Reply-To: <544E93BD.50202@redhat.com>
On Mon, Oct 27, 2014 at 2:49 PM, Marcelo Ricardo Leitner
<mleitner@redhat.com> wrote:
> Hi,
>
> We have a report from a customer saying that on a very calm connection, like
> having only a single data packet within some minutes, if this packet gets to
> be re-transmitted, retrans_stamp is only cleared when the next acked packet
> is received. But this may make we abort the connection too soon if this next
> packet also gets lost, because the reference for the initial loss is still
> for a big while ago..
...
> @@ -2382,31 +2382,32 @@ static inline bool tcp_may_undo(const struct
> tcp_sock *tp)
> static bool tcp_try_undo_recovery(struct sock *sk)
...
> if (tp->snd_una == tp->high_seq && tcp_is_reno(tp)) {
> /* Hold old state until something *above* high_seq
> * is ACKed. For Reno it is MUST to prevent false
> * fast retransmits (RFC2582). SACK TCP is safe. */
> tcp_moderate_cwnd(tp);
> + tp->retrans_stamp = 0;
> return true;
> }
> tcp_set_ca_state(sk, TCP_CA_Open);
> return false;
> }
>
> We would still hold state, at least part of it.. WDYT?
This approach sounds OK to me as long as we include a check of
tcp_any_retrans_done(), as we do in the similar code paths (for
motivation, see the comment above tcp_any_retrans_done()).
So it sounds fine to me if you change that one new line to the following 2:
+ if (!tcp_any_retrans_done(sk))
+ tp->retrans_stamp = 0;
Nice catch!
neal
^ permalink raw reply
* [PATCH -next] syncookies: only increment SYNCOOKIESFAILED on validation error
From: Florian Westphal @ 2014-10-30 1:55 UTC (permalink / raw)
To: netdev; +Cc: Florian Westphal
Only count packets that failed cookie-authentication.
We can get SYNCOOKIESFAILED > 0 while we never even sent a single cookie.
Signed-off-by: Florian Westphal <fw@strlen.de>
---
net/ipv4/syncookies.c | 7 +++++--
net/ipv6/syncookies.c | 7 +++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
index 32b98d0..4ac7bca 100644
--- a/net/ipv4/syncookies.c
+++ b/net/ipv4/syncookies.c
@@ -275,8 +275,11 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb)
if (!sysctl_tcp_syncookies || !th->ack || th->rst)
goto out;
- if (tcp_synq_no_recent_overflow(sk) ||
- (mss = __cookie_v4_check(ip_hdr(skb), th, cookie)) == 0) {
+ if (tcp_synq_no_recent_overflow(sk))
+ goto out;
+
+ mss = __cookie_v4_check(ip_hdr(skb), th, cookie);
+ if (mss == 0) {
NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_SYNCOOKIESFAILED);
goto out;
}
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
index 0e26e79..be291ba 100644
--- a/net/ipv6/syncookies.c
+++ b/net/ipv6/syncookies.c
@@ -171,8 +171,11 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
if (!sysctl_tcp_syncookies || !th->ack || th->rst)
goto out;
- if (tcp_synq_no_recent_overflow(sk) ||
- (mss = __cookie_v6_check(ipv6_hdr(skb), th, cookie)) == 0) {
+ if (tcp_synq_no_recent_overflow(sk))
+ goto out;
+
+ mss = __cookie_v6_check(ipv6_hdr(skb), th, cookie);
+ if (mss == 0) {
NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_SYNCOOKIESFAILED);
goto out;
}
--
2.0.4
^ permalink raw reply related
* [PATCH] Bluetooth: Revert "Bluetooth: rfcomm: Remove unnecessary krfcommd event"
From: Sasha Levin @ 2014-10-30 1:32 UTC (permalink / raw)
To: marcel, gustavo, johan.hedberg
Cc: peter, davem, linux-bluetooth, netdev, linux-kernel, Sasha Levin
This reverts commit e5842cdb0f4f2c68f6acd39e286e5d10d8c073e8.
We can't call rfcomm_process_sessions() while our task state is not
TASK_RUNNING since rfcomm_process_sessions() tries to lock mutexes
and sleep. The scheduler even complains about it:
[ 21.683959] WARNING: CPU: 13 PID: 8165 at kernel/sched/core.c:7305 __might_sleep+0xe5/0x1b0()
[ 21.683962] do not call blocking ops when !TASK_RUNNING; state=1 set at rfcomm_run (net/bluetooth/rfcomm/core.c:2096)
[ 21.683963] Modules linked in:
[ 21.683966] CPU: 13 PID: 8165 Comm: krfcommd Tainted: G W 3.18.0-rc2-next-20141029-sasha-00035-gd14bbcb-dirty #1425
[ 21.683969] ffffffffae2b4d0e 0000000000000000 ffff8805c0b23c00 ffff8805c0b23b98
[ 21.683972] ffffffffad010b76 0000000000000000 ffff8805c0b23bf8 ffff8805c0b23be8
[ 21.683975] ffffffffa3298dd8 ffffffffad0a0910 ffffffffa3309f95 ffff8805c0b23bc8
[ 21.683976] Call Trace:
[ 21.683979] dump_stack (lib/dump_stack.c:52)
[ 21.683982] warn_slowpath_common (kernel/panic.c:432)
[ 21.683985] ? __schedule (kernel/sched/core.c:2840)
[ 21.683987] ? __might_sleep (kernel/sched/core.c:7311)
[ 21.683990] warn_slowpath_fmt (kernel/panic.c:446)
[ 21.683993] ? rfcomm_run (net/bluetooth/rfcomm/core.c:2096)
[ 21.683996] ? rfcomm_run (net/bluetooth/rfcomm/core.c:2096)
[ 21.683999] __might_sleep (kernel/sched/core.c:7311)
[ 21.684002] mutex_lock_nested (kernel/locking/mutex.c:508 kernel/locking/mutex.c:622)
[ 21.684004] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2937 kernel/sched/core.c:2845)
[ 21.684008] ? __this_cpu_preempt_check (lib/smp_processor_id.c:63)
[ 21.684011] rfcomm_run (net/bluetooth/rfcomm/core.c:1990 net/bluetooth/rfcomm/core.c:2102)
[ 21.684014] ? preempt_count_sub (kernel/sched/core.c:2641)
[ 21.684017] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2937 kernel/sched/core.c:2845)
[ 21.684020] ? rfcomm_process_rx (net/bluetooth/rfcomm/core.c:2088)
[ 21.684023] ? rfcomm_process_rx (net/bluetooth/rfcomm/core.c:2088)
[ 21.684025] kthread (kernel/kthread.c:207)
[ 21.684029] ? trace_hardirqs_on_caller (kernel/locking/lockdep.c:2559 kernel/locking/lockdep.c:2601)
[ 21.684032] ? flush_kthread_work (kernel/kthread.c:176)
[ 21.684035] ret_from_fork (arch/x86/kernel/entry_64.S:348)
[ 21.684038] ? flush_kthread_work (kernel/kthread.c:176)
Instead, just go to the old way oftracking wakeups.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
net/bluetooth/rfcomm/core.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index bce9c3d..942de7765 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -48,6 +48,7 @@ static DEFINE_MUTEX(rfcomm_mutex);
#define rfcomm_lock() mutex_lock(&rfcomm_mutex)
#define rfcomm_unlock() mutex_unlock(&rfcomm_mutex)
+static unsigned long rfcomm_event;
static LIST_HEAD(session_list);
@@ -105,6 +106,7 @@ static void rfcomm_schedule(void)
{
if (!rfcomm_thread)
return;
+ set_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event);
wake_up_process(rfcomm_thread);
}
@@ -2092,18 +2094,19 @@ static int rfcomm_run(void *unused)
rfcomm_add_listener(BDADDR_ANY);
- while (1) {
+ while (!kthread_should_stop()) {
set_current_state(TASK_INTERRUPTIBLE);
-
- if (kthread_should_stop())
- break;
+ if (!test_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event)) {
+ /* No pending events. Let's sleep.
+ * Incoming connections and data will wake us up. */
+ schedule();
+ }
+ set_current_state(TASK_RUNNING);
/* Process stuff */
+ clear_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event);
rfcomm_process_sessions();
-
- schedule();
}
- __set_current_state(TASK_RUNNING);
rfcomm_kill_listener();
--
1.7.10.4
^ permalink raw reply related
* [PATCH v1 2/2] drivers: net: xgene: fix: Use separate resources
From: Iyappan Subramanian @ 2014-10-30 0:56 UTC (permalink / raw)
To: davem, netdev, devicetree
Cc: linux-arm-kernel, patches, kchudgar, Iyappan Subramanian
In-Reply-To: <1414630580-24640-1-git-send-email-isubramanian@apm.com>
This patch fixes the following kernel crash during SGMII based 1GbE probe.
BUG: Bad page state in process swapper/0 pfn:40fe6ad
page:ffffffbee37a75d8 count:-1 mapcount:0 mapping: (null) index:0x0
flags: 0x0()
page dumped because: nonzero _count
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.17.0+ #7
Call trace:
[<ffffffc000087fa0>] dump_backtrace+0x0/0x12c
[<ffffffc0000880dc>] show_stack+0x10/0x1c
[<ffffffc0004d981c>] dump_stack+0x74/0xc4
[<ffffffc00012fe70>] bad_page+0xd8/0x128
[<ffffffc000133000>] get_page_from_freelist+0x4b8/0x640
[<ffffffc000133260>] __alloc_pages_nodemask+0xd8/0x834
[<ffffffc0004194f8>] __netdev_alloc_frag+0x124/0x1b8
[<ffffffc00041bfdc>] __netdev_alloc_skb+0x90/0x10c
[<ffffffc00039ff30>] xgene_enet_refill_bufpool+0x11c/0x280
[<ffffffc0003a11a4>] xgene_enet_process_ring+0x168/0x340
[<ffffffc0003a1498>] xgene_enet_napi+0x1c/0x50
[<ffffffc00042b454>] net_rx_action+0xc8/0x18c
[<ffffffc0000b0880>] __do_softirq+0x114/0x24c
[<ffffffc0000b0c34>] irq_exit+0x94/0xc8
[<ffffffc0000e68a0>] __handle_domain_irq+0x8c/0xf4
[<ffffffc000081288>] gic_handle_irq+0x30/0x7c
This was due to hardware resource sharing conflict with the firmware. This
patch fixes this crash by using resources (descriptor ring, prefetch buffer)
that are not shared.
Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
Signed-off-by: Keyur Chudgar <kchudgar@apm.com>
---
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 6 +++---
drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 3 +++
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
index 3c208cc..ac37e26 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -639,9 +639,9 @@ static int xgene_enet_create_desc_rings(struct net_device *ndev)
struct device *dev = ndev_to_dev(ndev);
struct xgene_enet_desc_ring *rx_ring, *tx_ring, *cp_ring;
struct xgene_enet_desc_ring *buf_pool = NULL;
- u8 cpu_bufnum = 0, eth_bufnum = 0;
- u8 bp_bufnum = 0x20;
- u16 ring_id, ring_num = 0;
+ u8 cpu_bufnum = 0, eth_bufnum = START_ETH_BUFNUM;
+ u8 bp_bufnum = START_BP_BUFNUM;
+ u16 ring_id, ring_num = START_RING_NUM;
int ret;
/* allocate rx descriptor ring */
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.h b/drivers/net/ethernet/apm/xgene/xgene_enet_main.h
index 874e5a0..7d8b6ea 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.h
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.h
@@ -38,6 +38,9 @@
#define SKB_BUFFER_SIZE (XGENE_ENET_MAX_MTU - NET_IP_ALIGN)
#define NUM_PKT_BUF 64
#define NUM_BUFPOOL 32
+#define START_ETH_BUFNUM 2
+#define START_BP_BUFNUM 0x22
+#define START_RING_NUM 8
#define PHY_POLL_LINK_ON (10 * HZ)
#define PHY_POLL_LINK_OFF (PHY_POLL_LINK_ON / 5)
--
1.9.1
^ permalink raw reply related
* [PATCH v1 1/2] dtb: xgene: fix: Disable 10GbE and SGMII based 1GbE by default
From: Iyappan Subramanian @ 2014-10-30 0:56 UTC (permalink / raw)
To: davem, netdev, devicetree
Cc: linux-arm-kernel, patches, kchudgar, Iyappan Subramanian
In-Reply-To: <1414630580-24640-1-git-send-email-isubramanian@apm.com>
This patch disables 10GbE and SGMII based 1GbE interfaces by default
for backward compatibility with older firmware, which don't support
these interfaces.
The following kernel crash was reported when using older firmware (<= 1.13.28).
[ 0.980000] libphy: APM X-Gene MDIO bus: probed
[ 1.130000] Unhandled fault: synchronous external abort (0x96000010) at 0xffffff800009a17c
[ 1.140000] Internal error: : 96000010 [#1] SMP
[ 1.140000] Modules linked in:
[ 1.140000] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.17.0+ #21
[ 1.140000] task: ffffffc3f0110000 ti: ffffffc3f0064000 task.ti: ffffffc3f0064000
[ 1.140000] PC is at ioread32+0x58/0x68
[ 1.140000] LR is at xgene_enet_setup_ring+0x18c/0x1cc
[ 1.140000] pc : [<ffffffc0003cec68>] lr : [<ffffffc00053dad8>] pstate: a0000045
[ 1.140000] sp : ffffffc3f0067b20
[ 1.140000] x29: ffffffc3f0067b20 x28: ffffffc000aa8ea0
[ 1.140000] x27: ffffffc000bb2000 x26: ffffffc000a64270
[ 1.140000] x25: ffffffc000b05ad8 x24: ffffffc0ff99ba58
[ 1.140000] x23: 0000000000004000 x22: 0000000000004000
[ 1.140000] x21: 0000000000000200 x20: 0000000000200000
[ 1.140000] x19: ffffffc0ff99ba18 x18: ffffffc0007a6000
[ 1.140000] x17: 0000000000000007 x16: 000000000000000e
[ 1.140000] x15: 0000000000000001 x14: 0000000000000000
[ 1.140000] x13: ffffffbeedb71320 x12: 00000000ffffff80
[ 1.140000] x11: 0000000000000002 x10: 0000000000000000
[ 1.140000] x9 : 0000000000000000 x8 : ffffffc3eb2a4000
[ 1.140000] x7 : 0000000000000000 x6 : 0000000000000000
[ 1.140000] x5 : 0000000001080000 x4 : 000000007d654010
[ 1.140000] x3 : ffffffffffffffff x2 : 000000000003ffff
[ 1.140000] x1 : ffffff800009a17c x0 : ffffff800009a17c
The issue was that the older firmware does not support 10GbE and
SGMII based 1GBE interfaces.
The newer firmware (version 1.13.29) will support 10GbE and SGMII based 1GbE
and it will patch the dtb to enable these nodes on the fly.
Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
Signed-off-by: Keyur Chudgar <kchudgar@apm.com>
Reported-by: Dann Frazier <dann.frazier@canonical.com>
---
arch/arm64/boot/dts/apm-mustang.dts | 8 --------
arch/arm64/boot/dts/apm-storm.dtsi | 4 ++--
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/arch/arm64/boot/dts/apm-mustang.dts b/arch/arm64/boot/dts/apm-mustang.dts
index 2e25de0..f649000 100644
--- a/arch/arm64/boot/dts/apm-mustang.dts
+++ b/arch/arm64/boot/dts/apm-mustang.dts
@@ -40,11 +40,3 @@
&menet {
status = "ok";
};
-
-&sgenet0 {
- status = "ok";
-};
-
-&xgenet {
- status = "ok";
-};
diff --git a/arch/arm64/boot/dts/apm-storm.dtsi b/arch/arm64/boot/dts/apm-storm.dtsi
index 295c72d..52488c8 100644
--- a/arch/arm64/boot/dts/apm-storm.dtsi
+++ b/arch/arm64/boot/dts/apm-storm.dtsi
@@ -621,7 +621,7 @@
};
};
- sgenet0: ethernet@1f210000 {
+ sgenet0: sgenet@1f210000 {
compatible = "apm,xgene-enet";
status = "disabled";
reg = <0x0 0x1f210000 0x0 0x10000>,
@@ -635,7 +635,7 @@
phy-connection-type = "sgmii";
};
- xgenet: ethernet@1f610000 {
+ xgenet: xgenet@1f610000 {
compatible = "apm,xgene-enet";
status = "disabled";
reg = <0x0 0x1f610000 0x0 0xd100>,
--
1.9.1
^ permalink raw reply related
* [PATCH v1 0/2] drivers: net: xgene: Fix crash for backward compatibility
From: Iyappan Subramanian @ 2014-10-30 0:56 UTC (permalink / raw)
To: davem, netdev, devicetree
Cc: linux-arm-kernel, patches, kchudgar, Iyappan Subramanian
This patch set fixes the following issues that were reported during regression.
Patch 1/2: Disables 10GbE and SGMII based 1GbE by default for backward
compatiblity with older firmware (<= 1.13.28). Newer firmware
will enable these interfaces based on its configuration.
Patch 2/2: Use separate hardware resources (descriptor ring, prefetch buffer)
that are not shared with the firmware
---
Iyappan Subramanian (2):
dtb: xgene: fix: Disable 10GbE and SGMII based 1GbE by default
drivers: net: xgene: fix: Use separate resources
arch/arm64/boot/dts/apm-mustang.dts | 8 --------
arch/arm64/boot/dts/apm-storm.dtsi | 4 ++--
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 6 +++---
drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 3 +++
4 files changed, 8 insertions(+), 13 deletions(-)
--
1.9.1
^ permalink raw reply
* [PATCH net] cxgb4 : Fix missing initialization of win0_lock
From: Anish Bhatt @ 2014-10-30 0:54 UTC (permalink / raw)
To: netdev; +Cc: davem, hariprasad, leedom, Anish Bhatt
win0_lock was being used un-initialized, resulting in warning traces
being seen when lock debugging is enabled (and just wrong)
Fixes : fc5ab0209650 ('cxgb4: Replaced the backdoor mechanism to access the HW
memory with PCIe Window method')
Signed-off-by: Anish Bhatt <anish@chelsio.com>
Signed-off-by: Casey Leedom <leedom@chelsio.com>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 97683c1..8520d55 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -6614,6 +6614,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
spin_lock_init(&adapter->stats_lock);
spin_lock_init(&adapter->tid_release_lock);
+ spin_lock_init(&adapter->win0_lock);
INIT_WORK(&adapter->tid_release_task, process_tid_release_list);
INIT_WORK(&adapter->db_full_task, process_db_full);
--
2.1.2
^ permalink raw reply related
* [PATCH net-next] bnx2x: use napi_schedule_irqoff()
From: Eric Dumazet @ 2014-10-30 0:07 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Ariel Elior
From: Eric Dumazet <edumazet@google.com>
bnx2x_msix_fp_int() and bnx2x_interrupt() run from hard interrupt
context.
They can use napi_schedule_irqoff() instead of napi_schedule()
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Ariel Elior <ariel.elior@qlogic.com>
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 40beef5bca88ade51dd5248550c45059b8774476..e9af4af5edbaf2e464a2250038e0505aafbbcd06 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -1139,7 +1139,7 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie)
prefetch(fp->txdata_ptr[cos]->tx_cons_sb);
prefetch(&fp->sb_running_index[SM_RX_ID]);
- napi_schedule(&bnx2x_fp(bp, fp->index, napi));
+ napi_schedule_irqoff(&bnx2x_fp(bp, fp->index, napi));
return IRQ_HANDLED;
}
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 74fbf9ea7bd878e4ee3f7d1561f4b74afe46ca54..c4bd025c74c96496a4709a4505da8a2d0f028df4 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -1931,7 +1931,7 @@ irqreturn_t bnx2x_interrupt(int irq, void *dev_instance)
for_each_cos_in_tx_queue(fp, cos)
prefetch(fp->txdata_ptr[cos]->tx_cons_sb);
prefetch(&fp->sb_running_index[SM_RX_ID]);
- napi_schedule(&bnx2x_fp(bp, fp->index, napi));
+ napi_schedule_irqoff(&bnx2x_fp(bp, fp->index, napi));
status &= ~mask;
}
}
^ permalink raw reply related
* [PATCH net-next] mlx4: use napi_schedule_irqoff()
From: Eric Dumazet @ 2014-10-29 23:54 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Amir Vadai
From: Eric Dumazet <edumazet@google.com>
mlx4_en_rx_irq() and mlx4_en_tx_irq() run from hard interrupt context.
They can use napi_schedule_irqoff() instead of napi_schedule()
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 4 ++--
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index c8e75dab80553c876b195361456fb49587231055..c562c1468944f9ad4319e5faaf19bf9e66d15eaf 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -878,8 +878,8 @@ void mlx4_en_rx_irq(struct mlx4_cq *mcq)
struct mlx4_en_cq *cq = container_of(mcq, struct mlx4_en_cq, mcq);
struct mlx4_en_priv *priv = netdev_priv(cq->dev);
- if (priv->port_up)
- napi_schedule(&cq->napi);
+ if (likely(priv->port_up))
+ napi_schedule_irqoff(&cq->napi);
else
mlx4_en_arm_cq(priv, cq);
}
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
index 34c137878545fc672dad1a3d86e11c034c0ac368..5c4062921cdf46f1a7021a39705275c33ca4de77 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -479,8 +479,8 @@ void mlx4_en_tx_irq(struct mlx4_cq *mcq)
struct mlx4_en_cq *cq = container_of(mcq, struct mlx4_en_cq, mcq);
struct mlx4_en_priv *priv = netdev_priv(cq->dev);
- if (priv->port_up)
- napi_schedule(&cq->napi);
+ if (likely(priv->port_up))
+ napi_schedule_irqoff(&cq->napi);
else
mlx4_en_arm_cq(priv, cq);
}
^ permalink raw reply related
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