libs-y         += arch/s390/lib/
 drivers-y      += drivers/s390/
 
-# must be linked after kernel
-drivers-$(CONFIG_OPROFILE)     += arch/s390/oprofile/
-
 boot           := arch/s390/boot
 syscalls       := arch/s390/kernel/syscalls
 tools          := arch/s390/tools
 
+++ /dev/null
-# SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_OPROFILE) += oprofile.o
-
-DRIVER_OBJS = $(addprefix ../../../drivers/oprofile/, \
-               oprof.o cpu_buffer.o buffer_sync.o \
-               event_buffer.o oprofile_files.o \
-               oprofilefs.o oprofile_stats.o  \
-               timer_int.o )
-
-oprofile-y :=  $(DRIVER_OBJS) init.o
 
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0
-/*
- * S390 Version
- *   Copyright IBM Corp. 2002, 2011
- *   Author(s): Thomas Spatzier (tspat@de.ibm.com)
- *   Author(s): Mahesh Salgaonkar (mahesh@linux.vnet.ibm.com)
- *   Author(s): Heinz Graalfs (graalfs@linux.vnet.ibm.com)
- *   Author(s): Andreas Krebbel (krebbel@linux.vnet.ibm.com)
- *
- * @remark Copyright 2002-2011 OProfile authors
- */
-
-#include <linux/oprofile.h>
-#include <linux/init.h>
-#include <asm/processor.h>
-#include <asm/unwind.h>
-
-static void s390_backtrace(struct pt_regs *regs, unsigned int depth)
-{
-       struct unwind_state state;
-
-       unwind_for_each_frame(&state, current, regs, 0) {
-               if (depth-- == 0)
-                       break;
-               oprofile_add_trace(state.ip);
-       }
-}
-
-int __init oprofile_arch_init(struct oprofile_operations *ops)
-{
-       ops->backtrace = s390_backtrace;
-       return 0;
-}
-
-void oprofile_arch_exit(void)
-{
-}