diff --git a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c
index 66d8372..656db77 100644
--- a/libkmod/libkmod-config.c
+++ b/libkmod/libkmod-config.c
@@ -44,12 +44,12 @@
 };
 
 const char *kmod_alias_get_name(const struct kmod_list *l) {
-	struct kmod_alias *alias = l->data;
+	const struct kmod_alias *alias = l->data;
 	return alias->name;
 }
 
 const char *kmod_alias_get_modname(const struct kmod_list *l) {
-	struct kmod_alias *alias = l->data;
+	const struct kmod_alias *alias = l->data;
 	return alias->modname;
 }
 
@@ -261,7 +261,7 @@
 {
 
 	size_t i, n = 0;
-	char **files = NULL;
+	const char **files;
 	int err = 0;
 	struct kmod_list *list = NULL, *l;
 
diff --git a/libkmod/libkmod-list.c b/libkmod/libkmod-list.c
index d9caba0..333a54c 100644
--- a/libkmod/libkmod-list.c
+++ b/libkmod/libkmod-list.c
@@ -30,7 +30,7 @@
 	return node;
 }
 
-static inline struct list_node *list_node_next(struct list_node *node)
+static inline struct list_node *list_node_next(const struct list_node *node)
 {
 	if (node == NULL)
 		return NULL;
@@ -38,7 +38,7 @@
 	return node->next;
 }
 
-static inline struct list_node *list_node_prev(struct list_node *node)
+static inline struct list_node *list_node_prev(const struct list_node *node)
 {
 	if (node == NULL)
 		return NULL;
@@ -71,7 +71,7 @@
 	return node->prev;
 }
 
-struct kmod_list *kmod_list_append(struct kmod_list *list, void *data)
+struct kmod_list *kmod_list_append(struct kmod_list *list, const void *data)
 {
 	struct kmod_list *new;
 
@@ -79,13 +79,13 @@
 	if (new == NULL)
 		return NULL;
 
-	new->data = data;
+	new->data = (void *)data;
 	list_node_append(list ? &list->node : NULL, &new->node);
 
 	return list ? list : new;
 }
 
-struct kmod_list *kmod_list_prepend(struct kmod_list *list, void *data)
+struct kmod_list *kmod_list_prepend(struct kmod_list *list, const void *data)
 {
 	struct kmod_list *new;
 
@@ -93,7 +93,7 @@
 	if (new == NULL)
 		return NULL;
 
-	new->data = data;
+	new->data = (void *)data;
 	list_node_append(list ? &list->node : NULL, &new->node);
 
 	return new;
@@ -166,8 +166,8 @@
 	return list;
 }
 
-KMOD_EXPORT struct kmod_list *kmod_list_prev(struct kmod_list *list,
-							struct kmod_list *curr)
+KMOD_EXPORT struct kmod_list *kmod_list_prev(const struct kmod_list *list,
+							const struct kmod_list *curr)
 {
 	if (list == NULL || curr == NULL)
 		return NULL;
@@ -178,8 +178,8 @@
 	return container_of(curr->node.prev, struct kmod_list, node);
 }
 
-KMOD_EXPORT struct kmod_list *kmod_list_next(struct kmod_list *list,
-							struct kmod_list *curr)
+KMOD_EXPORT struct kmod_list *kmod_list_next(const struct kmod_list *list,
+							const struct kmod_list *curr)
 {
 	if (list == NULL || curr == NULL)
 		return NULL;
diff --git a/libkmod/libkmod-loaded.c b/libkmod/libkmod-loaded.c
index b149765..cda9012 100644
--- a/libkmod/libkmod-loaded.c
+++ b/libkmod/libkmod-loaded.c
@@ -210,7 +210,7 @@
 						const char **deps,
 						uintptr_t *addr)
 {
-	struct kmod_loaded_module *m;
+	const struct kmod_loaded_module *m;
 
 	if (entry == NULL)
 		return -ENOENT;
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index 552d9ea..969d304 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -263,25 +263,25 @@
 /*
  * We don't increase the refcount. Maybe we should.
  */
-KMOD_EXPORT struct kmod_list *kmod_module_get_dependency(struct kmod_module *mod)
+KMOD_EXPORT struct kmod_list *kmod_module_get_dependency(const struct kmod_module *mod)
 {
 	// FIXME calculate dependency if it's not initialized
 	return mod->dep;
 }
 
-KMOD_EXPORT struct kmod_module *kmod_module_get_module(struct kmod_list *l)
+KMOD_EXPORT struct kmod_module *kmod_module_get_module(const struct kmod_list *l)
 {
 	struct kmod_module *mod = l->data;
 	return kmod_module_ref(mod);
 }
 
-KMOD_EXPORT const char *kmod_module_get_name(struct kmod_module *mod)
+KMOD_EXPORT const char *kmod_module_get_name(const struct kmod_module *mod)
 {
 	// FIXME calculate name if name == NULL
 	return mod->name;
 }
 
-KMOD_EXPORT const char *kmod_module_get_path(struct kmod_module *mod)
+KMOD_EXPORT const char *kmod_module_get_path(const struct kmod_module *mod)
 {
 	// FIXME calculate path if path == NULL
 	return mod->path;
diff --git a/libkmod/libkmod-private.h b/libkmod/libkmod-private.h
index 1d32e8b..34b09ef 100644
--- a/libkmod/libkmod-private.h
+++ b/libkmod/libkmod-private.h
@@ -46,8 +46,8 @@
 	void *data;
 };
 
-struct kmod_list *kmod_list_append(struct kmod_list *list, void *data) __must_check;
-struct kmod_list *kmod_list_prepend(struct kmod_list *list, void *data) __must_check;
+struct kmod_list *kmod_list_append(struct kmod_list *list, const void *data) __must_check;
+struct kmod_list *kmod_list_prepend(struct kmod_list *list, const void *data) __must_check;
 struct kmod_list *kmod_list_remove(struct kmod_list *list);
 struct kmod_list *kmod_list_remove_data(struct kmod_list *list,
 					const void *data) __must_check;
@@ -55,7 +55,7 @@
 						unsigned int n) __must_check;
 
 /* libkmod.c */
-const char *kmod_get_dirname(struct kmod_ctx *ctx) __attribute__((nonnull(1)));
+const char *kmod_get_dirname(const struct kmod_ctx *ctx) __attribute__((nonnull(1)));
 int kmod_lookup_alias_from_config(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
 int kmod_lookup_alias_from_symbols_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
 int kmod_lookup_alias_from_aliases_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
index 7dd4579..c9966e0 100644
--- a/libkmod/libkmod.c
+++ b/libkmod/libkmod.c
@@ -50,8 +50,8 @@
 	void (*log_fn)(struct kmod_ctx *ctx,
 			int priority, const char *file, int line,
 			const char *fn, const char *format, va_list args);
-	void *userdata;
-	const char *dirname;
+	const void *userdata;
+	char *dirname;
 	int log_priority;
 	struct kmod_config config;
 };
@@ -75,7 +75,7 @@
 	vfprintf(stderr, format, args);
 }
 
-const char *kmod_get_dirname(struct kmod_ctx *ctx)
+const char *kmod_get_dirname(const struct kmod_ctx *ctx)
 {
 	return ctx->dirname;
 }
@@ -93,7 +93,7 @@
 {
 	if (ctx == NULL)
 		return NULL;
-	return ctx->userdata;
+	return (void *)ctx->userdata;
 }
 
 /**
@@ -103,7 +103,7 @@
  *
  * Store custom @userdata in the library context.
  **/
-KMOD_EXPORT void kmod_set_userdata(struct kmod_ctx *ctx, void *userdata)
+KMOD_EXPORT void kmod_set_userdata(struct kmod_ctx *ctx, const void *userdata)
 {
 	if (ctx == NULL)
 		return;
@@ -129,7 +129,7 @@
 
 static const char *dirname_default_prefix = "/lib/modules";
 
-static const char *get_kernel_release(const char *dirname)
+static char *get_kernel_release(const char *dirname)
 {
 	struct utsname u;
 	char *p;
@@ -217,7 +217,7 @@
 	if (--ctx->refcount > 0)
 		return ctx;
 	INFO(ctx, "context %p released\n", ctx);
-	free((char *)ctx->dirname);
+	free(ctx->dirname);
 	kmod_free_config(ctx, &ctx->config);
 	free(ctx);
 	return NULL;
diff --git a/libkmod/libkmod.h b/libkmod/libkmod.h
index 923f7ab..d7687be 100644
--- a/libkmod/libkmod.h
+++ b/libkmod/libkmod.h
@@ -46,7 +46,7 @@
 int kmod_get_log_priority(const struct kmod_ctx *ctx);
 void kmod_set_log_priority(struct kmod_ctx *ctx, int priority);
 void *kmod_get_userdata(const struct kmod_ctx *ctx);
-void kmod_set_userdata(struct kmod_ctx *ctx, void *userdata);
+void kmod_set_userdata(struct kmod_ctx *ctx, const void *userdata);
 
 /*
  * kmod_list
@@ -54,10 +54,10 @@
  * access to kmod generated lists
  */
 struct kmod_list;
-struct kmod_list *kmod_list_next(struct kmod_list *first_entry,
-						struct kmod_list *list_entry);
-struct kmod_list *kmod_list_prev(struct kmod_list *first_entry,
-						struct kmod_list *list_entry);
+struct kmod_list *kmod_list_next(const struct kmod_list *first_entry,
+						const struct kmod_list *list_entry);
+struct kmod_list *kmod_list_prev(const struct kmod_list *first_entry,
+						const struct kmod_list *list_entry);
 #define kmod_list_foreach(list_entry, first_entry) \
 	for (list_entry = first_entry; \
 		list_entry != NULL; \
@@ -108,14 +108,14 @@
 struct kmod_module *kmod_module_ref(struct kmod_module *mod);
 struct kmod_module *kmod_module_unref(struct kmod_module *mod);
 int kmod_module_unref_list(struct kmod_list *list);
-struct kmod_module *kmod_module_get_module(struct kmod_list *l);
-struct kmod_list *kmod_module_get_dependency(struct kmod_module *mod);
+struct kmod_module *kmod_module_get_module(const struct kmod_list *l);
+struct kmod_list *kmod_module_get_dependency(const struct kmod_module *mod);
 
 int kmod_module_remove_module(struct kmod_module *mod, unsigned int flags);
 int kmod_module_insert_module(struct kmod_module *mod, unsigned int flags);
 
-const char *kmod_module_get_name(struct kmod_module *mod);
-const char *kmod_module_get_path(struct kmod_module *mod);
+const char *kmod_module_get_name(const struct kmod_module *mod);
+const char *kmod_module_get_path(const struct kmod_module *mod);
 
 #ifdef __cplusplus
 } /* extern "C" */
