enic: workaround A0 erratum
[linux-2.6.git] / drivers / net / enic / vnic_rq.h
index fd0ef66..f7b5730 100644 (file)
@@ -143,6 +143,11 @@ static inline void vnic_rq_post(struct vnic_rq *rq,
        }
 }
 
+static inline int vnic_rq_posting_soon(struct vnic_rq *rq)
+{
+       return ((rq->to_use->index & VNIC_RQ_RETURN_RATE) == 0);
+}
+
 static inline void vnic_rq_return_descs(struct vnic_rq *rq, unsigned int count)
 {
        rq->ring.desc_avail += count;
@@ -186,7 +191,7 @@ static inline int vnic_rq_fill(struct vnic_rq *rq,
 {
        int err;
 
-       while (vnic_rq_desc_avail(rq) > 1) {
+       while (vnic_rq_desc_avail(rq) > 0) {
 
                err = (*buf_fill)(rq);
                if (err)