What is OE + on Linux?

What is the meaning of (OE+) in the following?

 $ sudo cat /proc/modules | grep hello //hello_world is a kernel module created by me. hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+) 

Here is my situation.

I fixed the Linux kernel function load_module() , which is called from finit_module() , the system call used by insmod to insert kernel modules. The patch searches for a specific module that I created (called hello_world ), and when it does, it prevents the call to do_init_module() and returns 0 instead. do_init_call() is responsible for calling the init module function and setting the module state ( MODULE_STATE_LIVE ).

When I read /proc/modules , the status of the Loading module is expected. However, I do not understand the meaning of (OE+) at the end of the output. It is not displayed with any other module, as verified by the following command.

 $ sudo cat /proc/modules | grep OE hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+) 

I am using the Linux kernel v4.7.3 .

Update

All this happens on the Qemu virtual machine. On a host that runs Linux 4.4.0-36-generic (Ubuntu) , I get the following.

 $ sudo cat /proc/modules | grep OE vboxpci 24576 0 - Live 0xffffffffc082a000 (OE) vboxnetadp 28672 0 - Live 0xffffffffc066e000 (OE) vboxnetflt 28672 0 - Live 0xffffffffc0635000 (OE) vboxdrv 454656 3 vboxpci,vboxnetadp,vboxnetflt, Live 0xffffffffc0783000 (OE) sep4_0 671744 0 - Live 0xffffffffc06de000 (OE) socperf2_0 36864 1 sep4_0, Live 0xffffffffc0660000 (OE) pax 16384 0 - Live 0xffffffffc05f9000 (OE) 
+5
source share
1 answer

O means that the Out-of-tree module is loaded.
E means Unsigned module is loaded.
+ means that the module is loading.
- means that the module is unloading.

The source code print_modules () , then module_flags () , and then print_tainted () functions can be useful in determining the meaning of these and some other flags. Take a look at the comment just above print_tainted() . Hope this helps.

+4
source

All Articles