diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_user_sdma.c')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_user_sdma.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/qib/qib_user_sdma.c b/drivers/infiniband/hw/qib/qib_user_sdma.c index d2806cae234c..3e0677c51276 100644 --- a/drivers/infiniband/hw/qib/qib_user_sdma.c +++ b/drivers/infiniband/hw/qib/qib_user_sdma.c | |||
@@ -50,7 +50,7 @@ | |||
50 | /* expected size of headers (for dma_pool) */ | 50 | /* expected size of headers (for dma_pool) */ |
51 | #define QIB_USER_SDMA_EXP_HEADER_LENGTH 64 | 51 | #define QIB_USER_SDMA_EXP_HEADER_LENGTH 64 |
52 | /* attempt to drain the queue for 5secs */ | 52 | /* attempt to drain the queue for 5secs */ |
53 | #define QIB_USER_SDMA_DRAIN_TIMEOUT 500 | 53 | #define QIB_USER_SDMA_DRAIN_TIMEOUT 250 |
54 | 54 | ||
55 | /* | 55 | /* |
56 | * track how many times a process open this driver. | 56 | * track how many times a process open this driver. |
@@ -226,6 +226,7 @@ qib_user_sdma_queue_create(struct device *dev, int unit, int ctxt, int sctxt) | |||
226 | sdma_rb_node->refcount++; | 226 | sdma_rb_node->refcount++; |
227 | } else { | 227 | } else { |
228 | int ret; | 228 | int ret; |
229 | |||
229 | sdma_rb_node = kmalloc(sizeof( | 230 | sdma_rb_node = kmalloc(sizeof( |
230 | struct qib_user_sdma_rb_node), GFP_KERNEL); | 231 | struct qib_user_sdma_rb_node), GFP_KERNEL); |
231 | if (!sdma_rb_node) | 232 | if (!sdma_rb_node) |
@@ -936,6 +937,7 @@ static int qib_user_sdma_queue_pkts(const struct qib_devdata *dd, | |||
936 | 937 | ||
937 | if (tiddma) { | 938 | if (tiddma) { |
938 | char *tidsm = (char *)pkt + pktsize; | 939 | char *tidsm = (char *)pkt + pktsize; |
940 | |||
939 | cfur = copy_from_user(tidsm, | 941 | cfur = copy_from_user(tidsm, |
940 | iov[idx].iov_base, tidsmsize); | 942 | iov[idx].iov_base, tidsmsize); |
941 | if (cfur) { | 943 | if (cfur) { |
@@ -1142,7 +1144,7 @@ void qib_user_sdma_queue_drain(struct qib_pportdata *ppd, | |||
1142 | qib_user_sdma_hwqueue_clean(ppd); | 1144 | qib_user_sdma_hwqueue_clean(ppd); |
1143 | qib_user_sdma_queue_clean(ppd, pq); | 1145 | qib_user_sdma_queue_clean(ppd, pq); |
1144 | mutex_unlock(&pq->lock); | 1146 | mutex_unlock(&pq->lock); |
1145 | msleep(10); | 1147 | msleep(20); |
1146 | } | 1148 | } |
1147 | 1149 | ||
1148 | if (pq->num_pending || pq->num_sending) { | 1150 | if (pq->num_pending || pq->num_sending) { |
@@ -1316,8 +1318,6 @@ retry: | |||
1316 | 1318 | ||
1317 | if (nfree && !list_empty(pktlist)) | 1319 | if (nfree && !list_empty(pktlist)) |
1318 | goto retry; | 1320 | goto retry; |
1319 | |||
1320 | return; | ||
1321 | } | 1321 | } |
1322 | 1322 | ||
1323 | /* pq->lock must be held, get packets on the wire... */ | 1323 | /* pq->lock must be held, get packets on the wire... */ |