[IA64] allow OEM written modules to make calls to ia64 OEM SAL functions.

[IA64] allow OEM written modules to make calls to ia64 OEM SAL functions.

Post by Christoph » Sun, 05 Sep 2004 18:40:06



SGI has stated they have propritary modules that need this, that's why it's
got added despite my objections.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://www.yqcomputer.com/
Please read the FAQ at http://www.yqcomputer.com/
 
 
 

[IA64] allow OEM written modules to make calls to ia64 OEM SAL functions.

Post by Arjan van » Sun, 05 Sep 2004 18:50:04


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://www.yqcomputer.com/
Please read the FAQ at http://www.yqcomputer.com/




if there are no open source modules that use these exports I would like to
ask these exports to be undone again..
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBOYzoxULwo51rQBIRAo6hAJ4ilPpLuSNV1l90m7Ny8qS/kdGM+ACghc4u
2KTv4teNQtvjVVYOmN+QWJ4=
=ydbT
-----END PGP SIGNATURE-----

 
 
 

[IA64] allow OEM written modules to make calls to ia64 OEM SAL functions.

Post by Arjan van » Mon, 06 Sep 2004 07:40:09

On Sat, Sep 04, 2004 at 03:29:49PM -0700, Andrew Morton wrote:

well all that is needed is to revert changeset
1.1803.128.1 since that is the entire and exclusive purpose of this
changeset.. but for your convenience below

--- b/arch/ia64/kernel/sal.c 2004-09-03 15:07:22 -07:00
+++ a/arch/ia64/kernel/sal.c 2004-09-03 15:07:22 -07:00
@@ -10,7 +10,6 @@

#include <linux/kernel.h>
#include <linux/init.h>
-#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/string.h>

@@ -263,40 +262,3 @@
p += SAL_DESC_SIZE(*p);
}
}
-
-int
-ia64_sal_oemcall(struct ia64_sal_retval *isrvp, u64 oemfunc, u64 arg1,
- u64 arg2, u64 arg3, u64 arg4, u64 arg5, u64 arg6, u64 arg7)
-{
- if (oemfunc < IA64_SAL_OEMFUNC_MIN || oemfunc > IA64_SAL_OEMFUNC_MAX)
- return -1;
- SAL_CALL(*isrvp, oemfunc, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
- return 0;
-}
-EXPORT_SYMBOL(ia64_sal_oemcall);
-
-int
-ia64_sal_oemcall_nolock(struct ia64_sal_retval *isrvp, u64 oemfunc, u64 arg1,
- u64 arg2, u64 arg3, u64 arg4, u64 arg5, u64 arg6,
- u64 arg7)
-{
- if (oemfunc < IA64_SAL_OEMFUNC_MIN || oemfunc > IA64_SAL_OEMFUNC_MAX)
- return -1;
- SAL_CALL_NOLOCK(*isrvp, oemfunc, arg1, arg2, arg3, arg4, arg5, arg6,
- arg7);
- return 0;
-}
-EXPORT_SYMBOL(ia64_sal_oemcall_nolock);
-
-int
-ia64_sal_oemcall_reentrant(struct ia64_sal_retval *isrvp, u64 oemfunc,
- u64 arg1, u64 arg2, u64 arg3, u64 arg4, u64 arg5,
- u64 arg6, u64 arg7)
-{
- if (oemfunc < IA64_SAL_OEMFUNC_MIN || oemfunc > IA64_SAL_OEMFUNC_MAX)
- return -1;
- SAL_CALL_REENTRANT(*isrvp, oemfunc, arg1, arg2, arg3, arg4, arg5, arg6,
- arg7);
- return 0;
-}
-EXPORT_SYMBOL(ia64_sal_oemcall_reentrant);
reverted:
--- b/include/asm-ia64/sal.h 2004-09-03 15:07:22 -07:00
+++ a/include/asm-ia64/sal.h 2004-09-03 15:07:22 -07:00
@@ -819,16 +819,6 @@
long r8; long r9; long r10; long r11;
};

-#define IA64_SAL_OEMFUNC_MIN 0x02000000
-#define IA64_SAL_OEMFUNC_MAX 0x03ffffff
-
-extern int ia64_sal_oemcall(struct ia64_sal_retval *, u64, u64, u64, u64, u64,
- u64, u64, u64);
-extern int ia64_sal_oemcall_nolock(struct ia64_sal_retval *, u64, u64, u64,
- u64, u64, u64, u64, u64);
-extern int ia64_sal_oemcall_reentrant(struct ia64_sal_retval *, u64, u64, u64,
- u64, u64, u64, u64, u64);
-
#endif /* __ASSEMBLY__ */

#endif /* _ASM_IA64_SAL_H */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
 
 
 

[IA64] allow OEM written modules to make calls to ia64 OEM SAL functions.

Post by Robin Hol » Thu, 09 Sep 2004 01:40:09

an we hold off on reverting this until more discussion occurs.

SGI introduced this as part of our work to push the open source XPC code
into the kernel. Tony Luck included the patch after discussions about
XPC splintered into a seperate discussion about what was acceptable for
the SAL call. SGI had originally intended this to be part of that
patch set.

The OEM functions that are referred to do things like modify memory
timeout values on OEM equipment, adjust memory protections, inject double
bit errors to test error recovery, and adjust queue lengths inside
of hardware. These things are extremely OEM specific. Making the
SAL calls only rely on "Kernel Code" for the definition of the kernel
function calls which is a gateway into SAL.

What the kernel's SAL call is providing to the module is a pointer to
a generic function entry point for SAL that was provided to the kernel
by SAL. This is the proscribed method defined in the Intel Itanium
System Abstraction Layer specification available on the Intel web site.
The kernel has no knowledge of what SAL will do with this function
code nor what the caller is asking. In essence this is equivalent to
a PCI command.

Having this functionality in the kernel is important to SGI even
before the code is written. This allows us to use the SAL call from
error injection diagnostics on older kernels. The code limits the SAL
functions to those in the OEM range as defined by the Intel specification.

Robin Holt

On Sun, Sep 05, 2004 at 12:36:42AM +0200, Arjan van de Ven wrote:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/