[Bug 240145] [smartpqi][zfs] kernel panic with hanging vdev

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Feb 6 22:46:39 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240145

--- Comment #14 from rainer at ultra-secure.de ---
OK,

so I realized I can compile this anywhere, not just on my server.

This is what I did:

 - take a FreeBSD 12.2-RELEASE-p3 install
 - download src.txz, extract
 - freebsd-update fetch && freebsd-update install
 - cd /usr/src
 - patch -p 0 < /root/D24428.diff
 - make buildkernel && make installkernel


this is what I get:

cc -target x86_64-unknown-freebsd12.2
--sysroot=/usr/obj/usr/src/amd64.amd64/tmp
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -c -O2 -pipe -fno-strict-aliasing 
-g -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include
-I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include
opt_global.h -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-MD  -MF.depend.nehemiah.o -MTnehemiah.o
-fdebug-prefix-map=./machine=/usr/src/sys/amd64/include
-fdebug-prefix-map=./x86=/usr/src/sys/x86/include -mcmodel=kernel -mno-red-zone
-mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding
-fwrapv -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -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 -Wno-address-of-packed-member  -mno-aes
-mno-avx  -std=iso9899:1999 -Werror  /usr/src/sys/dev/random/nehemiah.c
ctfconvert -L VERSION -g nehemiah.o
cc -target x86_64-unknown-freebsd12.2
--sysroot=/usr/obj/usr/src/amd64.amd64/tmp
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -c -O2 -pipe -fno-strict-aliasing 
-g -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include
-I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include
opt_global.h -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-MD  -MF.depend.smartpqi_cam.o -MTsmartpqi_cam.o
-fdebug-prefix-map=./machine=/usr/src/sys/amd64/include
-fdebug-prefix-map=./x86=/usr/src/sys/x86/include -mcmodel=kernel -mno-red-zone
-mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding
-fwrapv -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -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 -Wno-address-of-packed-member  -mno-aes
-mno-avx  -std=iso9899:1999 -Werror  /usr/src/sys/dev/smartpqi/smartpqi_cam.c
In file included from /usr/src/sys/dev/smartpqi/smartpqi_cam.c:34:
In file included from /usr/src/sys/dev/smartpqi/smartpqi_includes.h:86:
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:973:27: error: redefinition of
typedef 'OS_ATOMIC64_T' is a C11 feature [-Werror,-Wtypedef-redefinition]
typedef volatile uint64_t OS_ATOMIC64_T;
                          ^
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:825:33: note: previous definition
is here
typedef volatile uint64_t       OS_ATOMIC64_T;
                                ^
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:975:9: error: 'OS_ATOMIC64_READ'
macro redefined [-Werror,-Wmacro-redefined]
#define OS_ATOMIC64_READ(_softs, target)       
atomic_load_acq_64(&(_softs)->target)
        ^
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:826:9: note: previous definition
is here
#define OS_ATOMIC64_READ(p)     atomic_load_acq_64(p)
        ^
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:976:9: error: 'OS_ATOMIC64_INC'
macro redefined [-Werror,-Wmacro-redefined]
#define OS_ATOMIC64_INC(_softs, target)        
atomic_add_64(&(_softs)->target, 1)
        ^
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:831:9: note: previous definition
is here
#define OS_ATOMIC64_INC(p)      (atomic_fetchadd_64(p, 1) + 1)
        ^
/usr/src/sys/dev/smartpqi/smartpqi_cam.c:619:4: error: use of undeclared
identifier 'bsd_status'
                        bsd_status = EIO;
                        ^
/usr/src/sys/dev/smartpqi/smartpqi_cam.c:623:31: error: use of undeclared
identifier 'bsd_status'; did you mean 'dumpstatus'?
        DBG_FUNC("OUT error = %d\n", bsd_status);
                                     ^~~~~~~~~~
                                     dumpstatus
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:1083:58: note: expanded from macro
'DBG_FUNC'
                                printf("[FUNC]:[ %s ] [ %d
]"fmt,__func__,__LINE__,##args);                     \
                                                                               
     ^
/usr/src/sys/sys/systm.h:217:5: note: 'dumpstatus' declared here
int     dumpstatus(vm_offset_t addr, off_t count);
        ^
/usr/src/sys/dev/smartpqi/smartpqi_cam.c:623:31: error: format specifies type
'int' but the argument has type 'int (*)(vm_offset_t, off_t)' (aka 'int
(*)(unsigned long, long)')
      [-Werror,-Wformat]
        DBG_FUNC("OUT error = %d\n", bsd_status);
                              ~~     ^~~~~~~~~~
/usr/src/sys/dev/smartpqi/smartpqi_defines.h:1083:58: note: expanded from macro
'DBG_FUNC'
                                printf("[FUNC]:[ %s ] [ %d
]"fmt,__func__,__LINE__,##args);                     \
                                                             ~~~               
     ^~~~
/usr/src/sys/dev/smartpqi/smartpqi_cam.c:625:9: error: use of undeclared
identifier 'bsd_status'; did you mean 'dumpstatus'?
        return bsd_status;
               ^~~~~~~~~~
               dumpstatus
/usr/src/sys/sys/systm.h:217:5: note: 'dumpstatus' declared here
int     dumpstatus(vm_offset_t addr, off_t count);
        ^
/usr/src/sys/dev/smartpqi/smartpqi_cam.c:625:9: error: incompatible pointer to
integer conversion returning 'int (vm_offset_t, off_t)' (aka 'int (unsigned
long, long)') from a function
      with result type 'int' [-Werror,-Wint-conversion]
        return bsd_status;
               ^~~~~~~~~~
8 errors generated.
*** Error code 1

Stop.
make[2]: stopped in /usr/obj/usr/src/amd64.amd64/sys/GENERIC
*** Error code 1
*** Error code 1


Unfortunately, I have no idea how to fix this.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-scsi mailing list