Date: Tue, 8 Apr 2003 12:02:35 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 28543 for review Message-ID: <200304081902.h38J2ZrZ073579@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=28543 Change 28543 by jhb@jhb_laptop on 2003/04/08 12:02:18 IFC @28536. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#13 integrate .. //depot/projects/smpng/sys/boot/common/bootstrap.h#6 integrate .. //depot/projects/smpng/sys/cam/cam_periph.c#9 integrate .. //depot/projects/smpng/sys/conf/files#70 integrate .. //depot/projects/smpng/sys/conf/options.i386#25 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#35 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#15 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#7 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#28 integrate .. //depot/projects/smpng/sys/dev/ata/ata-dma.c#29 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#29 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#18 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.h#12 integrate .. //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#13 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed.c#12 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#27 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxpreg.h#6 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard.c#19 integrate .. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#11 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#25 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#12 integrate .. //depot/projects/smpng/sys/dev/snc/dp83932.c#5 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30.h#1 branch .. //depot/projects/smpng/sys/dev/stg/tmc18c30_isa.c#5 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30_pccard.c#8 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30_pci.c#1 branch .. //depot/projects/smpng/sys/dev/stg/tmc18c30_subr.c#1 branch .. //depot/projects/smpng/sys/dev/usb/if_kue.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#27 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs.h#28 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#28 integrate .. //depot/projects/smpng/sys/dev/usb/uvisor.c#4 integrate .. //depot/projects/smpng/sys/dev/vx/if_vx.c#9 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#13 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#54 integrate .. //depot/projects/smpng/sys/i386/conf/PAE#1 branch .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#14 integrate .. //depot/projects/smpng/sys/i386/i386/mp_clock.c#5 integrate .. //depot/projects/smpng/sys/i386/i386/swtch.s#17 integrate .. //depot/projects/smpng/sys/i386/i386/tsc.c#3 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#15 integrate .. //depot/projects/smpng/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/smpng/sys/i386/isa/mca_machdep.c#4 delete .. //depot/projects/smpng/sys/i386/isa/mca_machdep.h#2 delete .. //depot/projects/smpng/sys/i386/isa/vesa.c#7 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC#30 integrate .. //depot/projects/smpng/sys/ia64/conf/SKI#12 integrate .. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#13 integrate .. //depot/projects/smpng/sys/ia64/ia64/exception.s#23 integrate .. //depot/projects/smpng/sys/ia64/ia64/locore.s#16 integrate .. //depot/projects/smpng/sys/ia64/ia64/sscdisk.c#13 integrate .. //depot/projects/smpng/sys/kern/kern_mac.c#20 integrate .. //depot/projects/smpng/sys/kern/kern_physio.c#8 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#3 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#23 integrate .. //depot/projects/smpng/sys/kern/link_elf.c#19 integrate .. //depot/projects/smpng/sys/kern/uipc_cow.c#10 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#16 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#37 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#41 integrate .. //depot/projects/smpng/sys/modules/stg/Makefile#2 integrate .. //depot/projects/smpng/sys/net/if_disc.c#7 integrate .. //depot/projects/smpng/sys/net/if_faith.c#14 integrate .. //depot/projects/smpng/sys/net/if_loop.c#16 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#5 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#14 integrate .. //depot/projects/smpng/sys/netgraph/ng_iface.c#8 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#23 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#32 integrate .. //depot/projects/smpng/sys/netinet/ip_mroute.c#22 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#35 integrate .. //depot/projects/smpng/sys/netipsec/keysock.c#4 integrate .. //depot/projects/smpng/sys/netkey/keysock.c#14 integrate .. //depot/projects/smpng/sys/netnatm/natm.c#10 integrate .. //depot/projects/smpng/sys/pci/agp_if.m#2 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#24 integrate .. //depot/projects/smpng/sys/pci/if_xl.c#22 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#8 integrate .. //depot/projects/smpng/sys/sparc64/include/cache.h#7 integrate .. //depot/projects/smpng/sys/sparc64/include/cpufunc.h#17 integrate .. //depot/projects/smpng/sys/sparc64/include/iommuvar.h#8 integrate .. //depot/projects/smpng/sys/sparc64/include/kerneldump.h#2 integrate .. //depot/projects/smpng/sys/sparc64/include/md_var.h#11 integrate .. //depot/projects/smpng/sys/sparc64/include/ofw_mem.h#2 integrate .. //depot/projects/smpng/sys/sparc64/include/pmap.h#22 integrate .. //depot/projects/smpng/sys/sparc64/include/smp.h#13 integrate .. //depot/projects/smpng/sys/sparc64/include/tsb.h#10 integrate .. //depot/projects/smpng/sys/sparc64/include/watch.h#2 integrate .. //depot/projects/smpng/sys/sparc64/pci/psycho.c#18 integrate .. //depot/projects/smpng/sys/sparc64/pci/psychovar.h#7 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/bus_machdep.c#14 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/cheetah.c#2 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/db_hwwatch.c#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/dump_machdep.c#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#13 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#46 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/mem.c#7 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#17 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#36 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/spitfire.c#2 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/tsb.c#19 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#30 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#20 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#2 integrate .. //depot/projects/smpng/sys/vm/vm_pager.c#11 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#13 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.33 2003/03/20 19:45:26 mux Exp $ + * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.34 2003/04/08 14:25:44 des Exp $ */ #include <sys/param.h> @@ -667,8 +667,7 @@ KASSERT(dmat->lowaddr >= ptoa(Maxmem) || map != NULL, ("bus_dmamap_load_mbuf: No support for bounce pages!")); - KASSERT(m0->m_flags & M_PKTHDR, - ("bus_dmamap_load_mbuf: no packet header")); + M_ASSERTPKTHDR(m0); nsegs = 0; error = 0; ==== //depot/projects/smpng/sys/boot/common/bootstrap.h#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.36 2002/03/10 22:33:04 sobomax Exp $ + * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.37 2003/04/06 06:28:08 peter Exp $ */ #include <sys/types.h> @@ -231,9 +231,6 @@ /* MI module loaders */ -int aout_loadfile(char *filename, vm_offset_t dest, struct preloaded_file **result); -vm_offset_t aout_findsym(char *name, struct preloaded_file *fp); - int elf_loadfile(char *filename, vm_offset_t dest, struct preloaded_file **result); /* ==== //depot/projects/smpng/sys/cam/cam_periph.c#9 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_periph.c,v 1.47 2003/03/15 21:59:05 phk Exp $ + * $FreeBSD: src/sys/cam/cam_periph.c,v 1.48 2003/04/06 22:21:03 alc Exp $ */ #include <sys/param.h> @@ -605,29 +605,10 @@ if (dirs[i] & CAM_DIR_OUT) { flags[i] = BIO_WRITE; - if (!useracc(*data_ptrs[i], lengths[i], - VM_PROT_READ)) { - printf("cam_periph_mapmem: error, " - "address %p, length %lu isn't " - "user accessible for READ\n", - (void *)*data_ptrs[i], - (u_long)lengths[i]); - return(EACCES); - } } if (dirs[i] & CAM_DIR_IN) { flags[i] = BIO_READ; - if (!useracc(*data_ptrs[i], lengths[i], - VM_PROT_WRITE)) { - printf("cam_periph_mapmem: error, " - "address %p, length %lu isn't " - "user accessible for WRITE\n", - (void *)*data_ptrs[i], - (u_long)lengths[i]); - - return(EACCES); - } } } ==== //depot/projects/smpng/sys/conf/files#70 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.777 2003/04/04 18:53:04 phk Exp $ +# $FreeBSD: src/sys/conf/files,v 1.778 2003/04/07 10:13:25 mdodd Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -723,8 +723,10 @@ dev/sr/if_sr_pci.c optional sr pci dev/streams/streams.c optional streams dev/stg/tmc18c30.c optional stg +dev/stg/tmc18c30_subr.c optional stg dev/stg/tmc18c30_pccard.c optional stg card dev/stg/tmc18c30_pccard.c optional stg pccard +dev/stg/tmc18c30_pci.c optional stg pci dev/stg/tmc18c30_isa.c optional stg isa dev/sym/sym_hipd.c optional sym \ dependency "$S/dev/sym/sym_{conf,defs}.h" ==== //depot/projects/smpng/sys/conf/options.i386#25 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.i386,v 1.188 2003/04/02 23:53:28 peter Exp $ +# $FreeBSD: src/sys/conf/options.i386,v 1.189 2003/04/04 23:54:46 tegge Exp $ # Options specific to the i386 platform kernels MATH_EMULATE opt_math_emulate.h @@ -41,6 +41,7 @@ CLK_CALIBRATION_LOOP opt_clock.h CLK_USE_I8254_CALIBRATION opt_clock.h CLK_USE_TSC_CALIBRATION opt_clock.h +SMP_TSC opt_clock.h TIMER_FREQ opt_clock.h NO_F00F_HACK opt_cpu.h ==== //depot/projects/smpng/sys/dev/ata/ata-all.c#35 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.176 2003/04/01 15:06:23 phk Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.177 2003/04/07 14:12:12 sos Exp $ */ #include "opt_ata.h" @@ -447,7 +447,7 @@ /* apparently some devices needs this repeated */ do { if (ata_command(atadev, command, 0, 0, 0, - dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) { /* XXX */ + dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) { ata_prtdev(atadev, "%s identify failed\n", command == ATA_C_ATAPI_IDENTIFY ? "ATAPI" : "ATA"); free(ata_parm, M_ATA); ==== //depot/projects/smpng/sys/dev/ata/ata-all.h#15 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.60 2003/03/29 13:37:09 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.61 2003/04/07 14:12:12 sos Exp $ */ /* ATA register defines */ @@ -145,6 +145,7 @@ #define ATA_BMCMD_START_STOP 0x01 #define ATA_BMCMD_WRITE_READ 0x08 +#define ATA_BMCTL_PORT 0x09 #define ATA_BMDEVSPEC_0 0x0a #define ATA_BMSTAT_PORT 0x0b #define ATA_BMSTAT_ACTIVE 0x01 @@ -158,6 +159,8 @@ #define ATA_BMDEVSPEC_1 0x0c #define ATA_BMDTP_PORT 0x0d +#define ATA_IDX_ADDR 0x0e +#define ATA_IDX_DATA 0x0f #define ATA_MAX_RES 0x10 /* structure for holding DMA address data */ @@ -207,7 +210,6 @@ int (*setup)(struct ata_device *, caddr_t, int32_t); int (*start)(struct ata_channel *, caddr_t, int32_t, int); int (*stop)(struct ata_channel *); - int (*status)(struct ata_channel *); }; /* structure holding resources for an ATA channel */ @@ -365,31 +367,102 @@ bus_space_write_multi_stream_4(rman_get_bustag((res)), \ rman_get_bushandle((res)), \ (offset), (addr), (count)) + +#define ATA_IDX_SET(ch, idx) \ + ATA_OUTB(ch->r_io[ATA_IDX_ADDR].res, ch->r_io[ATA_IDX_ADDR].offset, \ + ch->r_io[idx].offset) + #define ATA_IDX_INB(ch, idx) \ - ATA_INB(ch->r_io[idx].res, ch->r_io[idx].offset) + ((ch->r_io[idx].res) \ + ? ATA_INB(ch->r_io[idx].res, ch->r_io[idx].offset) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INB(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset))) + #define ATA_IDX_INW(ch, idx) \ - ATA_INW(ch->r_io[idx].res, ch->r_io[idx].offset) + ((ch->r_io[idx].res) \ + ? ATA_INW(ch->r_io[idx].res, ch->r_io[idx].offset) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INW(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset))) + #define ATA_IDX_INL(ch, idx) \ - ATA_INL(ch->r_io[idx].res, ch->r_io[idx].offset) + ((ch->r_io[idx].res) \ + ? ATA_INL(ch->r_io[idx].res, ch->r_io[idx].offset) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INL(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset))) + #define ATA_IDX_INSW(ch, idx, addr, count) \ - ATA_INSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_INSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INSW(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_INSW_STRM(ch, idx, addr, count) \ - ATA_INSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_INSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INSW_STRM(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_INSL(ch, idx, addr, count) \ - ATA_INSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_INSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INSL(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_INSL_STRM(ch, idx, addr, count) \ - ATA_INSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_INSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_INSL_STRM(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_OUTB(ch, idx, value) \ - ATA_OUTB(ch->r_io[idx].res, ch->r_io[idx].offset, value) + ((ch->r_io[idx].res) \ + ? ATA_OUTB(ch->r_io[idx].res, ch->r_io[idx].offset, value) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTB(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, value))) + #define ATA_IDX_OUTW(ch, idx, value) \ - ATA_OUTW(ch->r_io[idx].res, ch->r_io[idx].offset, value) + ((ch->r_io[idx].res) \ + ? ATA_OUTW(ch->r_io[idx].res, ch->r_io[idx].offset, value) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTW(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, value))) + #define ATA_IDX_OUTL(ch, idx, value) \ - ATA_OUTL(ch->r_io[idx].res, ch->r_io[idx].offset, value) + ((ch->r_io[idx].res) \ + ? ATA_OUTL(ch->r_io[idx].res, ch->r_io[idx].offset, value) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTL(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, value))) + #define ATA_IDX_OUTSW(ch, idx, addr, count) \ - ATA_OUTSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_OUTSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTSW(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_OUTSW_STRM(ch, idx, addr, count) \ - ATA_OUTSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_OUTSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTSW_STRM(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_OUTSL(ch, idx, addr, count) \ - ATA_OUTSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_OUTSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTSL(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) + #define ATA_IDX_OUTSL_STRM(ch, idx, addr, count) \ - ATA_OUTSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) + ((ch->r_io[idx].res) \ + ? ATA_OUTSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \ + : (ATA_IDX_SET(ch, idx), \ + ATA_OUTSL_STRM(ch->r_io[ATA_IDX_DATA].res, \ + ch->r_io[ATA_IDX_DATA].offset, addr, count))) ==== //depot/projects/smpng/sys/dev/ata/ata-chipset.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.16 2003/03/29 13:37:09 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.17 2003/04/07 14:12:12 sos Exp $ */ #include "opt_ata.h" #include <sys/param.h> @@ -135,7 +135,8 @@ if (!(ch = ctlr->interrupt[unit].argument)) continue; if (ch->dma->flags & ATA_DMA_ACTIVE) { - if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT)) + if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & + ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT)) continue; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT); DELAY(1); @@ -220,7 +221,8 @@ continue; ch = ctlr->interrupt[unit].argument; if (ch->dma->flags & ATA_DMA_ACTIVE) { - if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT)) + if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & + ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT)) continue; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT); DELAY(1); @@ -480,7 +482,7 @@ if (ata_default_interrupt(dev)) return ENXIO; - if (ctlr->r_bmio) + if (ctlr->r_io1) ctlr->setmode = ata_cyrix_setmode; else ctlr->setmode = ata_generic_setmode; @@ -664,7 +666,7 @@ for (unit = 0; unit < 2; unit++) { if (!(ch = ctlr->interrupt[unit].argument)) continue; - if (((dmastat = ch->dma->status(ch)) & + if (((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK)) & (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT))!=ATA_BMSTAT_INTERRUPT) continue; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT); @@ -1014,7 +1016,6 @@ } break; } - ctlr->setmode = ata_promise_setmode; return 0; } @@ -1023,7 +1024,7 @@ ata_promise_old_intr(void *data) { struct ata_pci_controller *ctlr = data; - struct ata_channel *ch = ctlr->interrupt[0].argument; + struct ata_channel *ch; u_int8_t dmastat; int unit; @@ -1031,9 +1032,10 @@ for (unit = 0; unit < 2; unit++) { if (!(ch = ctlr->interrupt[unit].argument)) continue; - if (ATA_INL(ctlr->r_bmio, 0x1c) & (ch->unit ? 0x00004000 : 0x00000400)){ + if (ATA_INL(ctlr->r_io1, 0x1c) & (ch->unit ? 0x00004000 : 0x00000400)) { if (ch->dma->flags & ATA_DMA_ACTIVE) { - if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT)) + if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & + ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT)) continue; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT); DELAY(1); @@ -1058,9 +1060,10 @@ ATA_IDX_OUTB(ch, ATA_BMDEVSPEC_0, 0x0b); if (ATA_IDX_INB(ch, ATA_BMDEVSPEC_1) & 0x20) { if (ch->dma->flags & ATA_DMA_ACTIVE) { - if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT)) + if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & + ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT)) continue; - ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT); + ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT); DELAY(1); } ctlr->interrupt[unit].function(ch); @@ -1150,7 +1153,7 @@ static int ata_promise_old_dmastart(struct ata_channel *ch, - caddr_t data, int32_t count, int dir) + caddr_t data, int32_t count, int dir) { struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(ch->dev)); @@ -1158,14 +1161,19 @@ if ((error = ata_dmastart(ch, data, count, dir))) return error; - if (ch->flags & ATA_48BIT_ACTIVE) { - ATA_OUTB(ctlr->r_bmio, 0x11, - ATA_INB(ctlr->r_bmio, 0x11) | (ch->unit ? 0x08 : 0x02)); - ATA_OUTL(ctlr->r_bmio, 0x20, + ATA_OUTB(ctlr->r_io1, 0x11, + ATA_INB(ctlr->r_io1, 0x11) | (ch->unit ? 0x08 : 0x02)); + ATA_OUTL(ctlr->r_io1, 0x20, (dir ? 0x05000000 : 0x06000000) | (count >> 1)); } - return 0; + ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab); + ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, dir ? ATA_BMCMD_WRITE_READ : 0); + ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) | + (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR))); + ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, + ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP); + return error; } static int @@ -1173,13 +1181,19 @@ { struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(ch->dev)); + int error; if (ch->flags & ATA_48BIT_ACTIVE) { - ATA_OUTB(ctlr->r_bmio, 0x11, - ATA_INB(ctlr->r_bmio, 0x11) & ~(ch->unit ? 0x08 : 0x02)); - ATA_OUTL(ctlr->r_bmio, 0x20, 0); + ATA_OUTB(ctlr->r_io1, 0x11, + ATA_INB(ctlr->r_io1, 0x11) & ~(ch->unit ? 0x08 : 0x02)); + ATA_OUTL(ctlr->r_io1, 0x20, 0); } - return ata_dmastop(ch); + error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT); + ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, + ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); + ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); + ata_dmastop(ch); + return error; } /* @@ -1351,7 +1365,8 @@ pci_write_config(device_get_parent(ch->dev), 0x71, (ch->unit ? 0x08 : 0x04), 1); if (ch->dma->flags & ATA_DMA_ACTIVE) { - if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT)) + if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & + ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT)) continue; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT); DELAY(1); ==== //depot/projects/smpng/sys/dev/ata/ata-disk.c#28 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.150 2003/04/01 15:06:23 phk Exp $ + * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.151 2003/04/07 14:14:29 sos Exp $ */ #include "opt_ata.h" @@ -203,14 +203,10 @@ ata_enclosure_print(atadev); - /* if this disk belongs to an ATA RAID dont print the probe */ - if (ata_raiddisk_attach(adp)) - adp->flags |= AD_F_RAID_SUBDISK; - else { - if (atadev->driver) { + /* only print probe banner if we are not part of a RAID array */ + if (!ata_raiddisk_attach(adp)) + if (atadev->driver) ad_print(adp); - } - } } void ==== //depot/projects/smpng/sys/dev/ata/ata-dma.c#29 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.114 2003/03/29 13:37:09 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.115 2003/04/07 14:12:12 sos Exp $ */ #include <sys/param.h> @@ -47,7 +47,6 @@ static void ata_dmafree(struct ata_channel *); static void ata_dmasetupd_cb(void *, bus_dma_segment_t *, int, int); static int ata_dmasetup(struct ata_device *, caddr_t, int32_t); -static int ata_dmastatus(struct ata_channel *); /* local vars */ static MALLOC_DEFINE(M_ATADMA, "ATA DMA", "ATA driver DMA"); @@ -73,7 +72,6 @@ ch->dma->setup = ata_dmasetup; ch->dma->start = ata_dmastart; ch->dma->stop = ata_dmastop; - ch->dma->status = ata_dmastatus; ch->dma->alignment = 2; return 0; } @@ -219,12 +217,6 @@ return 0; } -static int -ata_dmastatus(struct ata_channel *ch) -{ - return ch->dma->flags & ATA_DMA_ACTIVE; -} - int ata_dmastart(struct ata_channel *ch, caddr_t data, int32_t count, int dir) { ==== //depot/projects/smpng/sys/dev/ata/ata-pci.c#29 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.58 2003/03/29 13:37:09 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.59 2003/04/07 14:12:12 sos Exp $ */ #include "opt_ata.h" @@ -157,8 +157,8 @@ if ((cmd & PCIM_CMD_BUSMASTEREN) == PCIM_CMD_BUSMASTEREN) { int rid = ATA_BMADDR_RID; - if (!ctlr->r_mem) { - if (!(ctlr->r_bmio = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, + if (!ctlr->r_io2) { + if (!(ctlr->r_io1 = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE))) device_printf(dev, "Busmastering DMA not configured\n"); } @@ -182,7 +182,7 @@ int retval = 0; retval += bus_print_child_header(dev, child); - retval += printf(": at 0x%lx", rman_get_start(ch->r_io[0].res)); + retval += printf(": at 0x%lx", rman_get_start(ch->r_io[ATA_IDX_ADDR].res)); if (ATA_MASTERDEV(dev)) retval += printf(" irq %d", 14 + ch->unit); @@ -390,10 +390,11 @@ } ch->r_io[ATA_ALTSTAT].res = altio; ch->r_io[ATA_ALTSTAT].offset = 0; + ch->r_io[ATA_IDX_ADDR].res = io; - if (ctlr->r_bmio) { + if (ctlr->r_io1) { for (i = ATA_BMCMD_PORT; i <= ATA_BMDTP_PORT; i++) { - ch->r_io[i].res = ctlr->r_bmio; + ch->r_io[i].res = ctlr->r_io1; ch->r_io[i].offset = (i - ATA_BMCMD_PORT)+(ch->unit * ATA_BMIOSIZE); } @@ -420,9 +421,9 @@ ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, dir ? ATA_BMCMD_WRITE_READ : 0); ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) | - (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR))); + (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR))); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, - ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP); + ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP); return 0; } @@ -433,7 +434,7 @@ error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, - ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); + ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); ata_dmastop(ch); @@ -441,12 +442,6 @@ return (error & ATA_BMSTAT_MASK); } -static int -ata_pci_dmastatus(struct ata_channel *ch) -{ - return ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK; -} - static int ata_pci_dmainit(struct ata_channel *ch) { @@ -457,7 +452,6 @@ ch->dma->start = ata_pci_dmastart; ch->dma->stop = ata_pci_dmastop; - ch->dma->status = ata_pci_dmastatus; return 0; } ==== //depot/projects/smpng/sys/dev/ata/ata-pci.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.5 2003/03/29 13:37:09 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.6 2003/04/07 14:12:12 sos Exp $ */ /* structure holding chipset config info */ @@ -40,8 +40,8 @@ /* structure describing a PCI ATA controller */ struct ata_pci_controller { - struct resource *r_bmio; - struct resource *r_mem; + struct resource *r_io1; + struct resource *r_io2; struct resource *r_irq; void *handle; struct ata_chip_id *chip; ==== //depot/projects/smpng/sys/dev/ata/ata-raid.c#18 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.58 2003/04/01 15:06:23 phk Exp $ + * $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.61 2003/04/08 18:01:30 sos Exp $ */ #include "opt_ata.h" @@ -64,6 +64,7 @@ static int ar_promise_write_conf(struct ar_softc *); static int ar_rw(struct ad_softc *, u_int32_t, int, caddr_t, int); static struct ata_device *ar_locate_disk(int); +static void ar_print_conf(struct ar_softc *); /* internal vars */ static struct ar_softc **ar_table = NULL; @@ -87,7 +88,7 @@ "inserted into ar%d disk%d as spare\n", array, disk); rdp->disks[disk].flags |= (AR_DF_PRESENT | AR_DF_SPARE); - AD_SOFTC(rdp->disks[disk])->flags = AD_F_RAID_SUBDISK; + AD_SOFTC(rdp->disks[disk])->flags |= AD_F_RAID_SUBDISK; ar_config_changed(rdp, 1); return 1; } @@ -133,6 +134,7 @@ "deleted from ar%d disk%d\n", array, disk); rdp->disks[disk].flags &= ~(AR_DF_PRESENT | AR_DF_ONLINE); AD_SOFTC(rdp->disks[disk])->flags &= ~AD_F_RAID_SUBDISK; + rdp->disks[disk].device = NULL; ar_config_changed(rdp, 1); return 1; } @@ -154,6 +156,8 @@ for (array = 0; array < MAX_ARRAYS; array++) { if (!(rdp = ar_table[array]) || !rdp->flags) continue; + if (bootverbose) + ar_print_conf(rdp); ar_attach_raid(rdp, 0); } } @@ -327,7 +331,7 @@ } for (disk = 0; disk < total_disks; disk++) - AD_SOFTC(rdp->disks[disk])->flags = AD_F_RAID_SUBDISK; + AD_SOFTC(rdp->disks[disk])->flags |= AD_F_RAID_SUBDISK; rdp->lun = array; if (rdp->flags & AR_F_RAID0) { @@ -492,11 +496,17 @@ case AR_F_RAID0 | AR_F_RAID1: tmplba = blkno / rdp->interleave; chunk = blkno % rdp->interleave; - if (tmplba == rdp->total_sectors / rdp->interleave) { - lbs = (rdp->total_sectors-(tmplba*rdp->interleave))/rdp->width; - drv = chunk / lbs; - lba = ((tmplba/rdp->width)*rdp->interleave) + chunk%lbs; - chunk = min(count, lbs); + if (blkno >= (rdp->total_sectors / (rdp->interleave * rdp->width)) * + (rdp->interleave * rdp->width) ) { + lbs = (rdp->total_sectors - + ((rdp->total_sectors / (rdp->interleave * rdp->width)) * + (rdp->interleave * rdp->width))) / rdp->width; + drv = (blkno - + ((rdp->total_sectors / (rdp->interleave * rdp->width)) * + (rdp->interleave * rdp->width))) / lbs; + lba = ((tmplba / rdp->width) * rdp->interleave) + + (blkno - ((tmplba / rdp->width) * rdp->interleave)) % lbs; + chunk = min(count, lbs); } else { drv = tmplba % rdp->width; @@ -972,6 +982,7 @@ raid->flags |= AR_F_HIGHPOINT_RAID; raid->disks[disk_number].device = adp->device; raid->disks[disk_number].flags = (AR_DF_PRESENT | AR_DF_ASSIGNED); + AD_SOFTC(raid->disks[disk_number])->flags |= AD_F_RAID_SUBDISK; raid->lun = array; if (info->magic == HPT_MAGIC_OK) { raid->disks[disk_number].flags |= AR_DF_ONLINE; @@ -1232,6 +1243,8 @@ raid->disks[info->raid.disk_number].flags |= AR_DF_PRESENT; raid->disks[info->raid.disk_number].disk_sectors = info->raid.disk_sectors; + AD_SOFTC(raid->disks[info->raid.disk_number])->flags |= + AD_F_RAID_SUBDISK; retval = 1; } break; @@ -1427,3 +1440,31 @@ } return NULL; } + +static void +ar_print_conf(struct ar_softc *config) +{ + int i; + + printf("lun %d\n", config->lun); + printf("magic_0 0x%08x\n", config->magic_0); + printf("magic_1 0x%08x\n", config->magic_1); + printf("flags 0x%02x %b\n", config->flags, config->flags, + "\20\16HIGHPOINT\15PROMISE\13REBUILDING\12DEGRADED\11READY\3SPAN\2RAID1\1RAID0\n"); + printf("total_disks %d\n", config->total_disks); + printf("generation %d\n", config->generation); + printf("width %d\n", config->width); + printf("heads %d\n", config->heads); + printf("sectors %d\n", config->sectors); + printf("cylinders %d\n", config->cylinders); + printf("total_sectors %lld\n", (long long)config->total_sectors); + printf("interleave %d\n", config->interleave); + printf("reserved %d\n", config->reserved); + printf("offset %d\n", config->offset); + for (i = 0; i < config->total_disks; i++) { + printf("disk %d: flags = 0x%02x %b\n", i, config->disks[i].flags, config->disks[i].flags, "\20\4ONLINE\3SPARE\2ASSIGNED\1PRESENT\n"); + if (config->disks[i].device) + printf(" %s\n", config->disks[i].device->name); + printf(" sectors %lld\n", (long long)config->disks[i].disk_sectors); + } +} ==== //depot/projects/smpng/sys/dev/ata/ata-raid.h#12 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-raid.h,v 1.21 2003/02/25 15:33:36 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-raid.h,v 1.22 2003/04/08 07:48:52 sos Exp $ */ /* misc defines */ @@ -221,11 +221,10 @@ u_int32_t checksum; } __packed; -int ata_raiddisk_probe(struct ad_softc *); int ata_raiddisk_attach(struct ad_softc *); int ata_raiddisk_detach(struct ad_softc *); void ata_raid_attach(void); int ata_raid_create(struct raid_setup *); int ata_raid_delete(int); -int ata_raid_status(int array, struct raid_status *); +int ata_raid_status(int, struct raid_status *); int ata_raid_rebuild(int); ==== //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/cardbus/cardbus_cis.c,v 1.35 2003/02/19 05:47:01 imp Exp $ + * $FreeBSD: src/sys/dev/cardbus/cardbus_cis.c,v 1.36 2003/04/08 07:05:16 imp Exp $ */ /* @@ -849,6 +849,11 @@ res = bus_alloc_resource(cbdev, SYS_RES_MEMORY, &rid, 0, (dinfo->mprefetchable & dinfo->mbelow1mb)?0xFFFFF:~0UL, mem_psize, flags); + if (res == NULL) { + device_printf(cbdev, + "Can't get memory for prefetch mem\n"); + return (EIO); + } start = rman_get_start(res); end = rman_get_end(res); DEVPRINTF((cbdev, "Prefetchable memory at %x-%x\n", start, end)); @@ -890,6 +895,11 @@ res = bus_alloc_resource(cbdev, SYS_RES_MEMORY, &rid, 0, ((~dinfo->mprefetchable) & dinfo->mbelow1mb)?0xFFFFF:~0UL, mem_nsize, flags); + if (res == NULL) { + device_printf(cbdev, + "Can't get memory for non-prefetch mem\n"); + return (EIO); + } start = rman_get_start(res); end = rman_get_end(res); DEVPRINTF((cbdev, "Non-prefetchable memory at %x-%x\n", @@ -930,6 +940,11 @@ rid = 0; res = bus_alloc_resource(cbdev, SYS_RES_IOPORT, &rid, 0, (dinfo->ibelow1mb)?0xFFFFF:~0UL, io_size, flags); + if (res == NULL) { + device_printf(cbdev, + "Can't get memory for IO ports\n"); + return (EIO); + } start = rman_get_start(res); end = rman_get_end(res); DEVPRINTF((cbdev, "IO port at %x-%x\n", start, end)); @@ -951,6 +966,10 @@ rid = 0; res = bus_alloc_resource(cbdev, SYS_RES_IRQ, &rid, 0, ~0UL, 1, RF_SHAREABLE); + if (res == NULL) { + device_printf(cbdev, "Can't get memory for irq\n"); + return (EIO); + } start = rman_get_start(res); end = rman_get_end(res); bus_release_resource(cbdev, SYS_RES_IRQ, rid, res); ==== //depot/projects/smpng/sys/dev/ed/if_ed.c#12 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.216 2003/03/25 00:07:00 jake Exp $ + * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.217 2003/04/05 18:12:36 cognet Exp $ */ /* @@ -568,8 +568,8 @@ for (i = 0; i < memsize; ++i) { if (sc->mem_start[i]) { - device_printf(dev, "failed to clear shared memory at %x - check configuration\n", - kvtop(sc->mem_start + i)); + device_printf(dev, "failed to clear shared memory at %jx - check configuration\n", + (uintmax_t)kvtop(sc->mem_start + i)); /* * Disable 16 bit access to shared memory @@ -903,8 +903,8 @@ for (i = 0; i < memsize; ++i) if (sc->mem_start[i]) { - device_printf(dev, "failed to clear shared memory at %x - check configuration\n", - kvtop(sc->mem_start + i)); + device_printf(dev, "failed to clear shared memory at %jx - check configuration\n", + (uintmax_t)kvtop(sc->mem_start + i)); return (ENXIO); } return (0); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304081902.h38J2ZrZ073579>