* [PATCH 01/20] IB/core: If the MGID/MLID pair is not on the list return an error
2017-04-09 17:15 [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Dennis Dalessandro
@ 2017-04-09 17:15 ` Dennis Dalessandro
2017-04-09 17:15 ` [PATCH 04/20] IB/core: For multicast functions, verify that LIDs are multicast LIDs Dennis Dalessandro
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Dennis Dalessandro @ 2017-04-09 17:15 UTC (permalink / raw)
To: dledford; +Cc: linux-rdma, Leon Romanovsky, Ira Weiny, stable, Michael J. Ruhl
From: Michael J. Ruhl <michael.j.ruhl@intel.com>
A list of MGID/MLID pairs is built when doing a multicast attach. When
the multicast detach is called, the list is searched, and regardless of
the search outcome, the driver detach is called.
If an MGID/MLID pair is not on the list, driver detach should not be
called, and an error should be returned. Calling the driver without
removing an MGID/MLID pair from the list can leave the core and driver
out of sync.
Fixes: f4e401562c11 ("IB/uverbs: track multicast group membership for userspace QPs")
Cc: stable@vger.kernel.org
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
---
drivers/infiniband/core/uverbs_cmd.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index b9024fa..27fcbeb 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -2647,6 +2647,7 @@ ssize_t ib_uverbs_detach_mcast(struct ib_uverbs_file *file,
struct ib_qp *qp;
struct ib_uverbs_mcast_entry *mcast;
int ret = -EINVAL;
+ bool found = false;
if (copy_from_user(&cmd, buf, sizeof cmd))
return -EFAULT;
@@ -2658,18 +2659,22 @@ ssize_t ib_uverbs_detach_mcast(struct ib_uverbs_file *file,
obj = container_of(qp->uobject, struct ib_uqp_object, uevent.uobject);
mutex_lock(&obj->mcast_lock);
- ret = ib_detach_mcast(qp, (union ib_gid *) cmd.gid, cmd.mlid);
- if (ret)
- goto out_put;
-
list_for_each_entry(mcast, &obj->mcast_list, list)
if (cmd.mlid == mcast->lid &&
!memcmp(cmd.gid, mcast->gid.raw, sizeof mcast->gid.raw)) {
list_del(&mcast->list);
kfree(mcast);
+ found = true;
break;
}
+ if (!found) {
+ ret = -EINVAL;
+ goto out_put;
+ }
+
+ ret = ib_detach_mcast(qp, (union ib_gid *)cmd.gid, cmd.mlid);
+
out_put:
mutex_unlock(&obj->mcast_lock);
uobj_put_obj_read(qp);
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 04/20] IB/core: For multicast functions, verify that LIDs are multicast LIDs
2017-04-09 17:15 [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Dennis Dalessandro
2017-04-09 17:15 ` [PATCH 01/20] IB/core: If the MGID/MLID pair is not on the list return an error Dennis Dalessandro
@ 2017-04-09 17:15 ` Dennis Dalessandro
2017-04-15 15:01 ` Leon Romanovsky
2017-04-09 17:16 ` [PATCH 11/20] IB/hfi1: Prevent kernel QP post send hard lockups Dennis Dalessandro
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Dennis Dalessandro @ 2017-04-09 17:15 UTC (permalink / raw)
To: dledford
Cc: linux-rdma, Michael J. Ruhl, Ira Weiny, stable,
Dasaratharaman Chandramouli
From: Michael J. Ruhl <michael.j.ruhl@intel.com>
The Infiniband spec defines "A multicast address is defined by a
MGID and a MLID" (section 10.5). Currently the MLID value is not
validated.
Add check to verify that the MLID value is in the correct address
range.
Fixes: 0c33aeedb2cf ("[IB] Add checks to multicast attach and detach")
Cc: stable@vger.kernel.org
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
---
drivers/infiniband/core/verbs.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 85ed505..207e5c2 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1519,7 +1519,9 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid)
if (!qp->device->attach_mcast)
return -ENOSYS;
- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD)
+ if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD ||
+ lid < be16_to_cpu(IB_MULTICAST_LID_BASE) ||
+ lid == be16_to_cpu(IB_LID_PERMISSIVE))
return -EINVAL;
ret = qp->device->attach_mcast(qp, gid, lid);
@@ -1535,7 +1537,9 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid)
if (!qp->device->detach_mcast)
return -ENOSYS;
- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD)
+ if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD ||
+ lid < be16_to_cpu(IB_MULTICAST_LID_BASE) ||
+ lid == be16_to_cpu(IB_LID_PERMISSIVE))
return -EINVAL;
ret = qp->device->detach_mcast(qp, gid, lid);
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 04/20] IB/core: For multicast functions, verify that LIDs are multicast LIDs
2017-04-09 17:15 ` [PATCH 04/20] IB/core: For multicast functions, verify that LIDs are multicast LIDs Dennis Dalessandro
@ 2017-04-15 15:01 ` Leon Romanovsky
0 siblings, 0 replies; 9+ messages in thread
From: Leon Romanovsky @ 2017-04-15 15:01 UTC (permalink / raw)
To: Dennis Dalessandro
Cc: dledford, linux-rdma, Michael J. Ruhl, Ira Weiny, stable,
Dasaratharaman Chandramouli
[-- Attachment #1: Type: text/plain, Size: 880 bytes --]
On Sun, Apr 09, 2017 at 10:15:51AM -0700, Dennis Dalessandro wrote:
> From: Michael J. Ruhl <michael.j.ruhl@intel.com>
>
> The Infiniband spec defines "A multicast address is defined by a
> MGID and a MLID" (section 10.5). Currently the MLID value is not
> validated.
>
> Add check to verify that the MLID value is in the correct address
> range.
>
> Fixes: 0c33aeedb2cf ("[IB] Add checks to multicast attach and detach")
> Cc: stable@vger.kernel.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
> Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
> ---
> drivers/infiniband/core/verbs.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
Thanks,
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 11/20] IB/hfi1: Prevent kernel QP post send hard lockups
2017-04-09 17:15 [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Dennis Dalessandro
2017-04-09 17:15 ` [PATCH 01/20] IB/core: If the MGID/MLID pair is not on the list return an error Dennis Dalessandro
2017-04-09 17:15 ` [PATCH 04/20] IB/core: For multicast functions, verify that LIDs are multicast LIDs Dennis Dalessandro
@ 2017-04-09 17:16 ` Dennis Dalessandro
2017-04-09 17:17 ` [PATCH 20/20] IB/hfi1: Use bool in process_ecn Dennis Dalessandro
2017-04-28 17:45 ` [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Doug Ledford
4 siblings, 0 replies; 9+ messages in thread
From: Dennis Dalessandro @ 2017-04-09 17:16 UTC (permalink / raw)
To: dledford; +Cc: linux-rdma, Mike Marciniszyn, stable
From: Mike Marciniszyn <mike.marciniszyn@intel.com>
The driver progress routines can call cond_resched() when
a timeslice is exhausted and irqs are enabled.
If the ULP had been holding a spin lock without disabling irqs and
the post send directly called the progress routine, the cond_resched()
could yield allowing another thread from the same ULP to deadlock
on that same lock.
Correct by replacing the current hfi1_do_send() calldown with a unique
one for post send and adding an argument to hfi1_do_send() to indicate
that the send engine is running in a thread. If the routine is not
running in a thread, avoid calling cond_resched().
CC: <stable@vger.kernel.org> # 4.7.x-
Fixes: Commit 831464ce4b74 ("IB/hfi1: Don't call cond_resched in atomic mode when sending packets")
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
---
drivers/infiniband/hw/hfi1/ruc.c | 26 ++++++++++++++++----------
drivers/infiniband/hw/hfi1/verbs.c | 4 ++--
drivers/infiniband/hw/hfi1/verbs.h | 6 ++++--
3 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/ruc.c b/drivers/infiniband/hw/hfi1/ruc.c
index 879eb9b..ccf8d80 100644
--- a/drivers/infiniband/hw/hfi1/ruc.c
+++ b/drivers/infiniband/hw/hfi1/ruc.c
@@ -1,5 +1,5 @@
/*
- * Copyright(c) 2015, 2016 Intel Corporation.
+ * Copyright(c) 2015 - 2017 Intel Corporation.
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
@@ -784,23 +784,29 @@ void hfi1_make_ruc_header(struct rvt_qp *qp, struct ib_other_headers *ohdr,
/* when sending, force a reschedule every one of these periods */
#define SEND_RESCHED_TIMEOUT (5 * HZ) /* 5s in jiffies */
+void hfi1_do_send_from_rvt(struct rvt_qp *qp)
+{
+ hfi1_do_send(qp, false);
+}
+
void _hfi1_do_send(struct work_struct *work)
{
struct iowait *wait = container_of(work, struct iowait, iowork);
struct rvt_qp *qp = iowait_to_qp(wait);
- hfi1_do_send(qp);
+ hfi1_do_send(qp, true);
}
/**
* hfi1_do_send - perform a send on a QP
* @work: contains a pointer to the QP
+ * @in_thread: true if in a workqueue thread
*
* Process entries in the send work queue until credit or queue is
* exhausted. Only allow one CPU to send a packet per QP.
* Otherwise, two threads could send packets out of order.
*/
-void hfi1_do_send(struct rvt_qp *qp)
+void hfi1_do_send(struct rvt_qp *qp, bool in_thread)
{
struct hfi1_pkt_state ps;
struct hfi1_qp_priv *priv = qp->priv;
@@ -868,8 +874,10 @@ void hfi1_do_send(struct rvt_qp *qp)
qp->s_hdrwords = 0;
/* allow other tasks to run */
if (unlikely(time_after(jiffies, timeout))) {
- if (workqueue_congested(cpu,
- ps.ppd->hfi1_wq)) {
+ if (!in_thread ||
+ workqueue_congested(
+ cpu,
+ ps.ppd->hfi1_wq)) {
spin_lock_irqsave(
&qp->s_lock,
ps.flags);
@@ -882,11 +890,9 @@ void hfi1_do_send(struct rvt_qp *qp)
*ps.ppd->dd->send_schedule);
return;
}
- if (!irqs_disabled()) {
- cond_resched();
- this_cpu_inc(
- *ps.ppd->dd->send_schedule);
- }
+ cond_resched();
+ this_cpu_inc(
+ *ps.ppd->dd->send_schedule);
timeout = jiffies + (timeout_int) / 8;
}
spin_lock_irqsave(&qp->s_lock, ps.flags);
diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c
index 7f49719..e112762 100644
--- a/drivers/infiniband/hw/hfi1/verbs.c
+++ b/drivers/infiniband/hw/hfi1/verbs.c
@@ -1,5 +1,5 @@
/*
- * Copyright(c) 2015, 2016 Intel Corporation.
+ * Copyright(c) 2015 - 2017 Intel Corporation.
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
@@ -1816,7 +1816,7 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
dd->verbs_dev.rdi.driver_f.qp_priv_free = qp_priv_free;
dd->verbs_dev.rdi.driver_f.free_all_qps = free_all_qps;
dd->verbs_dev.rdi.driver_f.notify_qp_reset = notify_qp_reset;
- dd->verbs_dev.rdi.driver_f.do_send = hfi1_do_send;
+ dd->verbs_dev.rdi.driver_f.do_send = hfi1_do_send_from_rvt;
dd->verbs_dev.rdi.driver_f.schedule_send = hfi1_schedule_send;
dd->verbs_dev.rdi.driver_f.schedule_send_no_lock = _hfi1_schedule_send;
dd->verbs_dev.rdi.driver_f.get_pmtu_from_attr = get_pmtu_from_attr;
diff --git a/drivers/infiniband/hw/hfi1/verbs.h b/drivers/infiniband/hw/hfi1/verbs.h
index 6c549e7..46b00ed 100644
--- a/drivers/infiniband/hw/hfi1/verbs.h
+++ b/drivers/infiniband/hw/hfi1/verbs.h
@@ -1,5 +1,5 @@
/*
- * Copyright(c) 2015, 2016 Intel Corporation.
+ * Copyright(c) 2015 - 2017 Intel Corporation.
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
@@ -355,7 +355,9 @@ void hfi1_make_ruc_header(struct rvt_qp *qp, struct ib_other_headers *ohdr,
void _hfi1_do_send(struct work_struct *work);
-void hfi1_do_send(struct rvt_qp *qp);
+void hfi1_do_send_from_rvt(struct rvt_qp *qp);
+
+void hfi1_do_send(struct rvt_qp *qp, bool in_thread);
void hfi1_send_complete(struct rvt_qp *qp, struct rvt_swqe *wqe,
enum ib_wc_status status);
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 20/20] IB/hfi1: Use bool in process_ecn
2017-04-09 17:15 [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Dennis Dalessandro
` (2 preceding siblings ...)
2017-04-09 17:16 ` [PATCH 11/20] IB/hfi1: Prevent kernel QP post send hard lockups Dennis Dalessandro
@ 2017-04-09 17:17 ` Dennis Dalessandro
2017-04-28 17:45 ` [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Doug Ledford
4 siblings, 0 replies; 9+ messages in thread
From: Dennis Dalessandro @ 2017-04-09 17:17 UTC (permalink / raw)
To: dledford; +Cc: linux-rdma, Mike Marciniszyn, stable
The process_ecn intends to return a bool value. However it is doing
so incorrectly by ANDing the fecn mask. The fecn bit is bit 31. Bool is
not a native data type and is up to the compiler to implement how it
sees fit. It is conceivable that this upper bit gets washed out.
Fix by converting to a bool properly.
Cc: stable@vger.kernel.org
Fixes: Commit fd2b562edca6 ("IB/hfi1: Pull FECN/BECN processing to a common place")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
---
drivers/infiniband/hw/hfi1/hfi.h | 2 +-
drivers/infiniband/hw/hfi1/rc.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/hfi.h b/drivers/infiniband/hw/hfi1/hfi.h
index 9aec0a2..d83bdb4 100644
--- a/drivers/infiniband/hw/hfi1/hfi.h
+++ b/drivers/infiniband/hw/hfi1/hfi.h
@@ -1607,7 +1607,7 @@ static inline bool process_ecn(struct rvt_qp *qp, struct hfi1_packet *pkt,
bth1 = be32_to_cpu(ohdr->bth[1]);
if (unlikely(bth1 & (IB_BECN_SMASK | IB_FECN_SMASK))) {
hfi1_process_ecn_slowpath(qp, pkt, do_cnp);
- return bth1 & IB_FECN_SMASK;
+ return !!(bth1 & IB_FECN_SMASK);
}
return false;
}
diff --git a/drivers/infiniband/hw/hfi1/rc.c b/drivers/infiniband/hw/hfi1/rc.c
index da968b7..9b3333f 100644
--- a/drivers/infiniband/hw/hfi1/rc.c
+++ b/drivers/infiniband/hw/hfi1/rc.c
@@ -1930,7 +1930,8 @@ void hfi1_rc_rcv(struct hfi1_packet *packet)
int diff;
struct ib_reth *reth;
unsigned long flags;
- int ret, is_fecn = 0;
+ int ret;
+ bool is_fecn = false;
bool copy_last = false;
u32 rkey;
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next
2017-04-09 17:15 [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Dennis Dalessandro
` (3 preceding siblings ...)
2017-04-09 17:17 ` [PATCH 20/20] IB/hfi1: Use bool in process_ecn Dennis Dalessandro
@ 2017-04-28 17:45 ` Doug Ledford
2017-04-28 17:50 ` Dennis Dalessandro
4 siblings, 1 reply; 9+ messages in thread
From: Doug Ledford @ 2017-04-28 17:45 UTC (permalink / raw)
To: Dennis Dalessandro
Cc: Mike Marciniszyn, Stuart Summers, linux-rdma, Ira Weiny,
Mitko Haralanov, Tadeusz Struk, stable, Michael J. Ruhl,
Easwar Hariharan, Don Hiatt, Neel Desai, Leon Romanovsky,
Sebastian Sanchez, Dasaratharaman Chandramouli
On Sun, 2017-04-09 at 10:15 -0700, Dennis Dalessandro wrote:
> Doug,
>
> Here are some patches for the next release. It includes the core fix
> that did
> not apply from my last series. Other than that this is the usual bug
> fixes
> and some minor clean ups.
>
> Patches apply on top of your for-4.12 branch and can also be found in
> my
> GitHub repo at: https://github.com/ddalessa/kernel/tree/for-4.12
>
Series, minus patch #2 because of community NAK, applied.
--
Doug Ledford <dledford@redhat.com>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next
2017-04-28 17:45 ` [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next Doug Ledford
@ 2017-04-28 17:50 ` Dennis Dalessandro
2017-04-28 18:09 ` Doug Ledford
0 siblings, 1 reply; 9+ messages in thread
From: Dennis Dalessandro @ 2017-04-28 17:50 UTC (permalink / raw)
To: Doug Ledford
Cc: Mike Marciniszyn, Stuart Summers, linux-rdma, Ira Weiny,
Mitko Haralanov, Tadeusz Struk, stable, Michael J. Ruhl,
Easwar Hariharan, Don Hiatt, Neel Desai, Leon Romanovsky,
Sebastian Sanchez, Dasaratharaman Chandramouli
On 04/28/2017 01:45 PM, Doug Ledford wrote:
> On Sun, 2017-04-09 at 10:15 -0700, Dennis Dalessandro wrote:
>> Doug,
>>
>> Here are some patches for the next release. It includes the core fix
>> that did
>> not apply from my last series. Other than that this is the usual bug
>> fixes
>> and some minor clean ups.
>>
>> Patches apply on top of your for-4.12 branch and can also be found in
>> my
>> GitHub repo at: https://github.com/ddalessa/kernel/tree/for-4.12
>>
>
> Series, minus patch #2 because of community NAK, applied.
>
Looks like we are working at the same time. A v2 was literally sent 5
minutes ago. The only changes were to drop that NAKed patch and fix up
the soft-lockup patch so if you just want to grab:
https://patchwork.kernel.org/patch/9705175/
to replace the original:
https://patchwork.kernel.org/patch/9671675/
That would be good or I could send a separate patch with the fix-ups.
Whichever is easiest.
-Denny
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 00/20] IB/hfi1,rdmavt,core: Patches for-next
2017-04-28 17:50 ` Dennis Dalessandro
@ 2017-04-28 18:09 ` Doug Ledford
0 siblings, 0 replies; 9+ messages in thread
From: Doug Ledford @ 2017-04-28 18:09 UTC (permalink / raw)
To: Dennis Dalessandro
Cc: Mike Marciniszyn, Stuart Summers, linux-rdma, Ira Weiny,
Mitko Haralanov, Tadeusz Struk, stable, Michael J. Ruhl,
Easwar Hariharan, Don Hiatt, Neel Desai, Leon Romanovsky,
Sebastian Sanchez, Dasaratharaman Chandramouli
On Fri, 2017-04-28 at 13:50 -0400, Dennis Dalessandro wrote:
> On 04/28/2017 01:45 PM, Doug Ledford wrote:
> >
> > On Sun, 2017-04-09 at 10:15 -0700, Dennis Dalessandro wrote:
> > >
> > > Doug,
> > >
> > > Here are some patches for the next release. It includes the core
> > > fix
> > > that did
> > > not apply from my last series. Other than that this is the usual
> > > bug
> > > fixes
> > > and some minor clean ups.
> > >
> > > Patches apply on top of your for-4.12 branch and can also be
> > > found in
> > > my
> > > GitHub repo at: https://github.com/ddalessa/kernel/tree/for-4.12
> > >
> >
> > Series, minus patch #2 because of community NAK, applied.
> >
>
> Looks like we are working at the same time. A v2 was literally sent
> 5
> minutes ago. The only changes were to drop that NAKed patch and fix
> up
> the soft-lockup patch so if you just want to grab:
>
> https://patchwork.kernel.org/patch/9705175/
>
> to replace the original:
>
> https://patchwork.kernel.org/patch/9671675/
>
> That would be good or I could send a separate patch with the fix-
> ups.
> Whichever is easiest.
>
> -Denny
I grabbed the updated patch 11, it's all good.
--
Doug Ledford <dledford@redhat.com>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
^ permalink raw reply [flat|nested] 9+ messages in thread