Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 94903
b: refs/heads/master
c: baaad38
h: refs/heads/master
i:
  94901: 4ce6793
  94899: ff2b433
  94895: 2456ab7
v: v3
  • Loading branch information
Roland Dreier committed Apr 29, 2008
1 parent 71d67dc commit 18c18a2
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0bfe151cc4049f3f304adf28b37ea5437d02ad96
refs/heads/master: baaad380c0aa955f7d62e846467316c94067f1a5
14 changes: 13 additions & 1 deletion trunk/drivers/infiniband/hw/mthca/mthca_provider.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
#include <rdma/ib_smi.h>
#include <rdma/ib_umem.h>
#include <rdma/ib_user_verbs.h>

#include <linux/sched.h>
#include <linux/mm.h>

#include "mthca_dev.h"
Expand Down Expand Up @@ -367,6 +369,8 @@ static struct ib_ucontext *mthca_alloc_ucontext(struct ib_device *ibdev,
return ERR_PTR(-EFAULT);
}

context->reg_mr_warned = 0;

return &context->ibucontext;
}

Expand Down Expand Up @@ -1013,7 +1017,15 @@ static struct ib_mr *mthca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
int err = 0;
int write_mtt_size;

if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd))
if (udata->inlen - sizeof (struct ib_uverbs_cmd_hdr) < sizeof ucmd) {
if (!to_mucontext(pd->uobject->context)->reg_mr_warned) {
mthca_warn(dev, "Process '%s' did not pass in MR attrs.\n",
current->comm);
mthca_warn(dev, " Update libmthca to fix this.\n");
}
++to_mucontext(pd->uobject->context)->reg_mr_warned;
ucmd.mr_attrs = 0;
} else if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd))
return ERR_PTR(-EFAULT);

mr = kmalloc(sizeof *mr, GFP_KERNEL);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/infiniband/hw/mthca/mthca_provider.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ struct mthca_ucontext {
struct ib_ucontext ibucontext;
struct mthca_uar uar;
struct mthca_user_db_table *db_tab;
int reg_mr_warned;
};

struct mthca_mtt;
Expand Down
10 changes: 6 additions & 4 deletions trunk/drivers/infiniband/hw/mthca/mthca_user.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
* Increment this value if any changes that break userspace ABI
* compatibility are made.
*/
#define MTHCA_UVERBS_ABI_VERSION 2
#define MTHCA_UVERBS_ABI_VERSION 1

/*
* Make sure that all structs defined in this file remain laid out so
Expand All @@ -62,10 +62,12 @@ struct mthca_alloc_pd_resp {
};

struct mthca_reg_mr {
/*
* Mark the memory region with a DMA attribute that causes
* in-flight DMA to be flushed when the region is written to:
*/
#define MTHCA_MR_DMASYNC 0x1
__u32 mr_attrs;
#define MTHCA_MR_DMASYNC 0x1
/* mark the memory region with a DMA attribute that causes
* in-flight DMA to be flushed when the region is written to */
__u32 reserved;
};

Expand Down

0 comments on commit 18c18a2

Please sign in to comment.