diff options
author | Ralph Campbell <ralph.campbell@qlogic.com> | 2007-12-20 05:43:23 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-01-25 17:15:35 -0500 |
commit | c59a80aca0bfc491d90534ed5606d5493eca24a3 (patch) | |
tree | 181af3a515feb82e1c77b1d8bc5ec460485d44df /drivers/infiniband/hw/ipath/ipath_file_ops.c | |
parent | d65708f3a766116662ff9bac81088d52a49901f4 (diff) |
IB/ipath: kreceive uses portdata rather than devdata
kreceive is now portdata * instead of devdata * and other kreceive
related cleanups....
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_file_ops.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_file_ops.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_file_ops.c b/drivers/infiniband/hw/ipath/ipath_file_ops.c index e7fbb31a48a0..4277014d6f8e 100644 --- a/drivers/infiniband/hw/ipath/ipath_file_ops.c +++ b/drivers/infiniband/hw/ipath/ipath_file_ops.c | |||
@@ -742,7 +742,8 @@ static int ipath_manage_rcvq(struct ipath_portdata *pd, unsigned subport, | |||
742 | * updated and correct itself, even in the face of software | 742 | * updated and correct itself, even in the face of software |
743 | * bugs. | 743 | * bugs. |
744 | */ | 744 | */ |
745 | *(volatile u64 *)pd->port_rcvhdrtail_kvaddr = 0; | 745 | if (pd->port_rcvhdrtail_kvaddr) |
746 | ipath_clear_rcvhdrtail(pd); | ||
746 | set_bit(INFINIPATH_R_PORTENABLE_SHIFT + pd->port_port, | 747 | set_bit(INFINIPATH_R_PORTENABLE_SHIFT + pd->port_port, |
747 | &dd->ipath_rcvctrl); | 748 | &dd->ipath_rcvctrl); |
748 | } else | 749 | } else |
@@ -1391,7 +1392,10 @@ static unsigned int ipath_poll_next(struct ipath_portdata *pd, | |||
1391 | pollflag = ipath_poll_hdrqfull(pd); | 1392 | pollflag = ipath_poll_hdrqfull(pd); |
1392 | 1393 | ||
1393 | head = ipath_read_ureg32(dd, ur_rcvhdrhead, pd->port_port); | 1394 | head = ipath_read_ureg32(dd, ur_rcvhdrhead, pd->port_port); |
1394 | tail = *(volatile u64 *)pd->port_rcvhdrtail_kvaddr; | 1395 | if (pd->port_rcvhdrtail_kvaddr) |
1396 | tail = ipath_get_rcvhdrtail(pd); | ||
1397 | else | ||
1398 | tail = ipath_read_ureg32(dd, ur_rcvhdrtail, pd->port_port); | ||
1395 | 1399 | ||
1396 | if (head != tail) | 1400 | if (head != tail) |
1397 | pollflag |= POLLIN | POLLRDNORM; | 1401 | pollflag |= POLLIN | POLLRDNORM; |
@@ -1932,7 +1936,8 @@ static int ipath_do_user_init(struct file *fp, | |||
1932 | * We explictly set the in-memory copy to 0 beforehand, so we don't | 1936 | * We explictly set the in-memory copy to 0 beforehand, so we don't |
1933 | * have to wait to be sure the DMA update has happened. | 1937 | * have to wait to be sure the DMA update has happened. |
1934 | */ | 1938 | */ |
1935 | *(volatile u64 *)pd->port_rcvhdrtail_kvaddr = 0ULL; | 1939 | if (pd->port_rcvhdrtail_kvaddr) |
1940 | ipath_clear_rcvhdrtail(pd); | ||
1936 | set_bit(INFINIPATH_R_PORTENABLE_SHIFT + pd->port_port, | 1941 | set_bit(INFINIPATH_R_PORTENABLE_SHIFT + pd->port_port, |
1937 | &dd->ipath_rcvctrl); | 1942 | &dd->ipath_rcvctrl); |
1938 | ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, | 1943 | ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, |