SELinux vs. LiS-2.18
"kishore" <[email protected]> Mon, 9 Jan 2006 14:56:41 +0530
| Newsgroups | gmane.linux.kernel.streams |
|---|---|
| Message-ID | <002001c614fe$ccc5c680$3b01a8c0@kishore> |
hi,
I am trying to load LiS-2.18 (downloaded from gcom.com) on,
Redhat Enterprise Linux WS release 4 ( Nahant Update 2) with kernel version
2.6.9-16.EL .
I am using a patch to load LiS-2.18 . I am safe from kernel panic
while loading streams. Let me clarify one thing :
" Is the patch (in attachments) is sufficient or I need to use any of the
rpms specified in ur mail. "
Can u have a glimpse on patch file in attachments.
Thanks in advance.
regards,
kishore,packetware.
----- Original Message -----
From: <[email protected]>
To: <[email protected]>
Cc: <[email protected]>
Sent: Thursday, January 05, 2006 7:51 PM
Subject: [Linux-streams] FYI: SELinux vs. LiS-2.18
This is FYI.
We figured that additional SELinux patches have to be installed
on 'enforced' SELinux(2.6.9) system in order to avoid panic when LiS is
started.
If the following SELinux packages are installed :
policycoreutils
selinux-policy-targeted
selinux-policy-targeted-sources.rpm
then the following versions or (later) must be installed
on the system PRIOR to starting LiS :
policycoreutils-1.18.1-4.9.i386.rpm
selinux-policy-targeted-1.17.30-2.123.noarch.rpm
selinux-policy-targeted-sources-1.17.30-2.123.noarch.rpm
--
Eugene
-----Original Message-----
From: Brian F. G. Bidulock <[email protected]>
To: [email protected]
Cc: [email protected]
Sent: Wed, 7 Dec 2005 04:51:53 -0700
Subject: Re: [Linux-streams] SELinux vs. LiS-2.18
eugenelisstreams,
Read the docs, or 'man -k selinux'. I just configure the load permissive.
(Medium security.)
--brian
On Tue, 06 Dec 2005, [email protected] wrote:
>
>
> Brian,
>
> Thanks for you comments.
> Can you elaborate a little?
> How can I tell SELinux that it is ok for LiS to register file system?
> What is the value of magic number for LiS filesystem?
>
> > I trust that you are enforcing, with permissive there is no problem.
>
> Here I did not get it at all. Could you explain?
> Sorry I'm not SELinux pro.
>
> --
> Eugene
>
>
--
Brian F. G. Bidulock ¦ The reasonable man adapts himself to the ¦
[email protected] ¦ world; the unreasonable one persists in ¦
http://www.openss7.org/ ¦ trying to adapt the world to himself. ¦
¦ Therefore all progress depends on the ¦
¦ unreasonable man. -- George Bernard Shaw ¦
___________________________________________________
Try the New Netscape Mail Today!
Virtually Spam-Free | More Storage | Import Your Contact List
http://mail.netscape.com
LiS-2.18.0-RHEL4.patch
(application/octet-stream, 34.3 KB)
diff -Naur LiS-2.18-orig/config.mk LiS-2.18-RHEL4/config.mk
--- LiS-2.18-orig/config.mk 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/config.mk 2005-04-13 05:54:21.093568464 -0400
@@ -61,6 +61,9 @@
AS =$(CROSS_COMPILE)as
LD =$(CROSS_COMPILE)ld
+ifeq ($(ARCH),ppc64)
+LD =$(CROSS_COMPILE)ld -m elf64ppc
+endif
CPP =$(CC_NAME) -E
AR =$(CROSS_COMPILE)ar
NM =$(CROSS_COMPILE)nm
@@ -141,7 +141,8 @@
#
PROBLEMS = -Wpointer-arith
PROBLEMS =
-XOPTS = -Wall -Wstrict-prototypes $(PROBLEMS)
+# Added -D__KERNGLUE__ to keep RHEL4 happy
+XOPTS = -Wall -Wstrict-prototypes $(PROBLEMS) -D__KERNGLUE__
XOPTS+= -fno-strict-aliasing -Wno-sign-compare -fno-common
#
@@ -170,6 +171,9 @@
ifeq ($(ARCH),ppc)
XOPTS += -D__powerpc__ -fno-builtin -pipe -D_PPC_LIS_
endif
+ifeq ($(ARCH),ppc64)
+XOPTS += -D_PPC_LIS_ -D_PPC64_LIS_ -m64 -msoft-float -pipe -Wno-uninitialized -mminimal-toc -mtraceback=none -mcall-aixdesc -mtune=power4 -fno-unit-at-a-time
+endif
# For s390 & s390x architecture we need some bypasses
ifeq ($(ARCH),s390)
XOPTS += -D_S390_LIS_
diff -Naur LiS-2.18-orig/Configure LiS-2.18-RHEL4/Configure
--- LiS-2.18-orig/Configure 2004-10-11 16:20:49.000000000 -0400
+++ LiS-2.18-RHEL4/Configure 2005-04-11 02:46:49.335246168 -0400
@@ -464,7 +464,7 @@
ac_get_config()
{
if [ -f $KSRC/include/linux/config.h ]; then
- cc -I$KSRC/include -E -dM \
+ cc -D__KERNGLUE__ -I$KSRC/include -E -dM \
-include $KSRC/include/linux/config.h dummy.c >kconfig
x=`grep $1 kconfig 2>&1`
if [ $? -eq 0 ]; then # found it
@@ -600,7 +600,7 @@
get_vers_h()
{
if [ -f $1 ]; then
- cc -I$KSRC/include -E -dM -include $1 dummy.c > kver
+ cc -D__KERNGLUE__ -I$KSRC/include -E -dM -include $1 dummy.c > kver
KVER_H=`grep UTS_RELEASE kver | \
sed -e 's/^.*UTS_RELEASE.//' -e's/"//g' -e's/ *$//'`
NKVER_H=`echo $KVER_H | sed -e 's/-.*//'`
@@ -1332,10 +1332,19 @@
if [ "$MACHINE" = "s390" -o "$MACHINE" = "s390x" ]; then
SMP_GREP_ID='smp_num_cpus'
+elif [ "$MACHINE" = "ppc64" ]; then
+ SMP_GREP_ID='smp_cpus_done'
else
SMP_GREP_ID='cpu_online_map'
fi
+if [ "$MACHINE" = "s390x" ]; then
+ INT_PSW=n
+fi
+if [ "$MACHINE" = "ppc64" ]; then
+ INT_PSW=n
+fi
+
#
# TARGET
#
diff -Naur LiS-2.18-orig/Makefile LiS-2.18-RHEL4/Makefile
--- LiS-2.18-orig/Makefile 2004-09-10 10:28:47.000000000 -0400
+++ LiS-2.18-RHEL4/Makefile 2005-04-11 02:49:00.192352864 -0400
@@ -74,12 +74,15 @@
endif
#
-# If building on 64-bit s390 then build libc for 32-bit applications
+# If building on 64-bit s390x or ppc64 then build libc for 32-bit applications
# running over 64-bit kernel.
#
ifeq ($(ARCH),s390x)
ALL_TARGETS += libc32over64
endif
+ifeq ($(ARCH),ppc64)
+ALL_TARGETS += libc32over64
+endif
#
# Does the user want us to install streams.o in the official
@@ -161,6 +164,9 @@
ifeq ($(ARCH),s390x)
$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ $(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
$(Q)$(MAKE) -C $(UTILOBJ) $@
$(Q)$(MAKE) -C $(DRVROBJ) $@
$(Q)$(MAKE) -C $(HEADOBJ) $@
@@ -275,6 +281,9 @@
ifeq ($(ARCH),s390x)
-$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ -$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
-$(Q)$(MAKE) -C $(UTILOBJ) $@
-$(Q)$(MAKE) -C $(DRVROBJ) $@
-$(Q)$(MAKE) -C man $@
@@ -282,6 +282,7 @@
ifeq ($(CONFIG_STREAMS),m)
-$(Q) scripts/update_conf.modules
-$(Q) (cd $(MOD_INST_DIR); rm -f streams.o streams-*.o)
+ -$(Q) (cd $(MOD_INST_DIR); rm -f streams.ko streams-*.ko)
endif
endif # .config_mk
$(nothing)
@@ -363,7 +363,11 @@
#
streams.o: $(DRVROBJ)/drivers.o $(HEADOBJ)/streamshead.o pkg/drivers.o
$(Q_ECHO) $(qtag_LDm)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -d -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -d -o $@ $^
+endif
$(HEADOBJ)/streamshead.o: config
$(Q)$(MAKE) -C $(HEADOBJ)
@@ -559,6 +568,9 @@
ifeq ($(ARCH),s390x)
-$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ -$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
-$(Q)$(MAKE) -C $(HEADOBJ) $@
-$(Q)$(MAKE) -C $(DRVROBJ) $@
-$(Q)$(MAKE) -C $(UTILOBJ) $@
@@ -576,6 +588,9 @@
ifeq ($(ARCH),s390x)
$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ $(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
$(Q)$(MAKE) -C $(HEADOBJ) $@
$(Q)$(MAKE) -C $(DRVROBJ) $@
$(Q)$(MAKE) -C $(UTILOBJ) $@
diff -Naur LiS-2.18-orig/drivers/str/Config LiS-2.18-RHEL4/drivers/str/Config
--- LiS-2.18-orig/drivers/str/Config 2004-09-02 12:42:46.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/Config 2005-04-11 02:40:01.106306400 -0400
@@ -36,7 +36,7 @@
module connld connld_
module relay relay_
module relay2 relay2_
-module ip_strms ip_to_streams_
+#module ip_strms ip_to_streams_
module timod timod_
module tirdwr tirdwr_
@@ -72,7 +72,7 @@
objname module pipemod pipemod
objname module connld connld
objname module relay2 relay
-objname module ip_strms ip_strm_mod
+#objname module ip_strms ip_strm_mod
objname module timod timod
objname module tirdwr tirdwr
diff -Naur LiS-2.18-orig/drivers/str/loop.c LiS-2.18-RHEL4/drivers/str/loop.c
--- LiS-2.18-orig/drivers/str/loop.c 2004-09-13 11:12:31.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/loop.c 2005-04-12 08:43:19.235999680 -0400
@@ -145,7 +145,9 @@
if (rtn < 0 && rtn != -ENOENT)
{
printk("unlink %s: error %d\n", name, rtn);
+#if !defined(__ppc64__)
return ;
+#endif
}
if (maj == 0) /* don't make the node */
diff -Naur LiS-2.18-orig/drivers/str/mk.bdy LiS-2.18-RHEL4/drivers/str/mk.bdy
--- LiS-2.18-orig/drivers/str/mk.bdy 2004-06-06 17:05:25.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/mk.bdy 2005-04-12 08:49:15.441028864 -0400
@@ -28,7 +28,11 @@
drivers.o: $(DRVRS) $(TDRVRS)
$(Q_ECHO) $(qtag_LD)$(relpwdtarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -o $@ $^
+endif
# Compiling a target-specific object ( $(TDRVRS) )
%.o: %.c
diff -Naur LiS-2.18-orig/drivers/str/linux/liskmod.c LiS-2.18-RHEL4/drivers/str/linux/liskmod.c
--- LiS-2.18-orig/drivers/str/linux/liskmod.c 2004-06-06 17:05:25.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/linux/liskmod.c 2005-04-11 02:40:01.107306248 -0400
@@ -49,7 +49,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h> /* BEFORE module.h, kernel.h, ... */
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h> /* BEFORE module.h, kernel.h, ... */
+# endif
# endif
#endif
diff -Naur LiS-2.18-orig/drivers/str/linux/Makefile LiS-2.18-RHEL4/drivers/str/linux/Makefile
--- LiS-2.18-orig/drivers/str/linux/Makefile 2004-09-10 10:52:18.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/linux/Makefile 2005-04-11 02:40:01.107306248 -0400
@@ -47,10 +47,10 @@
TOBJS += ip_to_dlpi
endif
ifeq ($(ARCH),s390)
-TOBJS := connld
+TOBJS := connld mtdrv
endif
ifeq ($(ARCH),s390x)
-TOBJS := connld
+TOBJS := connld mtdrv
endif
# Similar to TOBJS, but non-streams modules
diff -Naur LiS-2.18-orig/head/linux/exports.c LiS-2.18-RHEL4/head/linux/exports.c
--- LiS-2.18-orig/head/linux/exports.c 2004-09-16 12:42:48.000000000 -0400
+++ LiS-2.18-RHEL4/head/linux/exports.c 2005-04-13 02:40:01.107306248 -0400
@@ -34,7 +34,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
#endif
#define CONFIG_MODULES 1
@@ -172,9 +174,9 @@
EXPORT_SYMBOL_NOVERS(lis_major);
EXPORT_SYMBOL_NOVERS(lis_malloc);
EXPORT_SYMBOL_NOVERS(lis_mark_mem_fcn);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_membar);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
EXPORT_SYMBOL_NOVERS(lis_milli_to_ticks);
EXPORT_SYMBOL_NOVERS(lis_mknod);
#if 0 && defined(CONFIG_DEV)
@@ -205,7 +207,7 @@
EXPORT_SYMBOL_NOVERS(lis_osif_pci_write_config_word);
EXPORT_SYMBOL_NOVERS(lis_osif_sti);
EXPORT_SYMBOL_NOVERS(lis_own_spl);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_pcibios_find_class);
EXPORT_SYMBOL_NOVERS(lis_pcibios_find_device);
EXPORT_SYMBOL_NOVERS(lis_pcibios_init);
@@ -238,7 +240,7 @@
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_byte);
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_dword);
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_word);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
EXPORT_SYMBOL_NOVERS(lis_phys_to_virt);
EXPORT_SYMBOL_NOVERS(lis_print_block);
EXPORT_SYMBOL_NOVERS(lis_print_data);
@@ -351,7 +353,7 @@
EXPORT_SYMBOL_NOVERS(lis_xmsgsize);
EXPORT_SYMBOL_NOVERS(lis_zmalloc);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_osif_pci_alloc_consistent);
EXPORT_SYMBOL_NOVERS(lis_osif_pci_dma_supported);
@@ -395,4 +397,4 @@
EXPORT_SYMBOL_NOVERS(__wrap_memcmp);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
diff -Naur LiS-2.18-orig/head/linux-mdep.c LiS-2.18-RHEL4/head/linux-mdep.c
--- LiS-2.18-orig/head/linux-mdep.c 2004-10-13 12:07:36.000000000 -0400
+++ LiS-2.18-RHEL4/head/linux-mdep.c 2005-04-13 06:46:59.859912072 -0400
@@ -53,6 +53,9 @@
#include <linux/module.h>
#include <sys/LiS/modcnt.h> /* after linux-mdep.h & module.h */
#include <linux/version.h>
+#if defined(KERNEL_2_5)
+#include <linux/init.h>
+#endif
#include <linux/sched.h>
#define __KERNEL_SYSCALLS__ 1 /* to make kernel_thread visible */
@@ -94,7 +97,7 @@
*/
#if ( defined(__s390__) || defined(__s390x__) ) && defined(KERNEL_2_4)
#define NUM_CPUS smp_num_cpus
-#elif defined(KERNEL_2_5)
+#elif defined(KERNEL_2_5) /*? really ?*/
#define NUM_CPUS num_online_cpus()
#else
#define NUM_CPUS smp_num_cpus
@@ -194,7 +197,7 @@
static struct inode * lis_get_inode( mode_t mode, dev_t dev );
void lis_print_dentry(struct dentry *d, char *comment) ;
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
extern long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
extern int register_ioctl32_conversion(unsigned int fd,
int (*handler)(unsigned int fd,
@@ -998,7 +1001,11 @@
if (inode && inode->i_cdev)
printk(">> i->i_cdev: c@0x%p/%d/%x \"%s\"\n",
inode->i_cdev,
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,8)
K_ATOMIC_READ(&inode->i_cdev->kobj.refcount),
+#else
+ K_ATOMIC_READ(&inode->i_cdev->kobj.kref.refcount),
+#endif
DEV_TO_INT(inode->i_cdev->dev),
(inode->i_cdev->owner ?
inode->i_cdev->owner->name : "No-Owner")) ;
@@ -1020,6 +1027,16 @@
#endif
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9)
+void cdev_put (struct cdev *p)
+{
+ if (p) {
+ kobject_put(&p->kobj);
+ module_put(p->owner);
+ }
+}
+#endif
+
void lis_dput(struct dentry *d)
{
struct super_block *sb = NULL ;
@@ -3621,7 +3638,7 @@
}
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
int lis_ioctl32_str (unsigned int fd, unsigned int cmd, unsigned long arg)
{
strioctl_t par64;
@@ -3774,7 +3791,7 @@
lis_start_qsched() ; /* ensure q running process going */
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
register_ioctl32_conversion(I_SETSIG,sys_ioctl);
register_ioctl32_conversion(I_SRDOPT,sys_ioctl);
register_ioctl32_conversion(I_PUSH,sys_ioctl);
@@ -3805,7 +3822,7 @@
* Magic named routine called by kernel module support code.
*/
#ifdef KERNEL_2_5
-int _lis_init_module( void )
+static int __init _lis_init_module( void )
#else
int init_module( void )
#endif
@@ -3817,7 +3834,7 @@
* Magic named routine called by kernel module support code.
*/
#ifdef KERNEL_2_5
-void _lis_cleanup_module( void )
+static void __exit _lis_cleanup_module( void )
#else
void cleanup_module( void )
#endif
@@ -3851,12 +3868,12 @@
lis_kill_qsched() ; /* drivers/str/runq.c */
lis_terminate_head();
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS))
{
extern void lis_pci_cleanup(void) ;
lis_pci_cleanup() ;
}
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
unregister_chrdev(lis_major,"streams");
MNTSYNC();
@@ -3885,7 +3902,7 @@
lis_terminate_final() ; /* LiS internal memory */
lis_mem_terminate() ; /* LiS use of slab allocator */
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
unregister_ioctl32_conversion(I_SETSIG);
unregister_ioctl32_conversion(I_SRDOPT);
unregister_ioctl32_conversion(I_PUSH);
diff -Naur LiS-2.18-orig/head/mk.bdy LiS-2.18-RHEL4/head/mk.bdy
--- LiS-2.18-orig/head/mk.bdy 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/head/mk.bdy 2005-04-12 08:50:00.564091792 -0400
@@ -51,7 +51,11 @@
streamshead.o: $(OBJS) $(XOBJS) $(ASMOBJS)
$(Q_ECHO) $(qtag_LD)$(relpwdtarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -o $@ $^
+endif
#
# Some rules to make object files
diff -Naur LiS-2.18-orig/head/mod.c LiS-2.18-RHEL4/head/mod.c
--- LiS-2.18-orig/head/mod.c 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/head/mod.c 2005-04-13 06:47:42.641931072 -0400
@@ -1022,7 +1022,7 @@
if (devptr->irq <= 0)
return ;
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
retval = request_irq(devptr->irq, devptr->handler, 0, name, NULL);
if (retval)
{
@@ -1169,7 +1169,7 @@
devptr = &lis_device_config[i] ;
if (devptr->irq > 0)
{
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
free_irq(devptr->irq, NULL) ;
#endif
diff -Naur LiS-2.18-orig/head/osif.c LiS-2.18-RHEL4/head/osif.c
--- LiS-2.18-orig/head/osif.c 2004-10-11 17:49:31.000000000 -0400
+++ LiS-2.18-RHEL4/head/osif.c 2005-04-13 06:48:09.149895440 -0400
@@ -335,7 +335,7 @@
#endif
#if LINUX_VERSION_CODE >= 0x020400 /* 2.4 kernel */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
/***************************************
* PCI DMA Mapping Fcns *
@@ -473,7 +473,7 @@
#endif /* 2.4.13 */
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif /* LINUX_VERSION_CODE >= 0x020400 */
@@ -536,7 +536,9 @@
if (dv->handler && dv->dev_id && dv->irq)
{
printk("LiS freeing IRQ%u\n", dv->irq) ;
+#if !defined(__s390__)
free_irq(dv->irq, dv) ;
+#endif
}
FREE(dv) ;
dv = nxt ;
@@ -879,7 +881,11 @@
************************************************************************/
void _RP lis_sleep_on(OSIF_WAIT_Q_ARG)
{
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8)
sleep_on(wq) ;
+#else
+ wait_event(wq,0) ;
+#endif
}
void _RP lis_interruptible_sleep_on(OSIF_WAIT_Q_ARG)
diff -Naur LiS-2.18-orig/head/stream.c LiS-2.18-RHEL4/head/stream.c
--- LiS-2.18-orig/head/stream.c 2004-09-10 17:34:18.000000000 -0400
+++ LiS-2.18-RHEL4/head/stream.c 2005-05-12 13:01:52.838008472 -0400
@@ -142,10 +142,7 @@
lis_currq[cpu_id] = q ; /* for debugging */
if (!LIS_CHECK_Q_MAGIC(q))
{
- printk("queuerun: scan queue is broken\n") ;
- lis_scanqhead = NULL ;
- lis_scanqtail = NULL ;
- K_ATOMIC_SET(&lis_runq_req_cnt, 0) ;
+ printk("queuerun: queue flags are 0x%lx\n",q->q_flag) ;
goto scan_loop_bottom ;
}
@@ -245,10 +242,7 @@
lis_currq[cpu_id] = q ; /* for debugging */
if (!LIS_CHECK_Q_MAGIC(q))
{
- printk("queuerun: service queue is broken\n") ;
- lis_qhead = NULL ;
- lis_qtail = NULL ;
- K_ATOMIC_SET(&lis_runq_req_cnt, 0) ;
+ printk("queuerun(2): queue flags are 0x%lx\n",q->q_flag) ;
goto qsched_loop_bottom ;
}
diff -Naur LiS-2.18-orig/include/sys/osif.h LiS-2.18-RHEL4/include/sys/osif.h
--- LiS-2.18-orig/include/sys/osif.h 2004-09-16 14:50:09.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/osif.h 2005-04-13 06:50:34.702997496 -0400
@@ -173,7 +173,7 @@
#if LINUX_VERSION_CODE >= 0x020400 /* 2.4 kernel */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
#ifdef pci_alloc_consistent
#undef pci_alloc_consistent
#endif
@@ -255,7 +255,7 @@
#endif
#define sg_dma_len lis_osif_sg_dma_len
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif
@@ -526,7 +526,7 @@
extern size_t lis_osif_sg_dma_len(struct scatterlist *sg)_RP;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13) /* 2.4.13 or later */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
extern void lis_osif_pci_unmap_page(struct pci_dev *hwdev,
dma_addr_t dma_address, size_t size,
int direction)_RP;
@@ -544,7 +544,7 @@
dma64_addr_t dma_addr)_RP;
extern void lis_osif_pci_dac_dma_sync_single(struct pci_dev *pdev,
dma64_addr_t dma_addr, size_t len, int direction)_RP;
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif /* 2.4.13 */
diff -Naur LiS-2.18-orig/include/sys/gnu.stropts.h LiS-2.18-RHEL4/include/sys/gnu.stropts.h
--- LiS-2.18-orig/include/sys/gnu.stropts.h 1999-12-04 15:00:31.000000000 -0500
+++ LiS-2.18-RHEL4/include/sys/gnu.stropts.h 2005-04-11 02:40:01.113305336 -0400
@@ -22,7 +22,7 @@
#include <bits/types.h>
/* Macros used as `request' argument to `ioctl'. */
-#define __SID ('S' << 8)
+#define __SID (0xdc << 8)
#define I_NREAD (__SID | 1) /* Counts the number of data bytes in the data
block in the first message. */
diff -Naur LiS-2.18-orig/include/sys/LiS/linux-mdep.h LiS-2.18-RHEL4/include/sys/LiS/linux-mdep.h
--- LiS-2.18-orig/include/sys/LiS/linux-mdep.h 2004-09-16 12:41:59.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/LiS/linux-mdep.h 2005-04-11 02:40:01.111305640 -0400
@@ -82,14 +82,16 @@
* versions.
*/
#define queue_t irda_queue_t
+#include <linux/version.h>
#ifdef MODVERSIONS
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
#endif
-#include <linux/version.h>
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif
diff -Naur LiS-2.18-orig/include/sys/LiS/module.h LiS-2.18-RHEL4/include/sys/LiS/module.h
--- LiS-2.18-orig/include/sys/LiS/module.h 2004-09-08 11:48:31.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/LiS/module.h 2005-04-11 02:40:01.111305640 -0400
@@ -40,7 +40,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
# endif
# include <linux/module.h>
diff -Naur LiS-2.18-orig/include/sys/strmsg.h LiS-2.18-RHEL4/include/sys/strmsg.h
--- LiS-2.18-orig/include/sys/strmsg.h 2004-02-19 16:24:24.000000000 -0500
+++ LiS-2.18-RHEL4/include/sys/strmsg.h 2005-04-11 02:40:01.111305640 -0400
@@ -92,34 +92,33 @@
QNORM = 0x00, /* - S U O A H M L */
M_DATA = 0x00, /* | S U O A H M L */
M_PROTO = 0x01, /* | S U O A H M L */
- M_BREAK = 0x08, /* v S U O(0x10) A H M L(0x02) */
- M_PASSFP = 0x09, /* | S U O(0x11) A H M L(0x06) */
- M_EVENT = 0x0a, /* ? S */
- M_SIG = 0x0b, /* ^ S U O(0x13) A H M L(0x09) */
- M_DELAY = 0x0c, /* v S U O(0x14) A H M L(0x04) */
- M_CTL = 0x0d, /* | S U O(0x15) A H M L(0x03) */
- M_IOCTL = 0x0e, /* v S U O(0x16) A H M L(0x05) */
- M_SETOPTS = 0x10, /* ^ S U O(0x20) A H M L(0x08) */
- M_RSE = 0x11, /* | S U O(0x21) A H M L(0x07) */
+ M_BREAK = 0x02, /* v S U O(0x10) A H M L(0x02) */
+ M_PASSFP = 0x06, /* | S U O(0x11) A H M L(0x06) */
+ M_SIG = 0x09, /* ^ S U O(0x13) A H M L(0x09) */
+ M_DELAY = 0x04, /* v S U O(0x14) A H M L(0x04) */
+ M_CTL = 0x03, /* | S U O(0x15) A H M L(0x03) */
+ M_IOCTL = 0x05, /* v S U O(0x16) A H M L(0x05) */
+ M_SETOPTS = 0x08, /* ^ S U O(0x20) A H M L(0x08) */
+ M_RSE = 0x07, /* | S U O(0x21) A H M L(0x07) */
M_TRAIL = 0x12, /* ? U */
M_BACKWASH = 0x13, /* v A */
- QPCTL = 0x80, /* - S U O A H M L(0x0a) */
- M_IOCACK = 0x81, /* ^ S U O A H M L(0x0f) */
- M_IOCNAK = 0x82, /* ^ S U O A H M L(0x10) */
- M_PCPROTO = 0x83, /* | S U O A H M L(0x12) */
- M_PCSIG = 0x84, /* ^ S U O A H M L(0x14) */
- M_READ = 0x85, /* v S U O(0x8b) A H(0x8b) M(0x8b) L(0x15) */
- M_FLUSH = 0x86, /* | S U O A H M L(0x0d) */
- M_STOP = 0x87, /* v S U O A H M L(0x16) */
- M_START = 0x88, /* v S U O A H M L(0x17) */
- M_HANGUP = 0x89, /* ^ S U O A H M L(0x0e) */
- M_ERROR = 0x8a, /* ^ S U O A H M L(0x0c) */
- M_COPYIN = 0x8b, /* ^ S U O(0x8d) A H(0x8d) M(0x8c) L(0x0a) */
- M_COPYOUT = 0x8c, /* ^ S U O(0x8e) A H(0x8e) M(0x8d) L(0x0b) */
- M_IOCDATA = 0x8d, /* v S U O(0x8f) A H(0x8f) M(0x8e) L(0x11) */
- M_PCRSE = 0x8e, /* | S U O(0x90) A H(0x90) M(0x90) L(0x13) */
- M_STOPI = 0x8f, /* v S U O(0x91) A H(0x91) M(0x91) L(0x19) */
- M_STARTI = 0x90, /* v S U O(0x92) A H(0x92) M(0x92) L(0x18) */
+ QPCTL = 0x0a, /* - S U O A H M L(0x0a) */
+ M_IOCACK = 0x0f, /* ^ S U O A H M L(0x0f) */
+ M_IOCNAK = 0x10, /* ^ S U O A H M L(0x10) */
+ M_PCPROTO = 0x12, /* | S U O A H M L(0x12) */
+ M_PCSIG = 0x14, /* ^ S U O A H M L(0x14) */
+ M_READ = 0x15, /* v S U O(0x8b) A H(0x8b) M(0x8b) L(0x15) */
+ M_FLUSH = 0x0d, /* | S U O A H M L(0x0d) */
+ M_STOP = 0x16, /* v S U O A H M L(0x16) */
+ M_START = 0x17, /* v S U O A H M L(0x17) */
+ M_HANGUP = 0x0e, /* ^ S U O A H M L(0x0e) */
+ M_ERROR = 0x0c, /* ^ S U O A H M L(0x0c) */
+ M_COPYIN = 0x0a, /* ^ S U O(0x8d) A H(0x8d) M(0x8c) L(0x0a) */
+ M_COPYOUT = 0x0b, /* ^ S U O(0x8e) A H(0x8e) M(0x8d) L(0x0b) */
+ M_IOCDATA = 0x11, /* v S U O(0x8f) A H(0x8f) M(0x8e) L(0x11) */
+ M_PCRSE = 0x13, /* | S U O(0x90) A H(0x90) M(0x90) L(0x13) */
+ M_STOPI = 0x19, /* v S U O(0x91) A H(0x91) M(0x91) L(0x19) */
+ M_STARTI = 0x18, /* v S U O(0x92) A H(0x92) M(0x92) L(0x18) */
/* the rest of these are all over the board, only M_UNHANGUP is common,
* they have been renumbered so that at least they don't overlap
diff -Naur LiS-2.18-orig/include/sys/stropts.h LiS-2.18-RHEL4/include/sys/stropts.h
--- LiS-2.18-orig/include/sys/stropts.h 2004-07-30 11:52:59.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/stropts.h 2005-04-11 02:40:01.113305336 -0400
@@ -260,8 +260,8 @@
#undef STR
#endif
-#define __SID ('S'<<8) /* for GNU libc compatibility */
-#define STR ('S'<<8) /* for UnixWare/Solaris compatibility */
+#define __SID (0xdc<<8) /* for GNU libc compatibility */
+#define STR (0xdc<<8) /* for UnixWare/Solaris compatibility */
#define I_NREAD (__SID | 1)
#define I_PUSH (__SID | 2)
#define I_POP (__SID | 3)
diff -Naur LiS-2.18-orig/libc/linux/Makefile LiS-2.18-RHEL4/libc/linux/Makefile
--- LiS-2.18-orig/libc/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/libc/linux/Makefile 2005-04-11 02:56:49.932941440 -0400
@@ -13,6 +13,11 @@
# For 64-bit zSeries, specify use of position independent code
XOPTS += -fPIC
endif
+# For 64-bit ppc64, specify use of position independent code
+ifeq ($(ARCH), ppc64)
+XOPTS += -fPIC -m64
+endif
+
include $(LIBDIR)/mk.bdy
diff -Naur LiS-2.18-orig/libc/mk.bdy LiS-2.18-RHEL4/libc/mk.bdy
--- LiS-2.18-orig/libc/mk.bdy 2005-04-12 08:39:09.827976880 -0400
+++ LiS-2.18-RHEL4/libc/mk.bdy 2005-04-12 09:04:40.416987608 -0400
@@ -28,11 +28,19 @@
$(LIB_SHARED): $(LIBOBJS)
$(Q_ECHO) $(qtag_LD)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -shared -m elf64ppc -o $@ $^ -lc
+else
$(Q)$(LD) -shared -o $@ $^ -lc
+endif
$(LIB_PSHARED): $(PRELDOBJS)
$(Q_ECHO) $(qtag_LD)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -shared -m elf64ppc -o $@ $^ -lc
+else
$(Q)$(LD) -shared -o $@ $^ -lc
+endif
$(LIB_STATIC): $(LIBOBJS)
-$(Q)rm -f $@
@@ -63,18 +71,22 @@
install: .compiler all
$(Q_ECHO) $(qtag_INSTALL)$(relpwd)
-ifneq ($(ARCH),s390x)
- $(Q)install -d $(DEST_LIBDIR)
- $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIBDIR)/$(LIBFILE_SHARED)
- $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIBDIR)/$(LIBFILE_PSHARED)
- $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIBDIR)/$(LIBFILE_STATIC)
+ifeq ($(ARCH),s390x)
+ $(Q)install -d $(DEST_LIB64DIR)
+ $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIB64DIR)/$(LIBFILE_SHARED)
+ $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIB64DIR)/$(LIBFILE_PSHARED)
+ $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIB64DIR)/$(LIBFILE_STATIC)
else
-# FIXME - someone should define this directory
-ifneq ($(lib64dir),)
+ifeq ($(ARCH),ppc64)
$(Q)install -d $(DEST_LIB64DIR)
$(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIB64DIR)/$(LIBFILE_SHARED)
$(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIB64DIR)/$(LIBFILE_PSHARED)
$(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIB64DIR)/$(LIBFILE_STATIC)
+else
+ $(Q)install -d $(DEST_LIBDIR)
+ $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIBDIR)/$(LIBFILE_SHARED)
+ $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIBDIR)/$(LIBFILE_PSHARED)
+ $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIBDIR)/$(LIBFILE_STATIC)
endif
endif
ifeq ($(DESTDIR),)
diff -Naur LiS-2.18-orig/libc/getpmsg.c LiS-2.18-RHEL4/libc/getpmsg.c
--- LiS-2.18-orig/libc/getpmsg.c 2004-03-11 15:16:14.000000000 -0500
+++ LiS-2.18-RHEL4/libc/getpmsg.c 2005-04-11 02:40:01.112305488 -0400
@@ -6,16 +6,16 @@
typedef struct strbuf6 {
int maxlen;
int len;
- long long buf;
+ unsigned long long buf;
} strbuf6_t;
typedef struct getpmsg_args6
{
int fd ;
- long long ctl ;
- long long dat ;
- long long bandp ;
- long long flagsp ;
+ unsigned long long ctl ;
+ unsigned long long dat ;
+ unsigned long long bandp ;
+ unsigned long long flagsp ;
} getpmsg_args6_t ;
@@ -33,7 +33,7 @@
{
ctl6.maxlen = ctlptr->maxlen;
ctl6.len = ctlptr->len;
- ctl6.buf = (long long)ctlptr->buf;
+ ctl6.buf = (unsigned long long)(unsigned long)ctlptr->buf;
ptrc6 = &ctl6;
}
@@ -41,16 +41,16 @@
{
dat6.maxlen = dataptr->maxlen;
dat6.len = dataptr->len;
- dat6.buf = (long long)dataptr->buf;
+ dat6.buf = (unsigned long long)(unsigned long)dataptr->buf;
ptrd6 = &dat6;
}
memset((void*)&args,0,sizeof(getpmsg_args6_t));
args.fd = fd ;
- args.ctl = (long long)ptrc6 ;
- args.dat = (long long)ptrd6 ;
- args.bandp = (long long)bandp ;
- args.flagsp = (long long)flagsp ;
+ args.ctl = (unsigned long long)(unsigned long)ptrc6 ;
+ args.dat = (unsigned long long)(unsigned long)ptrd6 ;
+ args.bandp = (unsigned long long)(unsigned long)bandp ;
+ args.flagsp = (unsigned long long)(unsigned long)flagsp ;
rc = read(fd, &args, LIS_GETMSG_PUTMSG_ULEN);
diff -Naur LiS-2.18-orig/libc/putpmsg.c LiS-2.18-RHEL4/libc/putpmsg.c
--- LiS-2.18-orig/libc/putpmsg.c 2004-03-11 15:16:14.000000000 -0500
+++ LiS-2.18-RHEL4/libc/putpmsg.c 2005-04-11 02:40:01.112305488 -0400
@@ -6,14 +6,14 @@
typedef struct strbuf6 {
int maxlen;
int len;
- long long buf;
+ unsigned long long buf;
} strbuf6_t;
typedef struct putpmsg_args6
{
int fd ;
- long long ctl ;
- long long dat ;
+ unsigned long long ctl ;
+ unsigned long long dat ;
int band ;
int flags ;
@@ -32,7 +32,7 @@
{
ctl6.maxlen = ctlptr->maxlen;
ctl6.len = ctlptr->len;
- ctl6.buf = (long long)ctlptr->buf;
+ ctl6.buf = (unsigned long long)(unsigned long)ctlptr->buf;
ptrc6 = &ctl6;
}
@@ -40,14 +40,14 @@
{
dat6.maxlen = dataptr->maxlen;
dat6.len = dataptr->len;
- dat6.buf = (long long)dataptr->buf;
+ dat6.buf = (unsigned long long)(unsigned long)dataptr->buf;
ptrd6 = &dat6;
}
memset((void*)&args,0,sizeof(putpmsg_args6_t));
args.fd = fd ;
- args.ctl = (long long)ptrc6 ;
- args.dat = (long long)ptrd6 ;
+ args.ctl = (unsigned long long)(unsigned long)ptrc6 ;
+ args.dat = (unsigned long long)(unsigned long)ptrd6 ;
args.band = band ;
args.flags = flags ;
diff -Naur LiS-2.18-orig/libc32over64/linux/Makefile LiS-2.18-RHEL4/libc32over64/linux/Makefile
--- LiS-2.18-orig/libc32over64/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/libc32over64/linux/Makefile 2005-04-12 09:26:56.903074248 -0400
@@ -7,8 +7,21 @@
CP_OPTS = -f
XOPTS += -D__KERNEL_SYSCALLS__
+ifeq ($(ARCH),s390x)
XOPTS += -DBLD32OVER64 -m31
LDOPTS = -melf_s390
+endif
+ifeq ($(ARCH),ppc64)
+XOPTS = -D__KERNEL_SYSCALLS__
+XOPTS += -DBLD32OVER64 -m32 -msoft-float -pipe -ffixed-r2 -mmultiple -mstring
+XOPTS += -Wall -Wstrict-prototypes $(PROBLEMS)
+XOPTS += -fno-strict-aliasing -Wno-sign-compare -fno-common
+XOPTS += -D__powerpc__ -fno-builtin -pipe -D_PPC_LIS_
+XOPTS += -D__SMP__
+XOPTS += -I$(LIS_INCL)
+XOPTS += -I$(KINCL) $(KINCL_MACH_GENERIC) $(KINCL_MACH_DEFAULT)
+LDOPTS = -m elf32ppc
+endif
include $(LIBDIR32OVER64)/mk.bdy
diff -Naur LiS-2.18-orig/libc32over64/mk.bdy LiS-2.18-RHEL4/libc32over64/mk.bdy
--- LiS-2.18-orig/libc32over64/mk.bdy 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/libc32over64/mk.bdy 2005-04-12 11:50:30.379984136 -0400
@@ -20,7 +20,13 @@
LIB_PSHARED = $(LIBDIR32OVER64)/$(LIBFILE_PSHARED)
LIB_STATIC = $(LIBDIR32OVER64)/$(LIBFILE_STATIC)
+ifeq ($(ARCH),s390x)
CC += -c $(XOPTS)
+endif
+ifeq ($(ARCH),ppc64)
+CC += -c $(XOPTS) -fPIC -m32 -msoft-float -pipe -ffixed-r2 -mmultiple -mstring
+LD = ld -m elf32ppc
+endif
all: compiler $(LIB_SHARED) $(LIB_PSHARED) $(LIB_STATIC)
diff -Naur LiS-2.18-orig/pkg/Makefile LiS-2.18-RHEL4/pkg/Makefile
--- LiS-2.18-orig/pkg/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/pkg/Makefile 2005-04-12 09:03:25.143983048 -0400
@@ -60,7 +60,11 @@
# file.
#
$(Q_ECHO) $(qtag_continue) */*.o
- $(Q)$(LD) -r -o $@ */*.o
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ */*.o
+else
+ $(Q)$(LD) -r -o $@ */*.o
+endif
.objects: $(OBJECTS)
$(Q)echo $(relpwddeps) > $@
diff -Naur LiS-2.18-orig/scripts/update_conf.modules LiS-2.18-RHEL4/scripts/update_conf.modules
--- LiS-2.18-orig/scripts/update_conf.modules 2004-06-06 17:06:55.000000000 -0400
+++ LiS-2.18-RHEL4/scripts/update_conf.modules 2005-04-12 08:11:06.686000048 -0400
@@ -54,9 +54,12 @@
fi
}
-CONF=modules.conf # new name
+CONF=modprobe.conf.streams # newest name
if [ ! -f /etc/$CONF ]; then
- CONF=conf.modules # old name
+ CONF=modules.conf # new name
+ if [ ! -f /etc/$CONF ]; then
+ CONF=conf.modules # old name
+ fi
fi
cp /etc/$CONF ${CONF}.save && \
diff -Naur LiS-2.18-orig/util/streams.c LiS-2.18-RHEL4/util/streams.c
--- LiS-2.18-orig/util/streams.c 2004-07-30 11:52:59.000000000 -0400
+++ LiS-2.18-RHEL4/util/streams.c 2005-04-13 02:40:01.113305336 -0400
@@ -152,7 +152,11 @@
printf("%-28s: ", lis_itemnames[i].name);
for (j = 0; j < 4; j++)
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
+ printf("%12lu", strstats[inx][j]/4294967296);
+#else
printf("%12lu", strstats[inx][j]);
+#endif
printf("\n");
}
diff -Naur LiS-2.18-orig/util/strtst.c LiS-2.18-RHEL4/util/strtst.c
--- LiS-2.18-orig/util/strtst.c 2004-10-05 10:37:05.000000000 -0400
+++ LiS-2.18-RHEL4/util/strtst.c 2005-04-11 02:40:01.106306400 -0400
@@ -5411,7 +5411,11 @@
print("band_test: band 2 full (%d msgs), write band 1\n", n_sent) ;
send_band(fd1, 1, 23, _M_DATA) ;
+#if defined(__s390__) || defined(__s390x__)
+ sleep(2) ; /* allow messages to flow */
+#else
sleep(1) ; /* allow messages to flow */
+#endif
print(" %d messages available to read\n", nread_wait_msgs(fd2, 1)) ;
flow_ok = 0 ;
for (i = 0; i < n_sent; i++)
diff -Naur LiS-2.18-orig/util/linux/Makefile LiS-2.18-RHEL4/util/linux/Makefile
--- LiS-2.18-orig/util/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/util/linux/Makefile 2005-04-12 09:08:13.672047560 -0400
@@ -1,8 +1,13 @@
include .config_mk
OPT = -DLINUX
+ifeq ($(ARCH),ppc64)
+XUTILS = ldlconfig test test2 fattach fdetach \
+ oc rwf mkfifo psfd pafd thrtst
+else
XUTILS = ldltest ldlconfig test test2 fattach fdetach \
oc rwf mkfifo psfd pafd thrtst
+endif
XINST = install_xutils
XUNINST = uninstall_xutils
XCLEAN = makenodes.c
@@ -19,7 +24,11 @@
#strtst: ../strtst.c
# $(CC) -o $@ $^ $(ULOPTS) -lpthread
+ifeq ($(ARCH),ppc64)
+install_xutils: ldlconfig fattach fdetach
+else
install_xutils: ldltest ldlconfig fattach fdetach
+endif
$(Q)install -d $(DESTDIR)$(sbindir)
$(Q)install $^ $(DESTDIR)$(sbindir)
diff -Naur LiS-2.18-orig/modules/.config LiS-2.18-RHEL4/modules/.config
--- LiS-2.18-orig/modules/.config 2004-09-10 13:06:49.000000000 -0400
+++ LiS-2.18-RHEL4/modules/.config 2005-04-11 16:39:53.758957792 -0400
@@ -36,6 +36,9 @@
CPPFLAGS += -D__KERNEL__ -I$(KSRC)/include
CFLAGS := $(subst -Iinclude,-I$(KSRC)/include,$(CFLAGS))
CFLAGS += -O2
+ifeq ($(ARCH),ppc64)
+CFLAGS += -m64 -msoft-float -pipe -Wno-uninitialized -mminimal-toc -mtraceback=none -mcall-aixdesc -mtune=power4 -fno-unit-at-a-time
+endif
c_flags += $(CPPFLAGS) $(CFLAGS) -I$(KSRC)/include
LDFLAGS_MODULE = -r
diff -Naur LiS-2.18-orig/head/version.c LiS-2.18-RHEL4/head/version.c
--- LiS-2.18-orig/head/version.c 2004-10-13 12:31:15.000000000 -0400
+++ LiS-2.18-RHEL4/head/version.c 2005-05-12 07:07:07.070707070 -0400
@@ -34,8 +34,8 @@
#ident "@(#) LiS version.c 2.18 10/12/04 16:25:34 "
-char lis_version[] = "2.18.0" ;
-char lis_date[] = "10/13/04" ;
+char lis_version[] = "2.18.0r4" ;
+char lis_date[] = "12/12/05" ;
#if 0