1*fbb79ff9SPuranjay Mohan#!/bin/bash 2*fbb79ff9SPuranjay Mohan# SPDX-License-Identifier: GPL-2.0 3*fbb79ff9SPuranjay Mohan# 4*fbb79ff9SPuranjay Mohan# A static local must be correlated with the original, not duplicated: a second 5*fbb79ff9SPuranjay Mohan# copy would discard the state the running kernel accumulated. 6*fbb79ff9SPuranjay Mohan 7*fbb79ff9SPuranjay Mohan. "$(dirname "$0")/../lib.sh" 8*fbb79ff9SPuranjay Mohan 9*fbb79ff9SPuranjay Mohansetup 10*fbb79ff9SPuranjay Mohanbuild_pair static_local.c 11*fbb79ff9SPuranjay Mohan 12*fbb79ff9SPuranjay Mohanin_symbols orig.o | grep -q 'counter' || 13*fbb79ff9SPuranjay Mohan probe_skip "compiler emitted no distinct static local symbol" 14*fbb79ff9SPuranjay Mohan 15*fbb79ff9SPuranjay Mohanrun_diff 16*fbb79ff9SPuranjay Mohanassert_patched target 17*fbb79ff9SPuranjay Mohan 18*fbb79ff9SPuranjay Mohanout_symbols | grep -q '\.klp\.sym\..*\.counter' || 19*fbb79ff9SPuranjay Mohan fail "static local not referenced through a klp relocation" 20*fbb79ff9SPuranjay Mohan 21*fbb79ff9SPuranjay Mohanout_symbols | grep 'counter' | grep -qvE 'UND|\.klp\.(sym|tombstone)' && 22*fbb79ff9SPuranjay Mohan fail "static local was given a fresh definition" 23*fbb79ff9SPuranjay Mohan 24*fbb79ff9SPuranjay Mohanpass "static local correlated rather than duplicated" 25