From: Andi Kleen POSIX says si_band in siginfo_t must be long. glibc uses this, except for Alpha. This type must be correct on little endian machines, otherwise Konqueror does not get any events from dnotity for created/deleted files. Currenly asm-generic/siginfo.h uses int, which is wrong. This patch adds a new macro __ARCH_SI_BAND_T which is int for alpha and long for everybody else. This makes the type on x86-64 come out correctly y include/asm-alpha/siginfo.h | 2 ++ include/asm-generic/siginfo.h | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff -puN include/asm-alpha/siginfo.h~si_band-type-fix include/asm-alpha/siginfo.h --- 25/include/asm-alpha/siginfo.h~si_band-type-fix 2003-08-10 14:39:10.000000000 -0700 +++ 25-akpm/include/asm-alpha/siginfo.h 2003-08-10 14:39:10.000000000 -0700 @@ -6,6 +6,8 @@ #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4) +#define __ARCH_SI_BAND_T int + #include #endif diff -puN include/asm-generic/siginfo.h~si_band-type-fix include/asm-generic/siginfo.h --- 25/include/asm-generic/siginfo.h~si_band-type-fix 2003-08-10 14:39:10.000000000 -0700 +++ 25-akpm/include/asm-generic/siginfo.h 2003-08-10 14:39:10.000000000 -0700 @@ -26,6 +26,10 @@ typedef union sigval { #define __ARCH_SI_UID_T uid_t #endif +#ifndef __ARCH_SI_BAND_T +#define __ARCH_SI_BAND_T long +#endif + #ifndef HAVE_ARCH_SIGINFO_T typedef struct siginfo { @@ -77,7 +81,7 @@ typedef struct siginfo { /* SIGPOLL */ struct { - int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ + __ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */ int _fd; } _sigpoll; } _sifields; _