1*d6f2548eSPuranjay Mohan // SPDX-License-Identifier: GPL-2.0 2*d6f2548eSPuranjay Mohan /* Patched function referencing data in an .init section. */ 3*d6f2548eSPuranjay Mohan 4*d6f2548eSPuranjay Mohan static const char __modinfo[] 5*d6f2548eSPuranjay Mohan __attribute__((section(".modinfo"), used, aligned(1))) = "\0name=vmlinux"; 6*d6f2548eSPuranjay Mohan 7*d6f2548eSPuranjay Mohan /* volatile so the read cannot be folded into a constant, leaving no reference */ 8*d6f2548eSPuranjay Mohan static volatile int init_only __attribute__((section(".init.data"), used)) = 5; 9*d6f2548eSPuranjay Mohan target(int x)10*d6f2548eSPuranjay Mohanint target(int x) 11*d6f2548eSPuranjay Mohan { 12*d6f2548eSPuranjay Mohan #ifdef PATCHED 13*d6f2548eSPuranjay Mohan return x + init_only + 1; 14*d6f2548eSPuranjay Mohan #else 15*d6f2548eSPuranjay Mohan return x + init_only; 16*d6f2548eSPuranjay Mohan #endif 17*d6f2548eSPuranjay Mohan } 18