Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Apr 1999 21:02:06 +0900
From:      KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp>
To:        current@FreeBSD.org
Subject:   singed short to unsigned long conversion problem in isa.c
Message-ID:  <19990424210206R.kato@gneiss.eps.nagoya-u.ac.jp>

next in thread | raw e-mail | index | archive | help
The type of the member id_port in isa_device structure is signed short 
and a value is converted int unsigned long to allocate I/O port
resource via bus_alloc_resources.  If an I/O port >= 0x8000,
conversion from signed short to unsigned long causes unexpected result 
and nexus_alloc_resouce cannot allocate resouce.

Fix is:

---------- BEGIN ----------
*** isa.c.orig	Sat Apr 24 20:55:32 1999
--- isa.c	Sat Apr 24 20:55:24 1999
***************
*** 75,81 ****
   * The structure used to attach devices to the isa bus.
   */
  struct isa_device {
! 	short		id_port[ISA_NPORT_IVARS];
  	u_short		id_portsize[ISA_NPORT_IVARS];
  	vm_offset_t	id_maddr[ISA_NMEM_IVARS];
  	vm_size_t	id_msize[ISA_NMEM_IVARS];
--- 75,81 ----
   * The structure used to attach devices to the isa bus.
   */
  struct isa_device {
! 	u_short		id_port[ISA_NPORT_IVARS];
  	u_short		id_portsize[ISA_NPORT_IVARS];
  	vm_offset_t	id_maddr[ISA_NMEM_IVARS];
  	vm_size_t	id_msize[ISA_NMEM_IVARS];
---------- END ----------

If this should not be in sys/i386/isa, I will copy this file into
sys/pc98/pc98.  Comment please.

-----------------------------------------------+--------------------------+
KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp>  |        FreeBSD           |
Dept. Earth Planet. Sci, Nagoya Univ.          |    The power to serve!   |
Nagoya, 464-8602, Japan                        |  http://www.FreeBSD.org/ |
++++ FreeBSD(98) 3.1:   Rev. 01 available!     |http://www.jp.FreeBSD.org/|
++++ FreeBSD(98) 2.2.8: Rev. 01 available!     +==========================+


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990424210206R.kato>