cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mlxsw_lib.sh (1206B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4##############################################################################
      5# Defines
      6
      7if [[ ! -v MLXSW_CHIP ]]; then
      8	MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]')
      9	if [ -z "$MLXSW_CHIP" ]; then
     10		echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command"
     11		exit 1
     12	fi
     13fi
     14
     15MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in
     16			     mlxsw_spectrum)
     17				     echo 1 ;;
     18			     mlxsw_spectrum*)
     19				     echo ${MLXSW_CHIP#mlxsw_spectrum} ;;
     20			     *)
     21				     echo "Couldn't determine Spectrum chip revision." \
     22					  > /dev/stderr ;;
     23		     esac)
     24
     25mlxsw_on_spectrum()
     26{
     27	local rev=$1; shift
     28	local op="=="
     29	local rev2=${rev%+}
     30
     31	if [[ $rev2 != $rev ]]; then
     32		op=">="
     33	fi
     34
     35	((MLXSW_SPECTRUM_REV $op rev2))
     36}
     37
     38__mlxsw_only_on_spectrum()
     39{
     40	local rev=$1; shift
     41	local caller=$1; shift
     42	local src=$1; shift
     43
     44	if ! mlxsw_on_spectrum "$rev"; then
     45		log_test_skip $src:$caller "(Spectrum-$rev only)"
     46		return 1
     47	fi
     48}
     49
     50mlxsw_only_on_spectrum()
     51{
     52	local caller=${FUNCNAME[1]}
     53	local src=${BASH_SOURCE[1]}
     54	local rev
     55
     56	for rev in "$@"; do
     57		if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then
     58			return 0
     59		fi
     60	done
     61
     62	return 1
     63}