On AIX 7.2 and higher, /usr/include/net/netisr.h includes a header
<sys/libsysp.h>. This is an internal kernel library header that IBM
does not ship. The include of sys/libsysp.h is new in AIX 7.2. The
only information we need from net/netisr.h are the definitions for
NETISR_MAX and NET_KPROC. Using the macro AFS_AIX72_ENV, defined in
src/config/param.rs_aix72.h and param.rs_aix73.h, we can just
provide these definitions directly and avoid the include of
net/netisr.h. As part of this update we also add the macro
AFS_AIX72_ENV to src/config/param.rs_aix72.h as it was missing there
but is required for the edit to src/rx/AIX/rx_knet.c to work. On
earlier versions of AIX, we will continue to include net/netisr.h. A
case has been opened with IBM and they acknowledge the problem and
are working on a solution. However, we still need to be able to deal
with the situation as shipped from IBM. A future AIX 7.4 will likely
be able to include net/netisr.h again.
Change-Id: I9a1cbe02557cee9343d7f1a016f0223ba14076fa
Reviewed-on: https://gerrit.openafs.org/15312
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
#define AFS_AIX52_ENV 1
#define AFS_AIX53_ENV 1
#define AFS_AIX61_ENV 1
+#define AFS_AIX71_ENV 1
+#define AFS_AIX72_ENV 1
#define AFS_64BIT_CLIENT 1
#define AFS_NAMEI_ENV 1
* are in a separate kernel extension, and they are unwilling to export their
* symbols to us. We can get there indirectly, however.
*/
-#include <net/netisr.h>
+#ifdef AFS_AIX72_ENV /* Avoid including net/netisr.h on AIX 7.2 and higher */
+# define NETISR_MAX 64
+# define NET_KPROC 0
+#else
+# include <net/netisr.h>
+#endif
static struct ifqueue rxk_q; /* RXKluge queue */
static struct arpcom rxk_bogosity;