[openib-general] [PATCH RFC 16/21] ofed_1_2 Backport infinband/hw/cxgb3/iwch_cm.[ch] to sles9sp3
Michael S. Tsirkin
mst at mellanox.co.il
Tue Jan 16 00:06:48 PST 2007
> Quoting Steve Wise <swise at opengridcomputing.com>:
> Subject: [PATCH RFC 16/21] ofed_1_2 Backport infinband/hw/cxgb3/iwch_cm.[ch] to sles9sp3
>
>
> Backport infinband/hw/cxgb3/iwch_cm.[ch] to sles9sp3
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> ---
>
> .../2.6.5_sles9_sp3/iwch_cm_to_2_6_5-7_244.patch | 35 +++++++++++++++++++++++
> 1 files changed, 35 insertions(+), 0 deletions(-)
>
> diff --git a/kernel_patches/backport/2.6.5_sles9_sp3/iwch_cm_to_2_6_5-7_244.patch b/kernel_patches/backport/2.6.5_sles9_sp3/iwch_cm_to_2_6_5-7_244.patch
> new file mode 100644
> index 0000000..af468f7
> --- /dev/null
> +++ b/kernel_patches/backport/2.6.5_sles9_sp3/iwch_cm_to_2_6_5-7_244.patch
> @@ -0,0 +1,35 @@
> +diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
> +index 3237fc8..2a38953 100644
> +--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
> ++++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
> +@@ -234,7 +234,7 @@ static void *alloc_ep(int size, gfp_t gf
> + epc = kmalloc(size, gfp);
> + if (epc) {
> + memset(epc, 0, size);
> +- kref_init(&epc->kref);
> ++ kref_init(&epc->kref, __free_ep);
> + spin_lock_init(&epc->lock);
> + init_waitqueue_head(&epc->waitq);
> + }
> +@@ -338,7 +338,7 @@ static struct rtable *find_route(struct
> + }
> + };
> +
> +- if (ip_route_output_flow(&rt, &fl, NULL, 0))
> ++ if (ip_route_output_key(&rt, &fl))
> + return NULL;
> + return rt;
> + }
> +diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.h b/drivers/infiniband/hw/cxgb3/iwch_cm.h
> +index 893f9d0..e54e202 100644
> +--- a/drivers/infiniband/hw/cxgb3/iwch_cm.h
> ++++ b/drivers/infiniband/hw/cxgb3/iwch_cm.h
> +@@ -57,7 +57,7 @@ #define MPA_FLAGS_MASK 0xE0
> + #define put_ep(ep) { \
> + PDBG("put_ep (via %s:%u) ep %p refcnt %d\n", __FUNCTION__, __LINE__, \
> + ep, atomic_read(&((ep)->kref.refcount))); \
> +- kref_put(&((ep)->kref), __free_ep); \
> ++ kref_put(&((ep)->kref)); \
> + }
> +
> + #define get_ep(ep) { \
It's not easy to do something abou t kref_put (we'd need to define our own struct
for it, like we did for work_struct).
But surely ip_route_output_key can just be a macro in kernel_addons?
--
MST
More information about the general
mailing list