Commit 957670a5 authored by Bryan O'Sullivan's avatar Bryan O'Sullivan Committed by Roland Dreier

IB/ipath: Call mtrr_del with correct arguments

We were passing 0 for base and length, which worked on older kernels,
but it doesn't seem to any longer.
Signed-off-by: default avatarBryan O'Sullivan <bryan.osullivan@qlogic.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 8d0208cb
...@@ -336,6 +336,8 @@ struct ipath_devdata { ...@@ -336,6 +336,8 @@ struct ipath_devdata {
u8 ipath_ht_slave_off; u8 ipath_ht_slave_off;
/* for write combining settings */ /* for write combining settings */
unsigned long ipath_wc_cookie; unsigned long ipath_wc_cookie;
unsigned long ipath_wc_base;
unsigned long ipath_wc_len;
/* ref count for each pkey */ /* ref count for each pkey */
atomic_t ipath_pkeyrefs[4]; atomic_t ipath_pkeyrefs[4];
/* shadow copy of all exptids physaddr; used only by funcsim */ /* shadow copy of all exptids physaddr; used only by funcsim */
......
...@@ -123,6 +123,8 @@ int ipath_enable_wc(struct ipath_devdata *dd) ...@@ -123,6 +123,8 @@ int ipath_enable_wc(struct ipath_devdata *dd)
ipath_cdbg(VERBOSE, "Set mtrr for chip to WC, " ipath_cdbg(VERBOSE, "Set mtrr for chip to WC, "
"cookie is %d\n", cookie); "cookie is %d\n", cookie);
dd->ipath_wc_cookie = cookie; dd->ipath_wc_cookie = cookie;
dd->ipath_wc_base = (unsigned long) pioaddr;
dd->ipath_wc_len = (unsigned long) piolen;
} }
} }
...@@ -136,9 +138,16 @@ int ipath_enable_wc(struct ipath_devdata *dd) ...@@ -136,9 +138,16 @@ int ipath_enable_wc(struct ipath_devdata *dd)
void ipath_disable_wc(struct ipath_devdata *dd) void ipath_disable_wc(struct ipath_devdata *dd)
{ {
if (dd->ipath_wc_cookie) { if (dd->ipath_wc_cookie) {
int r;
ipath_cdbg(VERBOSE, "undoing WCCOMB on pio buffers\n"); ipath_cdbg(VERBOSE, "undoing WCCOMB on pio buffers\n");
mtrr_del(dd->ipath_wc_cookie, 0, 0); r = mtrr_del(dd->ipath_wc_cookie, dd->ipath_wc_base,
dd->ipath_wc_cookie = 0; dd->ipath_wc_len);
if (r < 0)
dev_info(&dd->pcidev->dev,
"mtrr_del(%lx, %lx, %lx) failed: %d\n",
dd->ipath_wc_cookie, dd->ipath_wc_base,
dd->ipath_wc_len, r);
dd->ipath_wc_cookie = 0; /* even on failure */
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment