diff --git libdwfl/Makefile.in libdwfl/Makefile.in
index 278b434..a2382bf 100644
--- libdwfl/Makefile.in
+++ libdwfl/Makefile.in
@@ -113,7 +113,7 @@ am__libdwfl_a_SOURCES_DIST = dwfl_begin.c dwfl_end.c dwfl_error.c \
 	dwfl_getmodules.c dwfl_getdwarf.c dwfl_module_getdwarf.c \
 	dwfl_module_getelf.c dwfl_validate_address.c argp-std.c \
 	find-debuginfo.c dwfl_build_id_find_elf.c \
-	dwfl_build_id_find_debuginfo.c linux-kernel-modules.c \
+	dwfl_build_id_find_debuginfo.c \
 	linux-proc-maps.c dwfl_addrmodule.c dwfl_addrdwarf.c cu.c \
 	dwfl_module_nextcu.c dwfl_nextcu.c dwfl_cumodule.c \
 	dwfl_module_addrdie.c dwfl_addrdie.c lines.c dwfl_lineinfo.c \
@@ -142,7 +142,7 @@ am_libdwfl_a_OBJECTS = dwfl_begin.$(OBJEXT) dwfl_end.$(OBJEXT) \
 	dwfl_validate_address.$(OBJEXT) argp-std.$(OBJEXT) \
 	find-debuginfo.$(OBJEXT) dwfl_build_id_find_elf.$(OBJEXT) \
 	dwfl_build_id_find_debuginfo.$(OBJEXT) \
-	linux-kernel-modules.$(OBJEXT) linux-proc-maps.$(OBJEXT) \
+	linux-proc-maps.$(OBJEXT) \
 	dwfl_addrmodule.$(OBJEXT) dwfl_addrdwarf.$(OBJEXT) \
 	cu.$(OBJEXT) dwfl_module_nextcu.$(OBJEXT) \
 	dwfl_nextcu.$(OBJEXT) dwfl_cumodule.$(OBJEXT) \
@@ -402,7 +402,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c \
 	dwfl_getmodules.c dwfl_getdwarf.c dwfl_module_getdwarf.c \
 	dwfl_module_getelf.c dwfl_validate_address.c argp-std.c \
 	find-debuginfo.c dwfl_build_id_find_elf.c \
-	dwfl_build_id_find_debuginfo.c linux-kernel-modules.c \
+	dwfl_build_id_find_debuginfo.c \
 	linux-proc-maps.c dwfl_addrmodule.c dwfl_addrdwarf.c cu.c \
 	dwfl_module_nextcu.c dwfl_nextcu.c dwfl_cumodule.c \
 	dwfl_module_addrdie.c dwfl_addrdie.c lines.c dwfl_lineinfo.c \
@@ -540,7 +540,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lines.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link_map.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux-core-attach.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux-kernel-modules.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux-pid-attach.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux-proc-maps.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzma.Po@am__quote@
diff --git libdwfl/argp-std.c libdwfl/argp-std.c
index 42b7e78..7892907 100644
--- libdwfl/argp-std.c
+++ libdwfl/argp-std.c
@@ -52,9 +52,6 @@ static const struct argp_option options[] =
   { "linux-process-map", 'M', "FILE", 0,
     N_("Find addresses in files mapped as read from FILE"
        " in Linux /proc/PID/maps format"), 0 },
-  { "kernel", 'k', NULL, 0, N_("Find addresses in the running kernel"), 0 },
-  { "offline-kernel", 'K', "RELEASE", OPTION_ARG_OPTIONAL,
-    N_("Kernel with all modules"), 0 },
   { "debuginfo-path", OPT_DEBUGINFO, "PATH", 0,
     N_("Search path for separate debuginfo files"), 0 },
   { NULL, 0, NULL, 0, NULL, 0 }
@@ -81,15 +78,6 @@ static const Dwfl_Callbacks proc_callbacks =
     .find_elf = INTUSE(dwfl_linux_proc_find_elf),
   };
 
-static const Dwfl_Callbacks kernel_callbacks =
-  {
-    .find_debuginfo = INTUSE(dwfl_standard_find_debuginfo),
-    .debuginfo_path = &debuginfo_path,
-
-    .find_elf = INTUSE(dwfl_linux_kernel_find_elf),
-    .section_address = INTUSE(dwfl_linux_kernel_module_section_address),
-  };
-
 /* Structure held at state->HOOK.  */
 struct parse_opt
 {
@@ -219,43 +207,6 @@ parse_opt (int key, char *arg, struct argp_state *state)
       }
       break;
 
-    case 'k':
-      {
-	struct parse_opt *opt = state->hook;
-	if (opt->dwfl == NULL)
-	  {
-	    Dwfl *dwfl = INTUSE(dwfl_begin) (&kernel_callbacks);
-	    int result = INTUSE(dwfl_linux_kernel_report_kernel) (dwfl);
-	    if (result != 0)
-	      return fail (dwfl, result, _("cannot load kernel symbols"));
-	    result = INTUSE(dwfl_linux_kernel_report_modules) (dwfl);
-	    if (result != 0)
-	      /* Non-fatal to have no modules since we do have the kernel.  */
-	      failure (dwfl, result, _("cannot find kernel modules"));
-	    opt->dwfl = dwfl;
-	  }
-	else
-	  goto toomany;
-      }
-      break;
-
-    case 'K':
-      {
-	struct parse_opt *opt = state->hook;
-	if (opt->dwfl == NULL)
-	  {
-	    Dwfl *dwfl = INTUSE(dwfl_begin) (&offline_callbacks);
-	    int result = INTUSE(dwfl_linux_kernel_report_offline) (dwfl, arg,
-								   NULL);
-	    if (result != 0)
-	      return fail (dwfl, result, _("cannot find kernel or modules"));
-	    opt->dwfl = dwfl;
-	  }
-	else
-	  goto toomany;
-      }
-      break;
-
     case ARGP_KEY_SUCCESS:
       {
 	struct parse_opt *opt = state->hook;
