Hi Roland,
please apply these two patches for your -next tree.
Regards,
Alex
The irq_spinlock is only taken in tasklet context, so it is safe not to
disable hardware interrupts.
Signed-off-by: Alexander Schmidt <[email protected]>
---
drivers/infiniband/hw/ehca/ehca_irq.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- linux-2.6.orig/drivers/infiniband/hw/ehca/ehca_irq.c
+++ linux-2.6/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -548,11 +548,10 @@ void ehca_process_eq(struct ehca_shca *s
struct ehca_eq *eq = &shca->eq;
struct ehca_eqe_cache_entry *eqe_cache = eq->eqe_cache;
u64 eqe_value, ret;
- unsigned long flags;
int eqe_cnt, i;
int eq_empty = 0;
- spin_lock_irqsave(&eq->irq_spinlock, flags);
+ spin_lock(&eq->irq_spinlock);
if (is_irq) {
const int max_query_cnt = 100;
int query_cnt = 0;
@@ -643,7 +642,7 @@ void ehca_process_eq(struct ehca_shca *s
} while (1);
unlock_irq_spinlock:
- spin_unlock_irqrestore(&eq->irq_spinlock, flags);
+ spin_unlock(&eq->irq_spinlock);
}
void ehca_tasklet_eq(unsigned long data)
The max_dest_rd_atomic and max_qp_rd_atomic values are
properly returned by query_qp(), so there should not be
an error returned when they are queried.
Signed-off-by: Alexander Schmidt <[email protected]>
---
drivers/infiniband/hw/ehca/ehca_qp.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
--- linux-2.6.orig/drivers/infiniband/hw/ehca/ehca_qp.c
+++ linux-2.6/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -55,9 +55,7 @@ static struct kmem_cache *qp_cache;
/*
* attributes not supported by query qp
*/
-#define QP_ATTR_QUERY_NOT_SUPPORTED (IB_QP_MAX_DEST_RD_ATOMIC | \
- IB_QP_MAX_QP_RD_ATOMIC | \
- IB_QP_ACCESS_FLAGS | \
+#define QP_ATTR_QUERY_NOT_SUPPORTED (IB_QP_ACCESS_FLAGS | \
IB_QP_EN_SQD_ASYNC_NOTIFY)
/*
applied 1 & 2, thanks
--
Roland Dreier <[email protected]>
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html