[kmods PATCH] linux/igb_uio: allow modules install

Ferruh Yigit ferruh.yigit at xilinx.com
Tue Jun 14 12:27:50 CEST 2022


On 6/14/2022 11:25 AM, Ferruh Yigit wrote:
> On 4/12/2022 2:14 PM, Bruce Richardson wrote:
>> CAUTION: This message has originated from an External Source. Please 
>> use proper judgment and caution when opening attachments, clicking 
>> links, or responding to this email.
>>
>>
>> For those still using the "igb_uio" kernel module, there may be
>> occasions where the module is installed in /lib/modules/$VERSION folder
>> rather than being insmod'ed from the build directory. To support this, a
>> number of changes are needed to the makefile:
>>
>> * Change the "clean" command to a generic wildcard target where that
>>    target is just passed through to the top-level kernel makefile. This
>>    should allow all standard kernel module targets, including "clean" and
>>    "modules_install" to work.
> 
> ack
> 
>> * To install in /lib/modules, root permissions are needed, so it is
>>    likely that users may try installing the module using "sudo". However,
>>    under sudo there is often no $PWD environment variable, breaking the
>>    build. This can be fixed by changing the environment variable $PWD to
>>    the make built-in variable "CURDIR"[1].
> 
> It can be possible to use shell PWD:
> 
> "make -C $(KSRC)/ M=$$PWD"
> 
> or
> 
> "
> PWD := $(shell pwd)
> 
> all:
>      make -C $(KSRC)/ M=$(PWD)
> "
> 
> But '$(CURDIR)' also seems doing the job, so lgtm.
> 
>> * As a cleanup, the actual kernel module path is got directly by make
>>    from the shell, rather than relying on the shell substitution later
>>    when making the recursive make call. This improves things slightly for
>>    the user as the full recursive command is visible, with the kernel
>>    version appearing in place of `uname -r` in the output.
>>
> 
> ack
> 
>> [1] While neither PWD nor CURDIR will work correctly in the case where
>> one is building outside of the sources directory, this is an edge case,
>> and a simple replacement of PWD by CURDIR keeps things simple while
>> adding support for "sudo".
>>
>> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> 
> Acked-by: Ferruh Yigit <ferruh.yigit at xilinx.com>
> 
>> ---
>>   linux/igb_uio/Makefile | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/linux/igb_uio/Makefile b/linux/igb_uio/Makefile
>> index 09ae5d9..bd2e356 100644
>> --- a/linux/igb_uio/Makefile
>> +++ b/linux/igb_uio/Makefile
>> @@ -1,7 +1,7 @@
>> -KSRC ?= /lib/modules/`uname -r`/build
>> +KSRC ?= /lib/modules/$(shell uname -r)/build
>>
>>   all:
>> -       make -C $(KSRC)/ M=$(PWD)
>> +       make -C $(KSRC)/ M=$(CURDIR)
>>
>> -clean:
>> -       make -C $(KSRC)/ M=$(PWD) clean
>> +%:
>> +       make -C $(KSRC)/ M=$(CURDIR) $@
>> -- 
>> 2.32.0
>>
> 

Btw, igb_uio doesn't compile with '5.19.0-rc2',
'pci_set_dma_mask()' & 'pci_set_consistent_dma_mask()' APIs are no more 
exist. 'igb_uio' needs to be updated.


More information about the dev mailing list