Subject: Re: CVS commit: src/sys/dev/ic
To: None <briggs@netbsd.org>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: source-changes
Date: 04/29/2004 04:54:25
In article <20040428152545.199D02DA1D@cvs.netbsd.org>
briggs@netbsd.org wrote:
> Module Name: src
> Committed By: briggs
> Date: Wed Apr 28 15:25:45 UTC 2004
>
> Modified Files:
> src/sys/dev/ic: i82557.c
>
> Log Message:
> When we are recovering from a resource exhaustion on receive, make sure
> that the RU is stopped before issuing an RU_START.
> Fix suggested by Takahiro Kambe in PR kern/10622.
Isn't it better to put RU suspend state in the last RFA
rather than ABORT command on RNR?
--- i82557var.h.orig Mon Jul 24 21:15:35 2000
+++ i82557var.h Mon Jul 24 21:16:52 2000
@@ -283,7 +283,8 @@
__rfa->size = htole16(FXP_RXBUFSIZE((m))); \
/* BIG_ENDIAN: no need to swap to store 0 */ \
__rfa->rfa_status = 0; \
- __rfa->rfa_control = htole16(FXP_RFA_CONTROL_EL); \
+ __rfa->rfa_control = \
+ htole16(FXP_RFA_CONTROL_EL|FXP_RFA_CONTROL_S); \
/* BIG_ENDIAN: no need to swap to store 0 */ \
__rfa->actual_size = 0; \
\
@@ -306,7 +307,8 @@
BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE); \
memcpy((void *)&__p_rfa->link_addr, &__v, \
sizeof(__v)); \
- __p_rfa->rfa_control &= htole16(~FXP_RFA_CONTROL_EL); \
+ __p_rfa->rfa_control &= \
+ htole16(~(FXP_RFA_CONTROL_EL|FXP_RFA_CONTROL_S)); \
FXP_RFASYNC((sc), __p_m, \
BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); \
} \
---