This is a note to let you know that I've just added the patch titled
tcp: provide timestamps for partial writes
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
tcp-provide-timestamps-for-partial-writes.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Soheil Hassas Yeganeh <soheil(a)google.com>
Date: Wed, 4 Jan 2017 11:19:34 -0500
Subject: tcp: provide timestamps for partial writes
From: Soheil Hassas Yeganeh <soheil(a)google.com>
[ Upstream commit ad02c4f547826167a709dab8a89a1caefd2c1f50 ]
For TCP sockets, TX timestamps are only captured when the user data
is successfully and fully written to the socket. In many cases,
however, TCP writes can be partial for which no timestamp is
collected.
Collect timestamps whenever any user data is (fully or partially)
copied into the socket. Pass tcp_write_queue_tail to tcp_tx_timestamp
instead of the local skb pointer since it can be set to NULL on
the error path.
Note that tcp_write_queue_tail can be NULL, even if bytes have been
copied to the socket. This is because acknowledgements are being
processed in tcp_sendmsg(), and by the time tcp_tx_timestamp is
called tcp_write_queue_tail can be NULL. For such cases, this patch
does not collect any timestamps (i.e., it is best-effort).
This patch is written with suggestions from Willem de Bruijn and
Eric Dumazet.
Change-log V1 -> V2:
- Use sockc.tsflags instead of sk->sk_tsflags.
- Use the same code path for normal writes and errors.
Signed-off-by: Soheil Hassas Yeganeh <soheil(a)google.com>
Acked-by: Yuchung Cheng <ycheng(a)google.com>
Cc: Willem de Bruijn <willemb(a)google.com>
Cc: Eric Dumazet <edumazet(a)google.com>
Cc: Neal Cardwell <ncardwell(a)google.com>
Cc: Martin KaFai Lau <kafai(a)fb.com>
Acked-by: Willem de Bruijn <willemb(a)google.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
net/ipv4/tcp.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -431,7 +431,7 @@ EXPORT_SYMBOL(tcp_init_sock);
static void tcp_tx_timestamp(struct sock *sk, u16 tsflags, struct sk_buff *skb)
{
- if (tsflags) {
+ if (tsflags && skb) {
struct skb_shared_info *shinfo = skb_shinfo(skb);
struct tcp_skb_cb *tcb = TCP_SKB_CB(skb);
@@ -966,10 +966,8 @@ new_segment:
copied += copy;
offset += copy;
size -= copy;
- if (!size) {
- tcp_tx_timestamp(sk, sk->sk_tsflags, skb);
+ if (!size)
goto out;
- }
if (skb->len < size_goal || (flags & MSG_OOB))
continue;
@@ -995,8 +993,11 @@ wait_for_memory:
}
out:
- if (copied && !(flags & MSG_SENDPAGE_NOTLAST))
- tcp_push(sk, flags, mss_now, tp->nonagle, size_goal);
+ if (copied) {
+ tcp_tx_timestamp(sk, sk->sk_tsflags, tcp_write_queue_tail(sk));
+ if (!(flags & MSG_SENDPAGE_NOTLAST))
+ tcp_push(sk, flags, mss_now, tp->nonagle, size_goal);
+ }
return copied;
do_error:
@@ -1289,7 +1290,6 @@ new_segment:
copied += copy;
if (!msg_data_left(msg)) {
- tcp_tx_timestamp(sk, sockc.tsflags, skb);
if (unlikely(flags & MSG_EOR))
TCP_SKB_CB(skb)->eor = 1;
goto out;
@@ -1320,8 +1320,10 @@ wait_for_memory:
}
out:
- if (copied)
+ if (copied) {
+ tcp_tx_timestamp(sk, sockc.tsflags, tcp_write_queue_tail(sk));
tcp_push(sk, flags, mss_now, tp->nonagle, size_goal);
+ }
out_nopush:
release_sock(sk);
return copied + copied_syn;
Patches currently in stable-queue which might be from soheil(a)google.com are
queue-4.9/tcp-provide-timestamps-for-partial-writes.patch
This is a note to let you know that I've just added the patch titled
staging: rtl8712: fixed little endian problem
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
staging-rtl8712-fixed-little-endian-problem.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Jannik Becher <becher.jannik(a)gmail.com>
Date: Tue, 20 Dec 2016 18:59:46 +0100
Subject: staging: rtl8712: fixed little endian problem
From: Jannik Becher <becher.jannik(a)gmail.com>
[ Upstream commit 502c80744fcac6b16f28699469c70db499fe2f69 ]
Fixed a sparse warning.
Using function le16_to_cpus() to avoid double assignment.
Signed-off-by: Jannik Becher <becher.jannik(a)gmail.com>
Tested-by: Larry Finger <Larry.Finger(a)lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -199,7 +199,7 @@ static noinline_for_stack char *translat
iwe.cmd = SIOCGIWMODE;
memcpy((u8 *)&cap, r8712_get_capability_from_ie(pnetwork->network.IEs),
2);
- cap = le16_to_cpu(cap);
+ le16_to_cpus(&cap);
if (cap & (WLAN_CAPABILITY_IBSS | WLAN_CAPABILITY_BSS)) {
if (cap & WLAN_CAPABILITY_BSS)
iwe.u.mode = (u32)IW_MODE_MASTER;
Patches currently in stable-queue which might be from becher.jannik(a)gmail.com are
queue-4.9/staging-rtl8712-fixed-little-endian-problem.patch
This is a note to let you know that I've just added the patch titled
staging: wilc1000: Fix endian sparse warning
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
staging-wilc1000-fix-endian-sparse-warning.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Mike Kofron <mpkofron(a)gmail.com>
Date: Thu, 29 Dec 2016 16:35:48 -0500
Subject: staging: wilc1000: Fix endian sparse warning
From: Mike Kofron <mpkofron(a)gmail.com>
[ Upstream commit 94500d5667386119c27725fe314f6882f68580a9 ]
drivers/staging/wilc1000/linux_wlan.c:995:18: warning: restricted __be16 degrades to integer
Signed-off-by: Mike Kofron <mpkofron(a)gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/wilc1000/linux_wlan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1001,7 +1001,7 @@ int wilc_mac_xmit(struct sk_buff *skb, s
tx_data->skb = skb;
eth_h = (struct ethhdr *)(skb->data);
- if (eth_h->h_proto == 0x8e88)
+ if (eth_h->h_proto == cpu_to_be16(0x8e88))
netdev_dbg(ndev, "EAPOL transmitted\n");
ih = (struct iphdr *)(skb->data + sizeof(struct ethhdr));
Patches currently in stable-queue which might be from mpkofron(a)gmail.com are
queue-4.9/staging-wilc1000-fix-endian-sparse-warning.patch
This is a note to let you know that I've just added the patch titled
staging: rtl8188eu: fix incorrect ERROR tags from logs
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Galo Navarro <anglorvaroa(a)gmail.com>
Date: Tue, 3 Jan 2017 23:12:09 +0100
Subject: staging: rtl8188eu: fix incorrect ERROR tags from logs
From: Galo Navarro <anglorvaroa(a)gmail.com>
[ Upstream commit 401579c22ccbcb54244494069973e64b1fe980d2 ]
Several lifecycle events in the rtl8188eu driver are logged using the
DBG_88E_LEVEL macro from rtw_debug.h, which is tagged as ERROR
regardless of the actual level. Below are dmesg excerpts after loading
and unloading the module, the messages are misleading as there was no
error.
[517434.916239] usbcore: registered new interface driver r8188eu
[517435.680653] R8188EU: ERROR indicate disassoc
[517437.122606] R8188EU: ERROR assoc success
[517797.735611] usbcore: deregistering interface driver r8188eu
[517797.736069] R8188EU: ERROR indicate disassoc
Remove the ERROR prefix from the logs. After the patch, logs are:
[517949.873976] usbcore: registered new interface driver r8188eu
[517950.592845] R8188EU: indicate disassoc
[517951.993973] R8188EU: assoc success
[521778.784448] usbcore: deregistering interface driver r8188eu
[521778.784838] R8188EU: indicate disassoc
Signed-off-by: Galo Navarro <anglorvaroa(a)gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/rtl8188eu/include/rtw_debug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/staging/rtl8188eu/include/rtw_debug.h
+++ b/drivers/staging/rtl8188eu/include/rtw_debug.h
@@ -70,7 +70,7 @@ extern u32 GlobalDebugLevel;
#define DBG_88E_LEVEL(_level, fmt, arg...) \
do { \
if (_level <= GlobalDebugLevel) \
- pr_info(DRIVER_PREFIX"ERROR " fmt, ##arg); \
+ pr_info(DRIVER_PREFIX fmt, ##arg); \
} while (0)
#define DBG_88E(...) \
Patches currently in stable-queue which might be from anglorvaroa(a)gmail.com are
queue-4.9/staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
This is a note to let you know that I've just added the patch titled
scsi: ufs-qcom: Fix module autoload
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-ufs-qcom-fix-module-autoload.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Javier Martinez Canillas <javier(a)osg.samsung.com>
Date: Mon, 2 Jan 2017 11:04:58 -0300
Subject: scsi: ufs-qcom: Fix module autoload
From: Javier Martinez Canillas <javier(a)osg.samsung.com>
[ Upstream commit ab3dabb3e8cf077850f20610f73a0def1fed10cb ]
If the driver is built as a module, autoload won't work because the module
alias information is not filled. So user-space can't match the registered
device with the corresponding module.
Export the module alias information using the MODULE_DEVICE_TABLE() macro.
Before this patch:
$ modinfo drivers/scsi/ufs/ufs-qcom.ko | grep alias
$
After this patch:
$ modinfo drivers/scsi/ufs/ufs-qcom.ko | grep alias
alias: of:N*T*Cqcom,ufshcC*
alias: of:N*T*Cqcom,ufshc
Signed-off-by: Javier Martinez Canillas <javier(a)osg.samsung.com>
Reviewed-by: Subhash Jadavani <subhashj(a)codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/ufs/ufs-qcom.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -1689,6 +1689,7 @@ static const struct of_device_id ufs_qco
{ .compatible = "qcom,ufshc"},
{},
};
+MODULE_DEVICE_TABLE(of, ufs_qcom_of_match);
static const struct dev_pm_ops ufs_qcom_pm_ops = {
.suspend = ufshcd_pltfrm_suspend,
Patches currently in stable-queue which might be from javier(a)osg.samsung.com are
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
This is a note to let you know that I've just added the patch titled
staging: greybus: add host device function pointer checks
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
staging-greybus-add-host-device-function-pointer-checks.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Jason Hrycay <jhrycay(a)gmail.com>
Date: Tue, 20 Dec 2016 14:49:27 -0600
Subject: staging: greybus: add host device function pointer checks
From: Jason Hrycay <jhrycay(a)gmail.com>
[ Upstream commit f05a88a39c5b5f226e08e626998bb920723b7d85 ]
Add sanity checks for cport_quiesce and cport_clear before invoking the
callbacks as these function pointers are not required during the host
device registration. This follows the logic implemented elsewhere for
various other function pointers.
Signed-off-by: Jason Hrycay <jhrycay(a)gmail.com>
Reviewed-by: Bryan O'Donoghue <pure.logic(a)nexus-software.ie>
Acked-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/greybus/connection.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/drivers/staging/greybus/connection.c
+++ b/drivers/staging/greybus/connection.c
@@ -357,6 +357,9 @@ static int gb_connection_hd_cport_quiesc
size_t peer_space;
int ret;
+ if (!hd->driver->cport_quiesce)
+ return 0;
+
peer_space = sizeof(struct gb_operation_msg_hdr) +
sizeof(struct gb_cport_shutdown_request);
@@ -380,6 +383,9 @@ static int gb_connection_hd_cport_clear(
struct gb_host_device *hd = connection->hd;
int ret;
+ if (!hd->driver->cport_clear)
+ return 0;
+
ret = hd->driver->cport_clear(hd, connection->hd_cport_id);
if (ret) {
dev_err(&hd->dev, "%s: failed to clear host cport: %d\n",
Patches currently in stable-queue which might be from jhrycay(a)gmail.com are
queue-4.9/staging-greybus-add-host-device-function-pointer-checks.patch
This is a note to let you know that I've just added the patch titled
scsi: lpfc: FCoE VPort enable-disable does not bring up the VPort
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: James Smart <james.smart(a)broadcom.com>
Date: Mon, 19 Dec 2016 15:07:25 -0800
Subject: scsi: lpfc: FCoE VPort enable-disable does not bring up the VPort
From: James Smart <james.smart(a)broadcom.com>
[ Upstream commit 104450eb08ca662e6b1d02da11aca9598e978f3e ]
FCoE VPort enable-disable does not bring up the VPort.
VPI structure needed to be initialized before being re-registered.
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_vport.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -537,6 +537,12 @@ enable_vport(struct fc_vport *fc_vport)
spin_lock_irq(shost->host_lock);
vport->load_flag |= FC_LOADING;
+ if (vport->fc_flag & FC_VPORT_NEEDS_INIT_VPI) {
+ spin_unlock_irq(shost->host_lock);
+ lpfc_issue_init_vpi(vport);
+ goto out;
+ }
+
vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
spin_unlock_irq(shost->host_lock);
@@ -557,6 +563,8 @@ enable_vport(struct fc_vport *fc_vport)
} else {
lpfc_vport_set_state(vport, FC_VPORT_FAILED);
}
+
+out:
lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
"1827 Vport Enabled.\n");
return VPORT_OK;
Patches currently in stable-queue which might be from james.smart(a)broadcom.com are
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
This is a note to let you know that I've just added the patch titled
scsi: ufs: add capability to keep auto bkops always enabled
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: "subhashj(a)codeaurora.org" <subhashj(a)codeaurora.org>
Date: Thu, 22 Dec 2016 18:41:22 -0800
Subject: scsi: ufs: add capability to keep auto bkops always enabled
From: "subhashj(a)codeaurora.org" <subhashj(a)codeaurora.org>
[ Upstream commit 4e768e7645ec4ffa92ee163643777b261ae97142 ]
UFS device requires to perform bkops (back ground operations) periodically
but host can control (via auto-bkops parameter of device) when device can
perform bkops based on its performance requirements. In general, host
would like to enable the device's auto-bkops only when it's not doing any
regular data transfer but sometimes device may not behave properly if host
keeps the auto-bkops disabled. This change adds the capability to let the
device auto-bkops always enabled except suspend.
Reviewed-by: Sahitya Tummala <stummala(a)codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj(a)codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/ufs/ufshcd.c | 33 ++++++++++++++++++++++-----------
drivers/scsi/ufs/ufshcd.h | 13 +++++++++++++
2 files changed, 35 insertions(+), 11 deletions(-)
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -3781,18 +3781,25 @@ out:
}
/**
- * ufshcd_force_reset_auto_bkops - force enable of auto bkops
+ * ufshcd_force_reset_auto_bkops - force reset auto bkops state
* @hba: per adapter instance
*
* After a device reset the device may toggle the BKOPS_EN flag
* to default value. The s/w tracking variables should be updated
- * as well. Do this by forcing enable of auto bkops.
+ * as well. This function would change the auto-bkops state based on
+ * UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND.
*/
-static void ufshcd_force_reset_auto_bkops(struct ufs_hba *hba)
+static void ufshcd_force_reset_auto_bkops(struct ufs_hba *hba)
{
- hba->auto_bkops_enabled = false;
- hba->ee_ctrl_mask |= MASK_EE_URGENT_BKOPS;
- ufshcd_enable_auto_bkops(hba);
+ if (ufshcd_keep_autobkops_enabled_except_suspend(hba)) {
+ hba->auto_bkops_enabled = false;
+ hba->ee_ctrl_mask |= MASK_EE_URGENT_BKOPS;
+ ufshcd_enable_auto_bkops(hba);
+ } else {
+ hba->auto_bkops_enabled = true;
+ hba->ee_ctrl_mask &= ~MASK_EE_URGENT_BKOPS;
+ ufshcd_disable_auto_bkops(hba);
+ }
}
static inline int ufshcd_get_bkops_status(struct ufs_hba *hba, u32 *status)
@@ -6138,11 +6145,15 @@ static int ufshcd_resume(struct ufs_hba
goto set_old_link_state;
}
- /*
- * If BKOPs operations are urgently needed at this moment then
- * keep auto-bkops enabled or else disable it.
- */
- ufshcd_urgent_bkops(hba);
+ if (ufshcd_keep_autobkops_enabled_except_suspend(hba))
+ ufshcd_enable_auto_bkops(hba);
+ else
+ /*
+ * If BKOPs operations are urgently needed at this moment then
+ * keep auto-bkops enabled or else disable it.
+ */
+ ufshcd_urgent_bkops(hba);
+
hba->clk_gating.is_suspended = false;
if (ufshcd_is_clkscaling_enabled(hba))
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -548,6 +548,14 @@ struct ufs_hba {
* CAUTION: Enabling this might reduce overall UFS throughput.
*/
#define UFSHCD_CAP_INTR_AGGR (1 << 4)
+ /*
+ * This capability allows the device auto-bkops to be always enabled
+ * except during suspend (both runtime and suspend).
+ * Enabling this capability means that device will always be allowed
+ * to do background operation when it's active but it might degrade
+ * the performance of ongoing read/write operations.
+ */
+#define UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND (1 << 5)
struct devfreq *devfreq;
struct ufs_clk_scaling clk_scaling;
@@ -645,6 +653,11 @@ static inline void *ufshcd_get_variant(s
BUG_ON(!hba);
return hba->priv;
}
+static inline bool ufshcd_keep_autobkops_enabled_except_suspend(
+ struct ufs_hba *hba)
+{
+ return hba->caps & UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND;
+}
extern int ufshcd_runtime_suspend(struct ufs_hba *hba);
extern int ufshcd_runtime_resume(struct ufs_hba *hba);
Patches currently in stable-queue which might be from subhashj(a)codeaurora.org are
queue-4.9/scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
This is a note to let you know that I've just added the patch titled
scsi: lpfc: Correct host name in symbolic_name field
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: James Smart <james.smart(a)broadcom.com>
Date: Mon, 19 Dec 2016 15:07:24 -0800
Subject: scsi: lpfc: Correct host name in symbolic_name field
From: James Smart <james.smart(a)broadcom.com>
[ Upstream commit 6c9231f604c2575be24c96d38deb70f145172f92 ]
Correct host name in symbolic_name field of nameserver registrations
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_attr.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -5131,6 +5131,19 @@ lpfc_free_sysfs_attr(struct lpfc_vport *
*/
/**
+ * lpfc_get_host_symbolic_name - Copy symbolic name into the scsi host
+ * @shost: kernel scsi host pointer.
+ **/
+static void
+lpfc_get_host_symbolic_name(struct Scsi_Host *shost)
+{
+ struct lpfc_vport *vport = (struct lpfc_vport *)shost->hostdata;
+
+ lpfc_vport_symbolic_node_name(vport, fc_host_symbolic_name(shost),
+ sizeof fc_host_symbolic_name(shost));
+}
+
+/**
* lpfc_get_host_port_id - Copy the vport DID into the scsi host port id
* @shost: kernel scsi host pointer.
**/
@@ -5667,6 +5680,8 @@ struct fc_function_template lpfc_transpo
.show_host_supported_fc4s = 1,
.show_host_supported_speeds = 1,
.show_host_maxframe_size = 1,
+
+ .get_host_symbolic_name = lpfc_get_host_symbolic_name,
.show_host_symbolic_name = 1,
/* dynamic attributes the driver supports */
@@ -5734,6 +5749,8 @@ struct fc_function_template lpfc_vport_t
.show_host_supported_fc4s = 1,
.show_host_supported_speeds = 1,
.show_host_maxframe_size = 1,
+
+ .get_host_symbolic_name = lpfc_get_host_symbolic_name,
.show_host_symbolic_name = 1,
/* dynamic attributes the driver supports */
Patches currently in stable-queue which might be from james.smart(a)broadcom.com are
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
This is a note to let you know that I've just added the patch titled
scsi: lpfc: Clear the VendorVersion in the PLOGI/PLOGI ACC payload
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: James Smart <james.smart(a)broadcom.com>
Date: Mon, 19 Dec 2016 15:07:20 -0800
Subject: scsi: lpfc: Clear the VendorVersion in the PLOGI/PLOGI ACC payload
From: James Smart <james.smart(a)broadcom.com>
[ Upstream commit e0165f20447c8ca1d367725ee94d8ec9f38ca275 ]
Clear the VendorVersion in the PLOGI/PLOGI ACC payload
Vendor version info may have been set on fabric login. Before sending
PLOGI payloads, ensure that it's cleared.
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_els.c | 6 ++++++
drivers/scsi/lpfc/lpfc_hw.h | 6 ++++++
2 files changed, 12 insertions(+)
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -1999,6 +1999,9 @@ lpfc_issue_els_plogi(struct lpfc_vport *
if (sp->cmn.fcphHigh < FC_PH3)
sp->cmn.fcphHigh = FC_PH3;
+ sp->cmn.valid_vendor_ver_level = 0;
+ memset(sp->vendorVersion, 0, sizeof(sp->vendorVersion));
+
lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD,
"Issue PLOGI: did:x%x",
did, 0, 0);
@@ -3990,6 +3993,9 @@ lpfc_els_rsp_acc(struct lpfc_vport *vpor
} else {
memcpy(pcmd, &vport->fc_sparam,
sizeof(struct serv_parm));
+
+ sp->cmn.valid_vendor_ver_level = 0;
+ memset(sp->vendorVersion, 0, sizeof(sp->vendorVersion));
}
lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_RSP,
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -360,6 +360,12 @@ struct csp {
* Word 1 Bit 30 in PLOGI request is random offset
*/
#define virtual_fabric_support randomOffset /* Word 1, bit 30 */
+/*
+ * Word 1 Bit 29 in common service parameter is overloaded.
+ * Word 1 Bit 29 in FLOGI response is multiple NPort assignment
+ * Word 1 Bit 29 in FLOGI/PLOGI request is Valid Vendor Version Level
+ */
+#define valid_vendor_ver_level response_multiple_NPort /* Word 1, bit 29 */
#ifdef __BIG_ENDIAN_BITFIELD
uint16_t request_multiple_Nport:1; /* FC Word 1, bit 31 */
uint16_t randomOffset:1; /* FC Word 1, bit 30 */
Patches currently in stable-queue which might be from james.smart(a)broadcom.com are
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
This is a note to let you know that I've just added the patch titled
scsi: lpfc: Correct issue leading to oops during link reset
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: James Smart <james.smart(a)broadcom.com>
Date: Mon, 19 Dec 2016 15:07:23 -0800
Subject: scsi: lpfc: Correct issue leading to oops during link reset
From: James Smart <james.smart(a)broadcom.com>
[ Upstream commit e6c6acc0e0223ddaf867628d420ee196349c6fae ]
Correct issue leading to oops during link reset. Missing vport pointer.
[mkp: fixed typo]
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_sli.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -10006,6 +10006,7 @@ lpfc_sli_abort_iotag_issue(struct lpfc_h
iabt->ulpCommand = CMD_CLOSE_XRI_CN;
abtsiocbp->iocb_cmpl = lpfc_sli_abort_els_cmpl;
+ abtsiocbp->vport = vport;
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
"0339 Abort xri x%x, original iotag x%x, "
Patches currently in stable-queue which might be from james.smart(a)broadcom.com are
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
This is a note to let you know that I've just added the patch titled
scsi: lpfc: Add missing memory barrier
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-lpfc-add-missing-memory-barrier.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: James Smart <james.smart(a)broadcom.com>
Date: Mon, 19 Dec 2016 15:07:30 -0800
Subject: scsi: lpfc: Add missing memory barrier
From: James Smart <james.smart(a)broadcom.com>
[ Upstream commit 6b3b3bdb83b4ad51252d21bb13596db879e51850 ]
On loosely ordered memory systems (PPC for example), the WQE elements
were being updated in memory, but not necessarily flushed before the
separate doorbell was written to hw which would cause hw to dma the
WQE element. Thus, the hardware occasionally received partially
updated WQE data.
Add the memory barrier after updating the WQE memory.
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_sli.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -119,6 +119,8 @@ lpfc_sli4_wq_put(struct lpfc_queue *q, u
if (q->phba->sli3_options & LPFC_SLI4_PHWQ_ENABLED)
bf_set(wqe_wqid, &wqe->generic.wqe_com, q->queue_id);
lpfc_sli_pcimem_bcopy(wqe, temp_wqe, q->entry_size);
+ /* ensure WQE bcopy flushed before doorbell write */
+ wmb();
/* Update the host index before invoking device */
host_index = q->host_index;
Patches currently in stable-queue which might be from james.smart(a)broadcom.com are
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
This is a note to let you know that I've just added the patch titled
Revert "uapi: fix linux/rds.h userspace compilation errors"
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
revert-uapi-fix-linux-rds.h-userspace-compilation-errors.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Sasha Levin <alexander.levin(a)verizon.com>
Date: Mon, 13 Nov 2017 18:03:32 -0500
Subject: Revert "uapi: fix linux/rds.h userspace compilation errors"
From: Sasha Levin <alexander.levin(a)verizon.com>
This reverts commit ad50561ba7a664bc581826c9d57d137fcf17bfa5.
There was a mixup with the commit message for two upstream commit
that have the same subject line.
This revert will be followed by the two commits with proper commit
messages.
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
include/uapi/linux/rds.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/include/uapi/linux/rds.h
+++ b/include/uapi/linux/rds.h
@@ -35,7 +35,6 @@
#define _LINUX_RDS_H
#include <linux/types.h>
-#include <linux/socket.h> /* For __kernel_sockaddr_storage. */
#define RDS_IB_ABI_VERSION 0x301
@@ -224,7 +223,7 @@ struct rds_get_mr_args {
};
struct rds_get_mr_for_dest_args {
- struct __kernel_sockaddr_storage dest_addr;
+ struct sockaddr_storage dest_addr;
struct rds_iovec vec;
uint64_t cookie_addr;
uint64_t flags;
Patches currently in stable-queue which might be from alexander.levin(a)verizon.com are
queue-4.9/ata-sata_mv-should-depend-on-has_dma.patch
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/arm-dts-omap5-uevm-allow-bootloader-to-configure-usb-ethernet-mac.patch
queue-4.9/ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
queue-4.9/extcon-remove-potential-problem-when-calling-extcon_register_notifier.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/alsa-vx-don-t-try-to-update-capture-stream-before-running.patch
queue-4.9/staging-greybus-add-host-device-function-pointer-checks.patch
queue-4.9/gpu-drm-mgag200-mgag200_main-handle-error-from-pci_iomap.patch
queue-4.9/staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-error.patch
queue-4.9/ata-sata_highbank-should-depend-on-has_dma.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/extcon-palmas-check-the-parent-instance-to-prevent-the-null.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
queue-4.9/revert-dt-bindings-add-vendor-prefix-for-lego.patch
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/drm-sti-sti_vtg-handle-return-null-error-from-devm_ioremap_nocache.patch
queue-4.9/ixgbe-reduce-i2c-retry-count-on-x550-devices.patch
queue-4.9/ixgbe-do-not-disable-fec-from-the-driver.patch
queue-4.9/x86-irq-trace-add-__irq_entry-annotation-to-x86-s-platform-irq-handlers.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/igb-fix-hw_dbg-logging-in-igb_update_flash_i210.patch
queue-4.9/arm-dts-fix-omap3-off-mode-pull-defines.patch
queue-4.9/arm-dts-fix-compatible-for-ti81xx-uarts-for-8250.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
queue-4.9/alsa-vx-fix-possible-transfer-overflow.patch
queue-4.9/backlight-lcd-fix-race-condition-during-register.patch
queue-4.9/fm10k-request-reset-when-mbx-state-changes.patch
queue-4.9/arm64-dts-ns2-reserve-memory-for-nitro-firmware.patch
queue-4.9/staging-rtl8712-fixed-little-endian-problem.patch
queue-4.9/revert-crypto-xts-add-ecb-dependency.patch
queue-4.9/backlight-adp5520-fix-error-handling-in-adp5520_bl_probe.patch
queue-4.9/staging-wilc1000-fix-endian-sparse-warning.patch
queue-4.9/alsa-hda-realtek-add-new-codec-id-alc299.patch
queue-4.9/ixgbe-fix-aer-error-handling.patch
queue-4.9/scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
queue-4.9/tcp-provide-timestamps-for-partial-writes.patch
queue-4.9/revert-uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/ixgbe-configure-advertised-speeds-correctly-for-kr-kx-backplane.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/ixgbe-add-mask-for-64-rss-queues.patch
queue-4.9/revert-dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
queue-4.9/rtc-rx8010-change-lock-mechanism.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
queue-4.9/ata-ata_bmdma-should-depend-on-has_dma.patch
queue-4.9/drm-omap-panel-sony-acx565akm.c-add-module_alias.patch
queue-4.9/ixgbe-fix-reporting-of-100mb-capability.patch
queue-4.9/igb-close-suspend-race-in-netif_device_detach.patch
queue-4.9/igb-reset-the-phy-before-reading-the-phy-id.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
queue-4.9/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
queue-4.9/arm-dts-fix-am335x-and-dm814x-scm-syscon-to-probe-children.patch
This is a note to let you know that I've just added the patch titled
Revert "crypto: xts - Add ECB dependency"
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
revert-crypto-xts-add-ecb-dependency.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Sasha Levin <alexander.levin(a)verizon.com>
Date: Mon, 13 Nov 2017 17:55:20 -0500
Subject: Revert "crypto: xts - Add ECB dependency"
From: Sasha Levin <alexander.levin(a)verizon.com>
This reverts commit 6145171a6bc0abdc3eca7a4b795ede467d2ba569.
The commit fixes a bug that was only introduced in 4.10, thus is
irrelevant for <=4.9.
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
crypto/Kconfig | 1 -
1 file changed, 1 deletion(-)
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -360,7 +360,6 @@ config CRYPTO_XTS
select CRYPTO_BLKCIPHER
select CRYPTO_MANAGER
select CRYPTO_GF128MUL
- select CRYPTO_ECB
help
XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
key size 256, 384 or 512 bits. This implementation currently
Patches currently in stable-queue which might be from alexander.levin(a)verizon.com are
queue-4.9/ata-sata_mv-should-depend-on-has_dma.patch
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/arm-dts-omap5-uevm-allow-bootloader-to-configure-usb-ethernet-mac.patch
queue-4.9/ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
queue-4.9/extcon-remove-potential-problem-when-calling-extcon_register_notifier.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/alsa-vx-don-t-try-to-update-capture-stream-before-running.patch
queue-4.9/staging-greybus-add-host-device-function-pointer-checks.patch
queue-4.9/gpu-drm-mgag200-mgag200_main-handle-error-from-pci_iomap.patch
queue-4.9/staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-error.patch
queue-4.9/ata-sata_highbank-should-depend-on-has_dma.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/extcon-palmas-check-the-parent-instance-to-prevent-the-null.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
queue-4.9/revert-dt-bindings-add-vendor-prefix-for-lego.patch
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/drm-sti-sti_vtg-handle-return-null-error-from-devm_ioremap_nocache.patch
queue-4.9/ixgbe-reduce-i2c-retry-count-on-x550-devices.patch
queue-4.9/ixgbe-do-not-disable-fec-from-the-driver.patch
queue-4.9/x86-irq-trace-add-__irq_entry-annotation-to-x86-s-platform-irq-handlers.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/igb-fix-hw_dbg-logging-in-igb_update_flash_i210.patch
queue-4.9/arm-dts-fix-omap3-off-mode-pull-defines.patch
queue-4.9/arm-dts-fix-compatible-for-ti81xx-uarts-for-8250.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
queue-4.9/alsa-vx-fix-possible-transfer-overflow.patch
queue-4.9/backlight-lcd-fix-race-condition-during-register.patch
queue-4.9/fm10k-request-reset-when-mbx-state-changes.patch
queue-4.9/arm64-dts-ns2-reserve-memory-for-nitro-firmware.patch
queue-4.9/staging-rtl8712-fixed-little-endian-problem.patch
queue-4.9/revert-crypto-xts-add-ecb-dependency.patch
queue-4.9/backlight-adp5520-fix-error-handling-in-adp5520_bl_probe.patch
queue-4.9/staging-wilc1000-fix-endian-sparse-warning.patch
queue-4.9/alsa-hda-realtek-add-new-codec-id-alc299.patch
queue-4.9/ixgbe-fix-aer-error-handling.patch
queue-4.9/scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
queue-4.9/tcp-provide-timestamps-for-partial-writes.patch
queue-4.9/revert-uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/ixgbe-configure-advertised-speeds-correctly-for-kr-kx-backplane.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/ixgbe-add-mask-for-64-rss-queues.patch
queue-4.9/revert-dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
queue-4.9/rtc-rx8010-change-lock-mechanism.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
queue-4.9/ata-ata_bmdma-should-depend-on-has_dma.patch
queue-4.9/drm-omap-panel-sony-acx565akm.c-add-module_alias.patch
queue-4.9/ixgbe-fix-reporting-of-100mb-capability.patch
queue-4.9/igb-close-suspend-race-in-netif_device_detach.patch
queue-4.9/igb-reset-the-phy-before-reading-the-phy-id.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
queue-4.9/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
queue-4.9/arm-dts-fix-am335x-and-dm814x-scm-syscon-to-probe-children.patch
This is a note to let you know that I've just added the patch titled
Revert "dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification"
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
revert-dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Sasha Levin <alexander.levin(a)verizon.com>
Date: Thu, 16 Nov 2017 21:04:58 -0500
Subject: Revert "dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification"
From: Sasha Levin <alexander.levin(a)verizon.com>
This reverts commit 852bf68b7a62195c3c0c63f3b11f3f30958fc220.
As Ben pointed out, these drivers don't exist in <=4.9.
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
Documentation/devicetree/bindings/arm/davinci.txt | 4 ----
1 file changed, 4 deletions(-)
--- a/Documentation/devicetree/bindings/arm/davinci.txt
+++ b/Documentation/devicetree/bindings/arm/davinci.txt
@@ -13,10 +13,6 @@ EnBW AM1808 based CMC board
Required root node properties:
- compatible = "enbw,cmc", "ti,da850;
-LEGO MINDSTORMS EV3 (AM1808 based)
-Required root node properties:
- - compatible = "lego,ev3", "ti,da850";
-
Generic DaVinci Boards
----------------------
Patches currently in stable-queue which might be from alexander.levin(a)verizon.com are
queue-4.9/ata-sata_mv-should-depend-on-has_dma.patch
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/arm-dts-omap5-uevm-allow-bootloader-to-configure-usb-ethernet-mac.patch
queue-4.9/ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
queue-4.9/extcon-remove-potential-problem-when-calling-extcon_register_notifier.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/alsa-vx-don-t-try-to-update-capture-stream-before-running.patch
queue-4.9/staging-greybus-add-host-device-function-pointer-checks.patch
queue-4.9/gpu-drm-mgag200-mgag200_main-handle-error-from-pci_iomap.patch
queue-4.9/staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-error.patch
queue-4.9/ata-sata_highbank-should-depend-on-has_dma.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/extcon-palmas-check-the-parent-instance-to-prevent-the-null.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
queue-4.9/revert-dt-bindings-add-vendor-prefix-for-lego.patch
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/drm-sti-sti_vtg-handle-return-null-error-from-devm_ioremap_nocache.patch
queue-4.9/ixgbe-reduce-i2c-retry-count-on-x550-devices.patch
queue-4.9/ixgbe-do-not-disable-fec-from-the-driver.patch
queue-4.9/x86-irq-trace-add-__irq_entry-annotation-to-x86-s-platform-irq-handlers.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/igb-fix-hw_dbg-logging-in-igb_update_flash_i210.patch
queue-4.9/arm-dts-fix-omap3-off-mode-pull-defines.patch
queue-4.9/arm-dts-fix-compatible-for-ti81xx-uarts-for-8250.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
queue-4.9/alsa-vx-fix-possible-transfer-overflow.patch
queue-4.9/backlight-lcd-fix-race-condition-during-register.patch
queue-4.9/fm10k-request-reset-when-mbx-state-changes.patch
queue-4.9/arm64-dts-ns2-reserve-memory-for-nitro-firmware.patch
queue-4.9/staging-rtl8712-fixed-little-endian-problem.patch
queue-4.9/revert-crypto-xts-add-ecb-dependency.patch
queue-4.9/backlight-adp5520-fix-error-handling-in-adp5520_bl_probe.patch
queue-4.9/staging-wilc1000-fix-endian-sparse-warning.patch
queue-4.9/alsa-hda-realtek-add-new-codec-id-alc299.patch
queue-4.9/ixgbe-fix-aer-error-handling.patch
queue-4.9/scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
queue-4.9/tcp-provide-timestamps-for-partial-writes.patch
queue-4.9/revert-uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/ixgbe-configure-advertised-speeds-correctly-for-kr-kx-backplane.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/ixgbe-add-mask-for-64-rss-queues.patch
queue-4.9/revert-dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
queue-4.9/rtc-rx8010-change-lock-mechanism.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
queue-4.9/ata-ata_bmdma-should-depend-on-has_dma.patch
queue-4.9/drm-omap-panel-sony-acx565akm.c-add-module_alias.patch
queue-4.9/ixgbe-fix-reporting-of-100mb-capability.patch
queue-4.9/igb-close-suspend-race-in-netif_device_detach.patch
queue-4.9/igb-reset-the-phy-before-reading-the-phy-id.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
queue-4.9/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
queue-4.9/arm-dts-fix-am335x-and-dm814x-scm-syscon-to-probe-children.patch
This is a note to let you know that I've just added the patch titled
Revert "dt-bindings: Add vendor prefix for LEGO"
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
revert-dt-bindings-add-vendor-prefix-for-lego.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Sasha Levin <alexander.levin(a)verizon.com>
Date: Thu, 16 Nov 2017 21:04:38 -0500
Subject: Revert "dt-bindings: Add vendor prefix for LEGO"
From: Sasha Levin <alexander.levin(a)verizon.com>
This reverts commit 04e13a5ec96db94c1cc8ce7b0b1e1b626e0c00c7.
As Ben pointed out, these drivers don't exist in <=4.9.
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
Documentation/devicetree/bindings/vendor-prefixes.txt | 1 -
1 file changed, 1 deletion(-)
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -154,7 +154,6 @@ kosagi Sutajio Ko-Usagi PTE Ltd.
kyo Kyocera Corporation
lacie LaCie
lantiq Lantiq Semiconductor
-lego LEGO Systems A/S
lenovo Lenovo Group Ltd.
lg LG Corporation
linux Linux-specific binding
Patches currently in stable-queue which might be from alexander.levin(a)verizon.com are
queue-4.9/ata-sata_mv-should-depend-on-has_dma.patch
queue-4.9/scsi-lpfc-clear-the-vendorversion-in-the-plogi-plogi-acc-payload.patch
queue-4.9/arm-dts-omap5-uevm-allow-bootloader-to-configure-usb-ethernet-mac.patch
queue-4.9/ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
queue-4.9/extcon-remove-potential-problem-when-calling-extcon_register_notifier.patch
queue-4.9/scsi-lpfc-correct-host-name-in-symbolic_name-field.patch
queue-4.9/alsa-vx-don-t-try-to-update-capture-stream-before-running.patch
queue-4.9/staging-greybus-add-host-device-function-pointer-checks.patch
queue-4.9/gpu-drm-mgag200-mgag200_main-handle-error-from-pci_iomap.patch
queue-4.9/staging-rtl8188eu-fix-incorrect-error-tags-from-logs.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-error.patch
queue-4.9/ata-sata_highbank-should-depend-on-has_dma.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/extcon-palmas-check-the-parent-instance-to-prevent-the-null.patch
queue-4.9/scsi-lpfc-fcoe-vport-enable-disable-does-not-bring-up-the-vport.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
queue-4.9/revert-dt-bindings-add-vendor-prefix-for-lego.patch
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/drm-sti-sti_vtg-handle-return-null-error-from-devm_ioremap_nocache.patch
queue-4.9/ixgbe-reduce-i2c-retry-count-on-x550-devices.patch
queue-4.9/ixgbe-do-not-disable-fec-from-the-driver.patch
queue-4.9/x86-irq-trace-add-__irq_entry-annotation-to-x86-s-platform-irq-handlers.patch
queue-4.9/scsi-lpfc-correct-issue-leading-to-oops-during-link-reset.patch
queue-4.9/igb-fix-hw_dbg-logging-in-igb_update_flash_i210.patch
queue-4.9/arm-dts-fix-omap3-off-mode-pull-defines.patch
queue-4.9/arm-dts-fix-compatible-for-ti81xx-uarts-for-8250.patch
queue-4.9/uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/scsi-lpfc-add-missing-memory-barrier.patch
queue-4.9/alsa-vx-fix-possible-transfer-overflow.patch
queue-4.9/backlight-lcd-fix-race-condition-during-register.patch
queue-4.9/fm10k-request-reset-when-mbx-state-changes.patch
queue-4.9/arm64-dts-ns2-reserve-memory-for-nitro-firmware.patch
queue-4.9/staging-rtl8712-fixed-little-endian-problem.patch
queue-4.9/revert-crypto-xts-add-ecb-dependency.patch
queue-4.9/backlight-adp5520-fix-error-handling-in-adp5520_bl_probe.patch
queue-4.9/staging-wilc1000-fix-endian-sparse-warning.patch
queue-4.9/alsa-hda-realtek-add-new-codec-id-alc299.patch
queue-4.9/ixgbe-fix-aer-error-handling.patch
queue-4.9/scsi-ufs-add-capability-to-keep-auto-bkops-always-enabled.patch
queue-4.9/tcp-provide-timestamps-for-partial-writes.patch
queue-4.9/revert-uapi-fix-linux-rds.h-userspace-compilation-errors.patch
queue-4.9/ixgbe-configure-advertised-speeds-correctly-for-kr-kx-backplane.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/ixgbe-add-mask-for-64-rss-queues.patch
queue-4.9/revert-dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
queue-4.9/rtc-rx8010-change-lock-mechanism.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
queue-4.9/ata-ata_bmdma-should-depend-on-has_dma.patch
queue-4.9/drm-omap-panel-sony-acx565akm.c-add-module_alias.patch
queue-4.9/ixgbe-fix-reporting-of-100mb-capability.patch
queue-4.9/igb-close-suspend-race-in-netif_device_detach.patch
queue-4.9/igb-reset-the-phy-before-reading-the-phy-id.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
queue-4.9/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch
queue-4.9/scsi-ufs-qcom-fix-module-autoload.patch
queue-4.9/arm-dts-fix-am335x-and-dm814x-scm-syscon-to-probe-children.patch
This is a note to let you know that I've just added the patch titled
power: supply: axp288_fuel_gauge: Read 15 bit values 2 registers at a time
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Hans de Goede <hdegoede(a)redhat.com>
Date: Wed, 14 Dec 2016 17:38:51 +0100
Subject: power: supply: axp288_fuel_gauge: Read 15 bit values 2 registers at a time
From: Hans de Goede <hdegoede(a)redhat.com>
[ Upstream commit 4949fc5e071f8e8d8122e0b16cf6a2ec1ca36258 ]
In order for the MSB -> LSB latching to work correctly we must read the
2 8 bit registers of a 15 bit value in one consecutive read.
This fixes charge_full reporting 3498768 on some reads and 3354624 one
other reads on my tablet (for the 3354624 value the raw LSB is 0x00).
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
Signed-off-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/power/supply/axp288_fuel_gauge.c | 63 ++++++++++++++++---------------
1 file changed, 34 insertions(+), 29 deletions(-)
--- a/drivers/power/supply/axp288_fuel_gauge.c
+++ b/drivers/power/supply/axp288_fuel_gauge.c
@@ -29,6 +29,7 @@
#include <linux/iio/consumer.h>
#include <linux/debugfs.h>
#include <linux/seq_file.h>
+#include <asm/unaligned.h>
#define CHRG_STAT_BAT_SAFE_MODE (1 << 3)
#define CHRG_STAT_BAT_VALID (1 << 4)
@@ -73,17 +74,15 @@
#define FG_CNTL_CC_EN (1 << 6)
#define FG_CNTL_GAUGE_EN (1 << 7)
+#define FG_15BIT_WORD_VALID (1 << 15)
+#define FG_15BIT_VAL_MASK 0x7fff
+
#define FG_REP_CAP_VALID (1 << 7)
#define FG_REP_CAP_VAL_MASK 0x7F
#define FG_DES_CAP1_VALID (1 << 7)
-#define FG_DES_CAP1_VAL_MASK 0x7F
-#define FG_DES_CAP0_VAL_MASK 0xFF
#define FG_DES_CAP_RES_LSB 1456 /* 1.456mAhr */
-#define FG_CC_MTR1_VALID (1 << 7)
-#define FG_CC_MTR1_VAL_MASK 0x7F
-#define FG_CC_MTR0_VAL_MASK 0xFF
#define FG_DES_CC_RES_LSB 1456 /* 1.456mAhr */
#define FG_OCV_CAP_VALID (1 << 7)
@@ -189,6 +188,28 @@ static int fuel_gauge_reg_writeb(struct
return ret;
}
+static int fuel_gauge_read_15bit_word(struct axp288_fg_info *info, int reg)
+{
+ unsigned char buf[2];
+ int ret;
+
+ ret = regmap_bulk_read(info->regmap, reg, buf, 2);
+ if (ret < 0) {
+ dev_err(&info->pdev->dev, "Error reading reg 0x%02x err: %d\n",
+ reg, ret);
+ return ret;
+ }
+
+ ret = get_unaligned_be16(buf);
+ if (!(ret & FG_15BIT_WORD_VALID)) {
+ dev_err(&info->pdev->dev, "Error reg 0x%02x contents not valid\n",
+ reg);
+ return -ENXIO;
+ }
+
+ return ret & FG_15BIT_VAL_MASK;
+}
+
static int pmic_read_adc_val(const char *name, int *raw_val,
struct axp288_fg_info *info)
{
@@ -255,18 +276,12 @@ static int fuel_gauge_debug_show(struct
seq_printf(s, " FG_OCVL[%02x] : %02x\n",
AXP288_FG_OCVL_REG,
fuel_gauge_reg_readb(info, AXP288_FG_OCVL_REG));
- seq_printf(s, "FG_DES_CAP1[%02x] : %02x\n",
+ seq_printf(s, " FG_DES_CAP[%02x] : %04x\n",
AXP288_FG_DES_CAP1_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_DES_CAP1_REG));
- seq_printf(s, "FG_DES_CAP0[%02x] : %02x\n",
- AXP288_FG_DES_CAP0_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_DES_CAP0_REG));
- seq_printf(s, " FG_CC_MTR1[%02x] : %02x\n",
+ fuel_gauge_read_15bit_word(info, AXP288_FG_DES_CAP1_REG));
+ seq_printf(s, " FG_CC_MTR[%02x] : %04x\n",
AXP288_FG_CC_MTR1_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_CC_MTR1_REG));
- seq_printf(s, " FG_CC_MTR0[%02x] : %02x\n",
- AXP288_FG_CC_MTR0_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_CC_MTR0_REG));
+ fuel_gauge_read_15bit_word(info, AXP288_FG_CC_MTR1_REG));
seq_printf(s, " FG_OCV_CAP[%02x] : %02x\n",
AXP288_FG_OCV_CAP_REG,
fuel_gauge_reg_readb(info, AXP288_FG_OCV_CAP_REG));
@@ -663,28 +678,18 @@ static int fuel_gauge_get_property(struc
val->intval = POWER_SUPPLY_TECHNOLOGY_LION;
break;
case POWER_SUPPLY_PROP_CHARGE_NOW:
- ret = fuel_gauge_reg_readb(info, AXP288_FG_CC_MTR1_REG);
+ ret = fuel_gauge_read_15bit_word(info, AXP288_FG_CC_MTR1_REG);
if (ret < 0)
goto fuel_gauge_read_err;
- value = (ret & FG_CC_MTR1_VAL_MASK) << 8;
- ret = fuel_gauge_reg_readb(info, AXP288_FG_CC_MTR0_REG);
- if (ret < 0)
- goto fuel_gauge_read_err;
- value |= (ret & FG_CC_MTR0_VAL_MASK);
- val->intval = value * FG_DES_CAP_RES_LSB;
+ val->intval = ret * FG_DES_CAP_RES_LSB;
break;
case POWER_SUPPLY_PROP_CHARGE_FULL:
- ret = fuel_gauge_reg_readb(info, AXP288_FG_DES_CAP1_REG);
+ ret = fuel_gauge_read_15bit_word(info, AXP288_FG_DES_CAP1_REG);
if (ret < 0)
goto fuel_gauge_read_err;
- value = (ret & FG_DES_CAP1_VAL_MASK) << 8;
- ret = fuel_gauge_reg_readb(info, AXP288_FG_DES_CAP0_REG);
- if (ret < 0)
- goto fuel_gauge_read_err;
- value |= (ret & FG_DES_CAP0_VAL_MASK);
- val->intval = value * FG_DES_CAP_RES_LSB;
+ val->intval = ret * FG_DES_CAP_RES_LSB;
break;
case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
val->intval = PROP_CURR(info->pdata->design_cap);
Patches currently in stable-queue which might be from hdegoede(a)redhat.com are
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
This is a note to let you know that I've just added the patch titled
power: supply: axp288_fuel_gauge: Read 12 bit values 2 registers at a time
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Hans de Goede <hdegoede(a)redhat.com>
Date: Wed, 14 Dec 2016 17:38:52 +0100
Subject: power: supply: axp288_fuel_gauge: Read 12 bit values 2 registers at a time
From: Hans de Goede <hdegoede(a)redhat.com>
[ Upstream commit 248efcf00602f0282587999bcc221a872bd72530 ]
In order for the MSB -> LSB latching to work correctly we must read the
2 8 bit registers of a 12 bit value in one consecutive read.
This fixes voltage_ocv reporting inconsistent values on my tablet.
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
Signed-off-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/power/supply/axp288_fuel_gauge.c | 40 +++++++++++++++++--------------
1 file changed, 22 insertions(+), 18 deletions(-)
--- a/drivers/power/supply/axp288_fuel_gauge.c
+++ b/drivers/power/supply/axp288_fuel_gauge.c
@@ -210,6 +210,22 @@ static int fuel_gauge_read_15bit_word(st
return ret & FG_15BIT_VAL_MASK;
}
+static int fuel_gauge_read_12bit_word(struct axp288_fg_info *info, int reg)
+{
+ unsigned char buf[2];
+ int ret;
+
+ ret = regmap_bulk_read(info->regmap, reg, buf, 2);
+ if (ret < 0) {
+ dev_err(&info->pdev->dev, "Error reading reg 0x%02x err: %d\n",
+ reg, ret);
+ return ret;
+ }
+
+ /* 12-bit data values have upper 8 bits in buf[0], lower 4 in buf[1] */
+ return (buf[0] << 4) | ((buf[1] >> 4) & 0x0f);
+}
+
static int pmic_read_adc_val(const char *name, int *raw_val,
struct axp288_fg_info *info)
{
@@ -270,12 +286,9 @@ static int fuel_gauge_debug_show(struct
seq_printf(s, " FG_RDC0[%02x] : %02x\n",
AXP288_FG_RDC0_REG,
fuel_gauge_reg_readb(info, AXP288_FG_RDC0_REG));
- seq_printf(s, " FG_OCVH[%02x] : %02x\n",
+ seq_printf(s, " FG_OCV[%02x] : %04x\n",
AXP288_FG_OCVH_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_OCVH_REG));
- seq_printf(s, " FG_OCVL[%02x] : %02x\n",
- AXP288_FG_OCVL_REG,
- fuel_gauge_reg_readb(info, AXP288_FG_OCVL_REG));
+ fuel_gauge_read_12bit_word(info, AXP288_FG_OCVH_REG));
seq_printf(s, " FG_DES_CAP[%02x] : %04x\n",
AXP288_FG_DES_CAP1_REG,
fuel_gauge_read_15bit_word(info, AXP288_FG_DES_CAP1_REG));
@@ -532,21 +545,12 @@ temp_read_fail:
static int fuel_gauge_get_vocv(struct axp288_fg_info *info, int *vocv)
{
- int ret, value;
-
- /* 12-bit data value, upper 8 in OCVH, lower 4 in OCVL */
- ret = fuel_gauge_reg_readb(info, AXP288_FG_OCVH_REG);
- if (ret < 0)
- goto vocv_read_fail;
- value = ret << 4;
+ int ret;
- ret = fuel_gauge_reg_readb(info, AXP288_FG_OCVL_REG);
- if (ret < 0)
- goto vocv_read_fail;
- value |= (ret & 0xf);
+ ret = fuel_gauge_read_12bit_word(info, AXP288_FG_OCVH_REG);
+ if (ret >= 0)
+ *vocv = VOLTAGE_FROM_ADC(ret);
- *vocv = VOLTAGE_FROM_ADC(value);
-vocv_read_fail:
return ret;
}
Patches currently in stable-queue which might be from hdegoede(a)redhat.com are
queue-4.9/power-supply-axp288_fuel_gauge-read-15-bit-values-2-registers-at-a-time.patch
queue-4.9/power-supply-axp288_fuel_gauge-read-12-bit-values-2-registers-at-a-time.patch
This is a note to let you know that I've just added the patch titled
MIPS: Netlogic: Exclude netlogic,xlp-pic code from XLR builds
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Paul Burton <paul.burton(a)imgtec.com>
Date: Mon, 7 Nov 2016 11:30:41 +0000
Subject: MIPS: Netlogic: Exclude netlogic,xlp-pic code from XLR builds
From: Paul Burton <paul.burton(a)imgtec.com>
[ Upstream commit 9799270affc53414da96e77e454a5616b39cdab0 ]
Code in arch/mips/netlogic/common/irq.c which handles the XLP PIC fails
to build in XLR configurations due to cpu_is_xlp9xx not being defined,
leading to the following build failure:
arch/mips/netlogic/common/irq.c: In function ‘xlp_of_pic_init’:
arch/mips/netlogic/common/irq.c:298:2: error: implicit declaration
of function ‘cpu_is_xlp9xx’ [-Werror=implicit-function-declaration]
if (cpu_is_xlp9xx()) {
^
Although the code was conditional upon CONFIG_OF which is indirectly
selected by CONFIG_NLM_XLP_BOARD but not CONFIG_NLM_XLR_BOARD, the
failing XLR with CONFIG_OF configuration can be configured manually or
by randconfig.
Fix the build failure by making the affected XLP PIC code conditional
upon CONFIG_CPU_XLP which is used to guard the inclusion of
asm/netlogic/xlp-hal/xlp.h that provides the required cpu_is_xlp9xx
function.
[ralf(a)linux-mips.org: Fixed up as per Jayachandran's suggestion.]
Signed-off-by: Paul Burton <paul.burton(a)imgtec.com>
Cc: Jayachandran C <jchandra(a)broadcom.com>
Cc: linux-mips(a)linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14524/
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/mips/netlogic/common/irq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/mips/netlogic/common/irq.c
+++ b/arch/mips/netlogic/common/irq.c
@@ -275,7 +275,7 @@ asmlinkage void plat_irq_dispatch(void)
do_IRQ(nlm_irq_to_xirq(node, i));
}
-#ifdef CONFIG_OF
+#ifdef CONFIG_CPU_XLP
static const struct irq_domain_ops xlp_pic_irq_domain_ops = {
.xlate = irq_domain_xlate_onetwocell,
};
@@ -348,7 +348,7 @@ void __init arch_init_irq(void)
#if defined(CONFIG_CPU_XLR)
nlm_setup_fmn_irq();
#endif
-#if defined(CONFIG_OF)
+#ifdef CONFIG_CPU_XLP
of_irq_init(xlp_pic_irq_ids);
#endif
}
Patches currently in stable-queue which might be from paul.burton(a)imgtec.com are
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
This is a note to let you know that I've just added the patch titled
MIPS: traps: Ensure L1 & L2 ECC checking match for CM3 systems
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Paul Burton <paul.burton(a)imgtec.com>
Date: Mon, 17 Oct 2016 16:01:07 +0100
Subject: MIPS: traps: Ensure L1 & L2 ECC checking match for CM3 systems
From: Paul Burton <paul.burton(a)imgtec.com>
[ Upstream commit 35e6de38858f59b6b65dcfeaf700b5d06fc2b93d ]
On systems with CM3, we must ensure that the L1 & L2 ECC enables are set
to the same value. This is presumed by the hardware & cache corruption
can occur when it is not the case. Support enabling & disabling the L2
ECC checking on CM3 systems where this is controlled via a GCR, and
ensure that it matches the state of L1 ECC checking. Remove I6400 from
the switch statement it will no longer hit, and which was incorrect
since the L2 ECC enable bit isn't in the CP0 ErrCtl register.
Signed-off-by: Paul Burton <paul.burton(a)imgtec.com>
Cc: linux-mips(a)linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14413/
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/mips/include/asm/mips-cm.h | 7 ++++
arch/mips/kernel/traps.c | 63 ++++++++++++++++++++++++++++++++++++++--
2 files changed, 67 insertions(+), 3 deletions(-)
--- a/arch/mips/include/asm/mips-cm.h
+++ b/arch/mips/include/asm/mips-cm.h
@@ -187,6 +187,7 @@ BUILD_CM_R_(config, MIPS_CM_GCB_OFS + 0
BUILD_CM_RW(base, MIPS_CM_GCB_OFS + 0x08)
BUILD_CM_RW(access, MIPS_CM_GCB_OFS + 0x20)
BUILD_CM_R_(rev, MIPS_CM_GCB_OFS + 0x30)
+BUILD_CM_RW(err_control, MIPS_CM_GCB_OFS + 0x38)
BUILD_CM_RW(error_mask, MIPS_CM_GCB_OFS + 0x40)
BUILD_CM_RW(error_cause, MIPS_CM_GCB_OFS + 0x48)
BUILD_CM_RW(error_addr, MIPS_CM_GCB_OFS + 0x50)
@@ -266,6 +267,12 @@ BUILD_CM_Cx_R_(tcid_8_priority, 0x80)
#define CM_REV_CM2_5 CM_ENCODE_REV(7, 0)
#define CM_REV_CM3 CM_ENCODE_REV(8, 0)
+/* GCR_ERR_CONTROL register fields */
+#define CM_GCR_ERR_CONTROL_L2_ECC_EN_SHF 1
+#define CM_GCR_ERR_CONTROL_L2_ECC_EN_MSK (_ULCAST_(0x1) << 1)
+#define CM_GCR_ERR_CONTROL_L2_ECC_SUPPORT_SHF 0
+#define CM_GCR_ERR_CONTROL_L2_ECC_SUPPORT_MSK (_ULCAST_(0x1) << 0)
+
/* GCR_ERROR_CAUSE register fields */
#define CM_GCR_ERROR_CAUSE_ERRTYPE_SHF 27
#define CM_GCR_ERROR_CAUSE_ERRTYPE_MSK (_ULCAST_(0x1f) << 27)
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -51,6 +51,7 @@
#include <asm/idle.h>
#include <asm/mips-cm.h>
#include <asm/mips-r2-to-r6-emul.h>
+#include <asm/mips-cm.h>
#include <asm/mipsregs.h>
#include <asm/mipsmtregs.h>
#include <asm/module.h>
@@ -1646,6 +1647,65 @@ __setup("nol2par", nol2parity);
*/
static inline void parity_protection_init(void)
{
+#define ERRCTL_PE 0x80000000
+#define ERRCTL_L2P 0x00800000
+
+ if (mips_cm_revision() >= CM_REV_CM3) {
+ ulong gcr_ectl, cp0_ectl;
+
+ /*
+ * With CM3 systems we need to ensure that the L1 & L2
+ * parity enables are set to the same value, since this
+ * is presumed by the hardware engineers.
+ *
+ * If the user disabled either of L1 or L2 ECC checking,
+ * disable both.
+ */
+ l1parity &= l2parity;
+ l2parity &= l1parity;
+
+ /* Probe L1 ECC support */
+ cp0_ectl = read_c0_ecc();
+ write_c0_ecc(cp0_ectl | ERRCTL_PE);
+ back_to_back_c0_hazard();
+ cp0_ectl = read_c0_ecc();
+
+ /* Probe L2 ECC support */
+ gcr_ectl = read_gcr_err_control();
+
+ if (!(gcr_ectl & CM_GCR_ERR_CONTROL_L2_ECC_SUPPORT_MSK) ||
+ !(cp0_ectl & ERRCTL_PE)) {
+ /*
+ * One of L1 or L2 ECC checking isn't supported,
+ * so we cannot enable either.
+ */
+ l1parity = l2parity = 0;
+ }
+
+ /* Configure L1 ECC checking */
+ if (l1parity)
+ cp0_ectl |= ERRCTL_PE;
+ else
+ cp0_ectl &= ~ERRCTL_PE;
+ write_c0_ecc(cp0_ectl);
+ back_to_back_c0_hazard();
+ WARN_ON(!!(read_c0_ecc() & ERRCTL_PE) != l1parity);
+
+ /* Configure L2 ECC checking */
+ if (l2parity)
+ gcr_ectl |= CM_GCR_ERR_CONTROL_L2_ECC_EN_MSK;
+ else
+ gcr_ectl &= ~CM_GCR_ERR_CONTROL_L2_ECC_EN_MSK;
+ write_gcr_err_control(gcr_ectl);
+ gcr_ectl = read_gcr_err_control();
+ gcr_ectl &= CM_GCR_ERR_CONTROL_L2_ECC_EN_MSK;
+ WARN_ON(!!gcr_ectl != l2parity);
+
+ pr_info("Cache parity protection %sabled\n",
+ l1parity ? "en" : "dis");
+ return;
+ }
+
switch (current_cpu_type()) {
case CPU_24K:
case CPU_34K:
@@ -1656,11 +1716,8 @@ static inline void parity_protection_ini
case CPU_PROAPTIV:
case CPU_P5600:
case CPU_QEMU_GENERIC:
- case CPU_I6400:
case CPU_P6600:
{
-#define ERRCTL_PE 0x80000000
-#define ERRCTL_L2P 0x00800000
unsigned long errctl;
unsigned int l1parity_present, l2parity_present;
Patches currently in stable-queue which might be from paul.burton(a)imgtec.com are
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
This is a note to let you know that I've just added the patch titled
MIPS: init: Ensure reserved memory regions are not added to bootmem
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
Date: Wed, 23 Nov 2016 14:43:44 +0100
Subject: MIPS: init: Ensure reserved memory regions are not added to bootmem
From: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
[ Upstream commit e89ef66d7682f031f026eee6bba03c8c2248d2a9 ]
Memories managed through boot_mem_map are generally expected to define
non-crossing areas. However, if part of a larger memory block is marked
as reserved, it would still be added to bootmem allocator as an
available block and could end up being overwritten by the allocator.
Prevent this by explicitly marking the memory as reserved it if exists
in the range used by bootmem allocator.
Signed-off-by: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
Cc: linux-mips(a)linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14608/
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/mips/kernel/setup.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -551,6 +551,10 @@ static void __init bootmem_init(void)
continue;
default:
/* Not usable memory */
+ if (start > min_low_pfn && end < max_low_pfn)
+ reserve_bootmem(boot_mem_map.map[i].addr,
+ boot_mem_map.map[i].size,
+ BOOTMEM_DEFAULT);
continue;
}
Patches currently in stable-queue which might be from marcin.nowakowski(a)imgtec.com are
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
This is a note to let you know that I've just added the patch titled
MIPS: init: Ensure bootmem does not corrupt reserved memory
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
Date: Wed, 23 Nov 2016 14:43:45 +0100
Subject: MIPS: init: Ensure bootmem does not corrupt reserved memory
From: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
[ Upstream commit d9b5b658210f28ed9f70c757d553e679d76e2986 ]
Current init code initialises bootmem allocator with all of the low
memory that it assumes is available, but does not check for reserved
memory block, which can lead to corruption of data that may be stored
there.
Move bootmem's allocation map to a location that does not cross any
reserved regions
Signed-off-by: Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
Cc: linux-mips(a)linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14609/
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/mips/kernel/setup.c | 74 +++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 71 insertions(+), 3 deletions(-)
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -153,6 +153,35 @@ void __init detect_memory_region(phys_ad
add_memory_region(start, size, BOOT_MEM_RAM);
}
+bool __init memory_region_available(phys_addr_t start, phys_addr_t size)
+{
+ int i;
+ bool in_ram = false, free = true;
+
+ for (i = 0; i < boot_mem_map.nr_map; i++) {
+ phys_addr_t start_, end_;
+
+ start_ = boot_mem_map.map[i].addr;
+ end_ = boot_mem_map.map[i].addr + boot_mem_map.map[i].size;
+
+ switch (boot_mem_map.map[i].type) {
+ case BOOT_MEM_RAM:
+ if (start >= start_ && start + size <= end_)
+ in_ram = true;
+ break;
+ case BOOT_MEM_RESERVED:
+ if ((start >= start_ && start < end_) ||
+ (start < start_ && start + size >= start_))
+ free = false;
+ break;
+ default:
+ continue;
+ }
+ }
+
+ return in_ram && free;
+}
+
static void __init print_memory_map(void)
{
int i;
@@ -332,11 +361,19 @@ static void __init bootmem_init(void)
#else /* !CONFIG_SGI_IP27 */
+static unsigned long __init bootmap_bytes(unsigned long pages)
+{
+ unsigned long bytes = DIV_ROUND_UP(pages, 8);
+
+ return ALIGN(bytes, sizeof(long));
+}
+
static void __init bootmem_init(void)
{
unsigned long reserved_end;
unsigned long mapstart = ~0UL;
unsigned long bootmap_size;
+ bool bootmap_valid = false;
int i;
/*
@@ -430,11 +467,42 @@ static void __init bootmem_init(void)
#endif
/*
- * Initialize the boot-time allocator with low memory only.
+ * check that mapstart doesn't overlap with any of
+ * memory regions that have been reserved through eg. DTB
*/
- bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart,
- min_low_pfn, max_low_pfn);
+ bootmap_size = bootmap_bytes(max_low_pfn - min_low_pfn);
+
+ bootmap_valid = memory_region_available(PFN_PHYS(mapstart),
+ bootmap_size);
+ for (i = 0; i < boot_mem_map.nr_map && !bootmap_valid; i++) {
+ unsigned long mapstart_addr;
+
+ switch (boot_mem_map.map[i].type) {
+ case BOOT_MEM_RESERVED:
+ mapstart_addr = PFN_ALIGN(boot_mem_map.map[i].addr +
+ boot_mem_map.map[i].size);
+ if (PHYS_PFN(mapstart_addr) < mapstart)
+ break;
+
+ bootmap_valid = memory_region_available(mapstart_addr,
+ bootmap_size);
+ if (bootmap_valid)
+ mapstart = PHYS_PFN(mapstart_addr);
+ break;
+ default:
+ break;
+ }
+ }
+ if (!bootmap_valid)
+ panic("No memory area to place a bootmap bitmap");
+
+ /*
+ * Initialize the boot-time allocator with low memory only.
+ */
+ if (bootmap_size != init_bootmem_node(NODE_DATA(0), mapstart,
+ min_low_pfn, max_low_pfn))
+ panic("Unexpected memory size required for bootmap");
for (i = 0; i < boot_mem_map.nr_map; i++) {
unsigned long start, end;
Patches currently in stable-queue which might be from marcin.nowakowski(a)imgtec.com are
queue-4.9/mips-init-ensure-bootmem-does-not-corrupt-reserved-memory.patch
queue-4.9/mips-init-ensure-reserved-memory-regions-are-not-added-to-bootmem.patch
This is a note to let you know that I've just added the patch titled
MIPS: End asm function prologue macros with .insn
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
mips-end-asm-function-prologue-macros-with-.insn.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Paul Burton <paul.burton(a)imgtec.com>
Date: Mon, 7 Nov 2016 11:14:09 +0000
Subject: MIPS: End asm function prologue macros with .insn
From: Paul Burton <paul.burton(a)imgtec.com>
[ Upstream commit 08889582b8aa0bbc01a1e5a0033b9f98d2e11caa ]
When building a kernel targeting a microMIPS ISA, recent GNU linkers
will fail the link if they cannot determine that the target of a branch
or jump is microMIPS code, with errors such as the following:
mips-img-linux-gnu-ld: arch/mips/built-in.o: .text+0x542c:
Unsupported jump between ISA modes; consider recompiling with
interlinking enabled.
mips-img-linux-gnu-ld: final link failed: Bad value
or:
./arch/mips/include/asm/uaccess.h:1017: warning: JALX to a
non-word-aligned address
Placing anything other than an instruction at the start of a function
written in assembly appears to trigger such errors. In order to prepare
for allowing us to follow function prologue macros with an EXPORT_SYMBOL
invocation, end the prologue macros (LEAD, NESTED & FEXPORT) with a
.insn directive. This ensures that the start of the function is marked
as code, which always makes sense for functions & safely prevents us
from hitting the link errors described above.
Signed-off-by: Paul Burton <paul.burton(a)imgtec.com>
Reviewed-by: Maciej W. Rozycki <macro(a)imgtec.com>
Cc: linux-mips(a)linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14508/
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/mips/include/asm/asm.h | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
--- a/arch/mips/include/asm/asm.h
+++ b/arch/mips/include/asm/asm.h
@@ -54,7 +54,8 @@
.align 2; \
.type symbol, @function; \
.ent symbol, 0; \
-symbol: .frame sp, 0, ra
+symbol: .frame sp, 0, ra; \
+ .insn
/*
* NESTED - declare nested routine entry point
@@ -63,8 +64,9 @@ symbol: .frame sp, 0, ra
.globl symbol; \
.align 2; \
.type symbol, @function; \
- .ent symbol, 0; \
-symbol: .frame sp, framesize, rpc
+ .ent symbol, 0; \
+symbol: .frame sp, framesize, rpc; \
+ .insn
/*
* END - mark end of function
@@ -86,7 +88,7 @@ symbol:
#define FEXPORT(symbol) \
.globl symbol; \
.type symbol, @function; \
-symbol:
+symbol: .insn
/*
* ABS - export absolute symbol
Patches currently in stable-queue which might be from paul.burton(a)imgtec.com are
queue-4.9/mips-netlogic-exclude-netlogic-xlp-pic-code-from-xlr-builds.patch
queue-4.9/mips-traps-ensure-l1-l2-ecc-checking-match-for-cm3-systems.patch
queue-4.9/mips-end-asm-function-prologue-macros-with-.insn.patch
This is a note to let you know that I've just added the patch titled
ixgbe: handle close/suspend race with netif_device_detach/present
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From foo@baz Sun Nov 19 11:32:28 CET 2017
From: Emil Tantilov <emil.s.tantilov(a)intel.com>
Date: Fri, 11 Nov 2016 10:07:47 -0800
Subject: ixgbe: handle close/suspend race with netif_device_detach/present
From: Emil Tantilov <emil.s.tantilov(a)intel.com>
[ Upstream commit f7f37e7ff2b9b7eff7fbd035569cab35896869a3 ]
When an interface is part of a namespace it is possible that
ixgbe_close() may be called while __ixgbe_shutdown() is running
which ends up in a double free WARN and/or a BUG in free_msi_irqs().
To handle this situation we extend the rtnl_lock() to protect the
call to netif_device_detach() and ixgbe_clear_interrupt_scheme()
in __ixgbe_shutdown() and check for netif_device_present()
to avoid clearing the interrupts second time in ixgbe_close();
Also extend the rtnl lock in ixgbe_resume() to netif_device_attach().
Signed-off-by: Emil Tantilov <emil.s.tantilov(a)intel.com>
Tested-by: Andrew Bowers <andrewx.bowers(a)intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher(a)intel.com>
Signed-off-by: Sasha Levin <alexander.levin(a)verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6194,7 +6194,8 @@ int ixgbe_close(struct net_device *netde
ixgbe_ptp_stop(adapter);
- ixgbe_close_suspend(adapter);
+ if (netif_device_present(netdev))
+ ixgbe_close_suspend(adapter);
ixgbe_fdir_filter_exit(adapter);
@@ -6239,14 +6240,12 @@ static int ixgbe_resume(struct pci_dev *
if (!err && netif_running(netdev))
err = ixgbe_open(netdev);
- rtnl_unlock();
- if (err)
- return err;
-
- netif_device_attach(netdev);
+ if (!err)
+ netif_device_attach(netdev);
+ rtnl_unlock();
- return 0;
+ return err;
}
#endif /* CONFIG_PM */
@@ -6261,14 +6260,14 @@ static int __ixgbe_shutdown(struct pci_d
int retval = 0;
#endif
+ rtnl_lock();
netif_device_detach(netdev);
- rtnl_lock();
if (netif_running(netdev))
ixgbe_close_suspend(adapter);
- rtnl_unlock();
ixgbe_clear_interrupt_scheme(adapter);
+ rtnl_unlock();
#ifdef CONFIG_PM
retval = pci_save_state(pdev);
Patches currently in stable-queue which might be from emil.s.tantilov(a)intel.com are
queue-4.9/ixgbe-handle-close-suspend-race-with-netif_device_detach-present.patch
queue-4.9/ixgbe-do-not-disable-fec-from-the-driver.patch
queue-4.9/ixgbe-fix-aer-error-handling.patch
queue-4.9/ixgbe-add-mask-for-64-rss-queues.patch