|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
#!/bin/bash
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
#
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# Bring up the kernel RDMA stack
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
#
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# This is usually run automatically by systemd after a hardware activation
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# event in udev has triggered a start of the rdma.service unit
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
#
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
shopt -s nullglob
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
CONFIG=/etc/rdma/rdma.conf
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
MTRR_SCRIPT=/usr/libexec/rdma-fixup-mtrr.awk
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES=""
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_CORE_USER_MODULES="ib_umad ib_uverbs ib_ucm rdma_ucm"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_CORE_CM_MODULES="iw_cm ib_cm rdma_cm"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_CORE_MODULES="ib_core ib_mad ib_sa ib_addr"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ -f $CONFIG ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
. $CONFIG
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ "${RDS_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
IPOIB_LOAD=yes
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ "${IPOIB_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES="ib_ipoib"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
b5e6e42 |
if [ "${RDS_LOAD}" == "yes" -a -f /lib/modules/`uname -r`/kernel/net/rds/rds.ko ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES rds"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
if [ -f /lib/modules/`uname -r`/kernel/net/rds/rds_tcp.ko ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES rds_tcp"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
if [ -f /lib/modules/`uname -r`/kernel/net/rds/rds_rdma.ko ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES rds_rdma"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ "${SRP_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES ib_srp"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
if [ "${SRPT_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES ib_srpt"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ "${ISER_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES ib_iser"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
if [ "${ISERT_LOAD}" == "yes" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
LOAD_ULP_MODULES="$LOAD_ULP_MODULES ib_isert"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
2641c6e |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
else
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
LOAD_ULP_MODULES="ib_ipoib"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# If module $1 is loaded return - 0 else - 1
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
is_module()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
/sbin/lsmod | grep -w "$1" > /dev/null 2>&1
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
3eee2b8 |
return $?
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
local RC=0
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
for module in $*; do
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if ! is_module $module; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
/sbin/modprobe $module
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
res=$?
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $res ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ $res -ne 0 ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo -n "Failed to load module $mod"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
done
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
return $RC
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# This function is a horrible hack to work around BIOS authors that should
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# be shot. Specifically, certain BIOSes will map the entire 4GB address
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# space as write-back cacheable when the machine has 4GB or more of RAM, and
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# then they will exclude the reserved PCI I/O addresses from that 4GB
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# cacheable mapping by making on overlapping uncacheable mapping. However,
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# once you do that, it is then impossible to set *any* of the PCI I/O
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# address space as write-combining. This is an absolute death-knell to
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# certain IB hardware. So, we unroll this mapping here. Instead of
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# punching a hole in a single 4GB mapping, we redo the base 4GB mapping as
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# a series of discreet mappings that effectively are the same as the 4GB
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# mapping minus the hole, and then we delete the uncacheable mappings that
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# are used to punch the hole. This then leaves the PCI I/O address space
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# unregistered (which defaults it to uncacheable), but available for
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# write-combining mappings where needed.
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
check_mtrr_registers()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# If we actually change the mtrr registers, then the awk script will
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# return true, and we need to unload the ib_ipath module if it's already
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# loaded. The udevtrigger in load_hardware_modules will immediately
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# reload the ib_ipath module for us, so there shouldn't be a problem.
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
3eee2b8 |
[ -f /proc/mtrr -a -f $MTRR_SCRIPT ] &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
awk -f $MTRR_SCRIPT /proc/mtrr 2>/dev/null &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if is_module ib_ipath; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
/sbin/rmmod ib_ipath
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_hardware_modules()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
local -i RC=0
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
[ "$FIXUP_MTRR_REGS" = "yes" ] && check_mtrr_registers
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# We match both class NETWORK and class INFINIBAND devices since our
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# iWARP hardware is listed under class NETWORK. The side effect of
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# this is that we might cause a non-iWARP network driver to be loaded.
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
udevadm trigger --subsystem-match=pci --attr-nomatch=driver --attr-match=class=0x020000 --attr-match=class=0x0c0600
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
udevadm settle
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ -r /proc/device-tree ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ -n "`ls /proc/device-tree | grep lhca`" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if ! is_module ib_ehca; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules ib_ehca
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC+=$?
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
if is_module be2net -a ! is_module ocrdma; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
load_modules ocrdma
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
RC+=$?
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
1cfb1e8 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
return $RC
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
errata_58()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# Check AMD chipset issue Errata #58
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if test -x /sbin/lspci && test -x /sbin/setpci; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if ( /sbin/lspci -nd 1022:1100 | grep "1100" > /dev/null ) &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
( /sbin/lspci -nd 1022:7450 | grep "7450" > /dev/null ) &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
( /sbin/lspci -nd 15b3:5a46 | grep "5a46" > /dev/null ); then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
CURVAL=`/sbin/setpci -d 1022:1100 69`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
for val in $CURVAL
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
do
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ "${val}" != "c0" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
/sbin/setpci -d 1022:1100 69=c0
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ $? -eq 0 ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
break
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
else
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo "Failed to apply AMD-8131 Errata #58 workaround"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
done
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
errata_56()
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
{
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# Check AMD chipset issue Errata #56
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if test -x /sbin/lspci && test -x /sbin/setpci; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if ( /sbin/lspci -nd 1022:1100 | grep "1100" > /dev/null ) &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
( /sbin/lspci -nd 1022:7450 | grep "7450" > /dev/null ) &&
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
( /sbin/lspci -nd 15b3:5a46 | grep "5a46" > /dev/null ); then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
bus=""
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# Look for devices AMD-8131
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
for dev in `/sbin/setpci -v -f -d 1022:7450 19 | cut -d':' -f1,2`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
do
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
bus=`/sbin/setpci -s $dev 19`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
rev=`/sbin/setpci -s $dev 8`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# Look for Tavor attach to secondary bus of this devices
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
for device in `/sbin/setpci -f -s $bus: -d 15b3:5a46 19`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
do
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ $rev -lt 13 ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
/sbin/setpci -d 15b3:5a44 72=14
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ $? -eq 0 ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
break
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
else
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo "Failed to apply AMD-8131 Errata #56 workaround"
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
else
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
continue
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# If more than one device is on the bus the issue a
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
# warning
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
num=`/sbin/setpci -f -s $bus: 0 | wc -l | sed 's/\ *//g'`
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
if [ $num -gt 1 ]; then
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo "Warning: your current PCI-X configuration might be incorrect."
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
echo "see AMD-8131 Errata 56 for more details."
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
done
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
done
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
}
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_hardware_modules
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $? ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules $LOAD_CORE_MODULES
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $? ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules $LOAD_CORE_CM_MODULES
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $? ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules $LOAD_CORE_USER_MODULES
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $? ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
load_modules $LOAD_ULP_MODULES
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
RC=$[ $RC + $? ]
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
3eee2b8 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
errata_58
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
errata_56
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
3eee2b8 |
|
|
![](https://seccdn.libravatar.org/avatar/b96913928c7076c00b800ec48ebf87f9d2e1b9a5be726414264bc4d3dd8c9adc?s=16&d=retro) |
ba9c021 |
exit $RC
|