From 4d88b7963af8482e7e22295c80036dd0ae489a4a Mon Sep 17 00:00:00 2001 From: David Greenman Date: Wed, 18 Mar 1998 20:52:28 +0000 Subject: [PATCH] Protect against count of chars received being 0, which causes a panic otherwise. Can apparantly happen with some firmware revs. Submitted by: Kouichi Hirabayashi --- sys/dev/cy/cy.c | 4 +++- sys/dev/cy/cy_isa.c | 4 +++- sys/i386/isa/cy.c | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c index 8661f3e44fe..5dd4762e2a6 100644 --- a/sys/dev/cy/cy.c +++ b/sys/dev/cy/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.60 1998/01/24 02:54:17 eivind Exp $ + * $Id: cy.c,v 1.61 1998/02/13 12:45:47 phk Exp $ */ #include "opt_compat.h" @@ -1122,6 +1122,8 @@ siointr(unit) int ifree; count = cd_inb(iobase, CD1400_RDCR, cy_align); + if (!count) + goto cont; com->bytes_in += count; ioptr = com->iptr; ifree = com->ibufend - ioptr; diff --git a/sys/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c index 8661f3e44fe..5dd4762e2a6 100644 --- a/sys/dev/cy/cy_isa.c +++ b/sys/dev/cy/cy_isa.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.60 1998/01/24 02:54:17 eivind Exp $ + * $Id: cy.c,v 1.61 1998/02/13 12:45:47 phk Exp $ */ #include "opt_compat.h" @@ -1122,6 +1122,8 @@ siointr(unit) int ifree; count = cd_inb(iobase, CD1400_RDCR, cy_align); + if (!count) + goto cont; com->bytes_in += count; ioptr = com->iptr; ifree = com->ibufend - ioptr; diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c index 8661f3e44fe..5dd4762e2a6 100644 --- a/sys/i386/isa/cy.c +++ b/sys/i386/isa/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.60 1998/01/24 02:54:17 eivind Exp $ + * $Id: cy.c,v 1.61 1998/02/13 12:45:47 phk Exp $ */ #include "opt_compat.h" @@ -1122,6 +1122,8 @@ siointr(unit) int ifree; count = cd_inb(iobase, CD1400_RDCR, cy_align); + if (!count) + goto cont; com->bytes_in += count; ioptr = com->iptr; ifree = com->ibufend - ioptr;