Bug 215034 - ioat: doesn't compile on i386; probably should be blacklisted on !amd64 architectures
Summary: ioat: doesn't compile on i386; probably should be blacklisted on !amd64 archi...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: i386 Any
: --- Affects Some People
Assignee: Conrad Meyer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-04 02:09 UTC by Enji Cooper
Modified: 2016-12-04 04:05 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enji Cooper freebsd_committer freebsd_triage 2016-12-04 02:09:33 UTC
$ make all
cc  -O2 -pipe -O2 -pipe  -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I/usr/src/svn/sys/modules/ioat/../.. -I. -I/usr/src/svn/sys -fno-common   -MD  -MF.depend.ioat.o -MTioat.o -mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value  -mno-aes -mno-avx  -std=iso9899:1999 -c /usr/src/svn/sys/modules/ioat/../../dev/ioat/ioat.c -o ioat.o
/usr/src/svn/sys/modules/ioat/../../dev/ioat/ioat.c:489:28: error: implicit conversion from 'unsigned long long' to 'bus_addr_t' (aka 'unsigned int') changes value from 1099511627775 to 4294967295
      [-Werror,-Wconstant-conversion]
            2 * 1024 * 1024, 0x0, BUS_SPACE_MAXADDR_40BIT, BUS_SPACE_MAXADDR,
                                  ^~~~~~~~~~~~~~~~~~~~~~~
/usr/src/svn/sys/modules/ioat/../../dev/ioat/ioat.c:63:33: note: expanded from macro 'BUS_SPACE_MAXADDR_40BIT'
#define BUS_SPACE_MAXADDR_40BIT 0xFFFFFFFFFFULL
                                ^~~~~~~~~~~~~~~
1 error generated.
*** Error code 1

Stop.
make: stopped in /usr/src/svn/sys/modules/ioat
$ uname -a
FreeBSD fbsd12-i386.local 12.0-CURRENT FreeBSD 12.0-CURRENT #4 r305956: Sun Sep 18 21:45:24 PDT 2016     ngie@fbsd11-i386.local:/usr/obj/usr/src/svn/sys/GENERIC-NODEBUG  i386
Comment 1 Conrad Meyer freebsd_committer freebsd_triage 2016-12-04 02:17:40 UTC
It probably should compile on i386 (amd64-capable CPUs running in 32-bit mode).  But should be blacklisted outside of Intel architectures.
Comment 2 commit-hook freebsd_committer freebsd_triage 2016-12-04 04:05:21 UTC
A commit references this bug:

Author: cem
Date: Sun Dec  4 04:04:57 UTC 2016
New revision: 309526
URL: https://svnweb.freebsd.org/changeset/base/309526

Log:
  ioat(4): Compile on i386

  Truncate BUS_SPACE_MAXADDR_40BIT to essentially BUS_SPACE_MAXADDR_32BIT on
  platforms with 32-bit bus_addr_t (i.e., i386).

  PR:		215034
  Reported by:	ngie@
  Sponsored by:	Dell EMC Isilon

Changes:
  head/sys/dev/ioat/ioat.c