Re: memblock_reserve or memblock_remove to reserve a page
Hi Arun, Thanks for your responses. Here's some additional details. We were calling memblock_reserve() very early in the game when even kernel is calling to do the reservation. The reason I think memblock_reserve() was not working was that kernel was already reserving a big chunk (0 to 0xbfff). Our page which was falling in between would become a no-op. Call to request_mem_region() fails when the page is already reserved by the kernel. It's only when we removed it does the call to request_mem_region() succeed. About the corruption, What my understanding was, it cannot be caused by any application, since it will not have any privilege to modify the text segment. But are you saying that any application can still do it via /dev/mem route? In our system we have couple of other suspects as well which can cause such a corruption (DMA, DSP etc), It is unlike a standard linux machine running some application. Another question, will the removed page be off-limits to the buddy allocator as well if we call it soon enough? (That's what it looks like based on our tests but would be good to get a confirmation of it) Since the problem is not easy to reproduce, it's difficult to be certain that we have successfully avoided the corruption. (We ran 300+ iterations of a test successfully. The problem could be seen within 20-80 iterations) -Thanks Nikhil On Mon, Oct 3, 2016 at 6:15 PM, Arun Sudhilalwrote: > On Mon, Oct 3, 2016 at 6:02 PM, Arun Sudhilal wrote: > > Hello Nikhil, > > > > On Wed, Sep 28, 2016 at 6:55 PM, Nikhil Utane > > wrote: > >> base1 = 0xA4D000; size1=0x1000; > >> memblock_reserve (base1, size1); > > Most probably your memblock_reserve() function is not affecting. It > depends on when you are calling this function as explained > earlier(after or before hand-off to buddy allocator). > > Lets say you are calling it pretty late and if > CONFIG_ARCH_DISCARD_MEMBLOCK is disabled in your build, > memblock_reserve() just go ahead and modifies the memblock structures > but does not have any effect as buddy allocator has already taken > control of memory management. That might be the reason you were not > able to make this page reserved. > > >> > >> (In a separate static driver code) > >> request_mem_region_exclusive (0x00A4D000, 4096, "csSIGILL") > > > > Thanks for details. Looks strange. > > One possible case I can think of is, when you use > > request_mem_region_exclusive, user space cannot access it using > > /dev/mem. May be any of your user space task is corrupting this region > > before. now he is not able to access this location because you have > > marked it as EXCLUSIVE for kernel. > > > >> > >> If a driver requests for a memory region, shouldn't the kernel then not > >> allocate it for any other purpose? > > To remove pages from kernel allocation, you need to have only > > successful invocation of memblock_reserve() function. > > > > Regards, > > Arun > > > >> > >> -Regards > >> Nikhil > >> > >> On Wed, Sep 28, 2016 at 3:12 PM, Arun Sudhilal > wrote: > >>> > >>> Hello Nikhil, > >>> > >>> On Wed, Sep 28, 2016 at 2:41 PM, Nikhil Utane > >>> wrote: > >>> > Arun, > >>> > > >>> > What seems to have done the trick is calling memblock_remove() > followed > >>> > by a > >>> > call to request_mem_region(). This creates a hole which can be > confirmed > >>> > in > >>> > the output of /proc/iomem. > >>> > > >>> > Do you see any issue with this approach? > >>> > >>> I really don't know how it works for you. Marking address of a page as > >>> iomem. How buddy allocator ignores this page? > >>> request_mem_region() is a way of managing IO resource memory, to avoid > >>> two drivers using same IO memory. It has not relation with buddy > >>> allocator. > >>> > >>> Can you post code snippet? > >>> > >>> Regards, > >>> Arun > >>> > >>> > > >>> > -Thanks > >>> > Nikhil > >>> > > >>> > On Tue, Sep 27, 2016 at 4:14 PM, Arun Sudhilal > >>> > wrote: > >>> >> > >>> >> Hello Nikhil, > >>> >> > >>> >> On Fri, Sep 9, 2016 at 7:01 AM, Nikhil Utane > >>> >> wrote: > >>> >> > I want to reserve a physical memory page with a fixed PFN. I do > not > >>> >> > want > >>> >> > this page to be used by anyone else. I am calling > memblock_reserve() > >>> >> > to > >>> >> > supposedly reserve the page. I am writing some content into this > >>> >> > page. > >>> >> > What > >>> >> > I see is that during some runs the content of this page is > modified > >>> >> > (either > >>> >> > fully or sometimes partially). In few runs, I see it as intact. > Is it > >>> >> > expected that even after calling memblock_reserve() the kernel can > >>> >> > allocate > >>> >> > this physical page for any other purpose? How is memblock_remove() > >>> >> > different > >>> >> > from memblock_reserve? I tried reading up but didn't see any > useful > >>> >> > information. What I
Re: Linux Kernel Based Research Projects
On Sun, 2 Oct 2016, Daniel Baluta wrote: > On Sun, Oct 2, 2016 at 2:54 PM, Shyam Sainiwrote: > > Hi everyone, > > > > I'm final year computer science undergraduate student. I want to do my > > major project based on linux kernel. > > > > Would you please suggest me some areas in the kernel which have some > > projects. To be more specific, I want know on going research areas in > > kernel. Or some ideas which are not yet implemented. > > Would you be interested in taking a look at lguest? [1] > > I will be having a presentation about lguest and how one learn > linux kernel internals by studying lguest code > this week at LinuxCon Europe [2] > > Porting it on x86_64 or any other architecture will be a very cool project > but I warn you it won't be trivial :). > > thanks, > Daniel. > > [1] http://lguest.ozlabs.org/ > [2] http://sched.co/7o92 Reference [1] claims, "Those crazy guys at Red Hat have an experimental port of lguest to x86-64: you can grab their git tree." so why do you say porting to x86_64 wouldn't be trivial? rday -- Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Linux Kernel Based Research Projects
I agree and accept that it won't be trivial task and I'm ready for that. Even if it has only 1% chance for its successful completion, I'ld go for it. The reason it's making me interested is the kind of learning I'm going to get in the whole process. I'ld be needing your support. Thanks, shyam On 3 October 2016 10:50:22 PM IST, Daniel Balutawrote: >On Mon, Oct 3, 2016 at 12:48 PM, shyam wrote: >> Thanks a lot for your reply, >> I'ld like attend your session but right now I'm in India. So, >couldn't >> manage everything so early to attend linuxCon Europe. >> >> Apart from this thing, >> I'ld like to work on lguest to port it on x86_64 architecture. >> May you please tell me why it is not been ported yet for x86_64 >architecture >> and can we discuss it further and start work on its porting. > >It is not yet ported because lack of time and experience with >x86_64 arch specifics in my case :). > >Also, note that this is not a trivial task :), but I think it >worths the effort. > >See here the discussion with people who worked on >porting it to x86_64. > >https://marc.info/?l=lguest=131810934128197=2 > >thanks, >Daniel. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
opinion about fs and gs in linux
Dear all, When I analyzed one coredump and read some assembly code, I encounter one specific segment register : gs. I googled it and found the following links: [1] http://stackoverflow.com/questions/10810203/what-is-the-fs-gs-register-intended-for [2] http://reverseengineering.stackexchange.com/questions/2006/how-are-the-segment-registers-fs-gs-cs-ss-ds-es-used-in-linux [3] http://stackoverflow.com/questions/6611346/how-are-the-fs-gs-registers-used-in-linux-amd64 In IA32 FS is used by Windows and GS by glibc to reference TLS entry. And in my 32bit linux, I found fs is 0 in my coredump and gs is 0x33. -- My best regards to you. No System Is Safe! Dongliang Mu ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Linux Kernel Based Research Projects
On Mon, Oct 3, 2016 at 12:48 PM, shyamwrote: > Thanks a lot for your reply, > I'ld like attend your session but right now I'm in India. So, couldn't > manage everything so early to attend linuxCon Europe. > > Apart from this thing, > I'ld like to work on lguest to port it on x86_64 architecture. > May you please tell me why it is not been ported yet for x86_64 architecture > and can we discuss it further and start work on its porting. It is not yet ported because lack of time and experience with x86_64 arch specifics in my case :). Also, note that this is not a trivial task :), but I think it worths the effort. See here the discussion with people who worked on porting it to x86_64. https://marc.info/?l=lguest=131810934128197=2 thanks, Daniel. ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Web Forum Registration Failure
On Sun, 2016-08-28 at 23:28 -0600, Jonathan Villatoro wrote: > On Sun, Aug 28, 2016 at 7:25 PM, n...@nnbits.org> wrote: > > Hello everyone, > > > > I tried to register on Kernelnewbies Web Forum, but got this > > message: > > > > You did not provide the correct code for the spam > > prevention check. Please try again. > > > > Would you please help me understand what I was doing wrong? There > > was no field for spam check and no captcha, only username, email, > > password, password repeat. I tried two different browsers. > > > > I would appreciate any help or support. > > > > Thank you. > > > > Nick. > > ___ > > Kernelnewbies mailing list > > Kernelnewbies@kernelnewbies.org > > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Hello everyone, I tried to reproduce the error and it does show the > error upon attempting to create a new profile. > > Screenshot can be found here - http://imgur.com/a/1ZMHn > > FTIW, at least it's reproducible. It looks like recaptcha.net changed their URL. I will look into fixing it. ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Error reading /dev/mem
Hello Paddie, On Wed, Sep 28, 2016 at 1:19 AM, Paddie O'Brienwrote: > Hi, > > I have a system call that maps virtual to physical addresses. I have > disabled CONFIG_STRICT_DEVMEM and am reading from /dev/mem to verify > that the contents of the syscall-returned physical address match the > contents of the virtual address. It works fine up to a point. Reading > beyond byte 935321597 in /dev/mem throws a "bad address" error. Not > sure it's relevant but I'm running on virtual box and specifying 1GB > of RAM. Tried with 2GB of RAM and hit the same problem. > > Any idea why I can't read beyond the above point? Can you send the output to cat /proc/iomem? > > Thanks. > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: memblock_reserve or memblock_remove to reserve a page
On Mon, Oct 3, 2016 at 6:02 PM, Arun Sudhilalwrote: > Hello Nikhil, > > On Wed, Sep 28, 2016 at 6:55 PM, Nikhil Utane > wrote: >> base1 = 0xA4D000; size1=0x1000; >> memblock_reserve (base1, size1); Most probably your memblock_reserve() function is not affecting. It depends on when you are calling this function as explained earlier(after or before hand-off to buddy allocator). Lets say you are calling it pretty late and if CONFIG_ARCH_DISCARD_MEMBLOCK is disabled in your build, memblock_reserve() just go ahead and modifies the memblock structures but does not have any effect as buddy allocator has already taken control of memory management. That might be the reason you were not able to make this page reserved. >> >> (In a separate static driver code) >> request_mem_region_exclusive (0x00A4D000, 4096, "csSIGILL") > > Thanks for details. Looks strange. > One possible case I can think of is, when you use > request_mem_region_exclusive, user space cannot access it using > /dev/mem. May be any of your user space task is corrupting this region > before. now he is not able to access this location because you have > marked it as EXCLUSIVE for kernel. > >> >> If a driver requests for a memory region, shouldn't the kernel then not >> allocate it for any other purpose? > To remove pages from kernel allocation, you need to have only > successful invocation of memblock_reserve() function. > > Regards, > Arun > >> >> -Regards >> Nikhil >> >> On Wed, Sep 28, 2016 at 3:12 PM, Arun Sudhilal wrote: >>> >>> Hello Nikhil, >>> >>> On Wed, Sep 28, 2016 at 2:41 PM, Nikhil Utane >>> wrote: >>> > Arun, >>> > >>> > What seems to have done the trick is calling memblock_remove() followed >>> > by a >>> > call to request_mem_region(). This creates a hole which can be confirmed >>> > in >>> > the output of /proc/iomem. >>> > >>> > Do you see any issue with this approach? >>> >>> I really don't know how it works for you. Marking address of a page as >>> iomem. How buddy allocator ignores this page? >>> request_mem_region() is a way of managing IO resource memory, to avoid >>> two drivers using same IO memory. It has not relation with buddy >>> allocator. >>> >>> Can you post code snippet? >>> >>> Regards, >>> Arun >>> >>> > >>> > -Thanks >>> > Nikhil >>> > >>> > On Tue, Sep 27, 2016 at 4:14 PM, Arun Sudhilal >>> > wrote: >>> >> >>> >> Hello Nikhil, >>> >> >>> >> On Fri, Sep 9, 2016 at 7:01 AM, Nikhil Utane >>> >> wrote: >>> >> > I want to reserve a physical memory page with a fixed PFN. I do not >>> >> > want >>> >> > this page to be used by anyone else. I am calling memblock_reserve() >>> >> > to >>> >> > supposedly reserve the page. I am writing some content into this >>> >> > page. >>> >> > What >>> >> > I see is that during some runs the content of this page is modified >>> >> > (either >>> >> > fully or sometimes partially). In few runs, I see it as intact. Is it >>> >> > expected that even after calling memblock_reserve() the kernel can >>> >> > allocate >>> >> > this physical page for any other purpose? How is memblock_remove() >>> >> > different >>> >> > from memblock_reserve? I tried reading up but didn't see any useful >>> >> > information. What I understood is memblock_remove will completely >>> >> > remove >>> >> > from kernel's allocation mechanism. Should I then be using remove >>> >> > instead of >>> >> > reserve? >>> >> >>> >> when a DT entry is added to #reserved-memory node, what >>> >> drivers/of/fdt.c does is to call memblock_remove() and >>> >> memblock_reserve(). >>> >> This happens after the memblock driver is initialized but before buddy >>> >> allocator up. Did you try this approach? This should work for you. >>> >> >>> >> Only option once the kernel boot is complete is to try out the >>> >> technique what mm/memory_hotplug.c does while offline memory. >>> >> isolate_page_range and then migrate. >>> >> >>> >> Regards, >>> >> Arun >>> >> >>> >> >>> >> > >>> >> > -Thanks >>> >> > Nikhil >>> >> > >>> >> > ___ >>> >> > Kernelnewbies mailing list >>> >> > Kernelnewbies@kernelnewbies.org >>> >> > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >>> >> > >>> > >>> > >> >> ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: memblock_reserve or memblock_remove to reserve a page
Hello Nikhil, On Wed, Sep 28, 2016 at 6:55 PM, Nikhil Utanewrote: > base1 = 0xA4D000; size1=0x1000; > memblock_reserve (base1, size1); > > (In a separate static driver code) > request_mem_region_exclusive (0x00A4D000, 4096, "csSIGILL") Thanks for details. Looks strange. One possible case I can think of is, when you use request_mem_region_exclusive, user space cannot access it using /dev/mem. May be any of your user space task is corrupting this region before. now he is not able to access this location because you have marked it as EXCLUSIVE for kernel. > > If a driver requests for a memory region, shouldn't the kernel then not > allocate it for any other purpose? To remove pages from kernel allocation, you need to have only successful invocation of memblock_reserve() function. Regards, Arun > > -Regards > Nikhil > > On Wed, Sep 28, 2016 at 3:12 PM, Arun Sudhilal wrote: >> >> Hello Nikhil, >> >> On Wed, Sep 28, 2016 at 2:41 PM, Nikhil Utane >> wrote: >> > Arun, >> > >> > What seems to have done the trick is calling memblock_remove() followed >> > by a >> > call to request_mem_region(). This creates a hole which can be confirmed >> > in >> > the output of /proc/iomem. >> > >> > Do you see any issue with this approach? >> >> I really don't know how it works for you. Marking address of a page as >> iomem. How buddy allocator ignores this page? >> request_mem_region() is a way of managing IO resource memory, to avoid >> two drivers using same IO memory. It has not relation with buddy >> allocator. >> >> Can you post code snippet? >> >> Regards, >> Arun >> >> > >> > -Thanks >> > Nikhil >> > >> > On Tue, Sep 27, 2016 at 4:14 PM, Arun Sudhilal >> > wrote: >> >> >> >> Hello Nikhil, >> >> >> >> On Fri, Sep 9, 2016 at 7:01 AM, Nikhil Utane >> >> wrote: >> >> > I want to reserve a physical memory page with a fixed PFN. I do not >> >> > want >> >> > this page to be used by anyone else. I am calling memblock_reserve() >> >> > to >> >> > supposedly reserve the page. I am writing some content into this >> >> > page. >> >> > What >> >> > I see is that during some runs the content of this page is modified >> >> > (either >> >> > fully or sometimes partially). In few runs, I see it as intact. Is it >> >> > expected that even after calling memblock_reserve() the kernel can >> >> > allocate >> >> > this physical page for any other purpose? How is memblock_remove() >> >> > different >> >> > from memblock_reserve? I tried reading up but didn't see any useful >> >> > information. What I understood is memblock_remove will completely >> >> > remove >> >> > from kernel's allocation mechanism. Should I then be using remove >> >> > instead of >> >> > reserve? >> >> >> >> when a DT entry is added to #reserved-memory node, what >> >> drivers/of/fdt.c does is to call memblock_remove() and >> >> memblock_reserve(). >> >> This happens after the memblock driver is initialized but before buddy >> >> allocator up. Did you try this approach? This should work for you. >> >> >> >> Only option once the kernel boot is complete is to try out the >> >> technique what mm/memory_hotplug.c does while offline memory. >> >> isolate_page_range and then migrate. >> >> >> >> Regards, >> >> Arun >> >> >> >> >> >> > >> >> > -Thanks >> >> > Nikhil >> >> > >> >> > ___ >> >> > Kernelnewbies mailing list >> >> > Kernelnewbies@kernelnewbies.org >> >> > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> >> > >> > >> > > > ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Error reading /dev/mem
It is a 32-bit system. I have a C program that puts a number in a variable. I then retrieve the physical address of that variable using a system call I added to the kernel. I next seek to that address in /dev/mem and verify that what I find there matches the contents of the variable in my program. All works fine i.e. the values match up except when the physical address returned by the syscall is greater than 935321597. For lower physical addresses there is no error. Once above the threshold I get a "bad address" error when attempting the read from /dev/mem after seeking to the appropriate location. If I specify 512MB of physical memory on the VM then the problem goes away since the physical address returned never exceeds the threshold. So what you are suggesting is that there is a subrange of physical addresses from which it is illegal to read in /dev/mem? Thanks. On 1 October 2016 at 18:45, Mulyadi Santosawrote: > > > On Wed, Sep 28, 2016 at 2:49 AM, Paddie O'Brien > wrote: >> >> Hi, >> >> I have a system call that maps virtual to physical addresses. I have >> disabled CONFIG_STRICT_DEVMEM and am reading from /dev/mem to verify >> that the contents of the syscall-returned physical address match the >> contents of the virtual address. It works fine up to a point. Reading >> beyond byte 935321597 in /dev/mem throws a "bad address" error. Not >> sure it's relevant but I'm running on virtual box and specifying 1GB >> of RAM. Tried with 2GB of RAM and hit the same problem. >> >> Any idea why I can't read beyond the above point? >> >> Thanks. >> > > Hi paddie > > Is it 32 bit system? > > If yes, it seems you are about to exceed boundary of kernel linear addres > range, which is 0-896 MiB. The upper 896-1024 MiB (1 GiB) is reserved for > dynamic mapping > > CMIIW people. > > -- > regards, > > Mulyadi Santosa > Freelance Linux trainer and consultant > > blog: the-hydra.blogspot.com > training: mulyaditraining.blogspot.com > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Linux Kernel Based Research Projects
Thanks for your reply I've done researched on my query after that i posted it here. Thanks, shyam On 2 October 2016 8:25:15 PM IST, "Robert P. J. Day"wrote: >On Sun, 2 Oct 2016, Shyam Saini wrote: > >> Hi everyone, >> >> I'm final year computer science undergraduate student. I want to do >> my major project based on linux kernel. >> >> Would you please suggest me some areas in the kernel which have some >> projects. To be more specific, I want know on going research areas >> in kernel. Or some ideas which are not yet implemented. > > as someone on this list once suggested, saying you want to work on >the linux kernel and want someone to suggest a subsystem is like >saying you want to write a book and could someone suggest a topic for >you to write about. > > if you haven't even progressed to the point where you know what part >of the kernel interests you, you shouldn't be asking for projects. >it's not everyone else's responsibility to do your research for you. > >rday > >-- > > >Robert P. J. Day Ottawa, Ontario, >CANADA >http://crashcourse.ca > >Twitter: >http://twitter.com/rpjday >LinkedIn: >http://ca.linkedin.com/in/rpjday > -- Sent from my Android device with K-9 Mail. Please excuse my brevity.___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: Linux Kernel Based Research Projects
Thanks a lot for your reply, I'ld like attend your session but right now I'm in India. So, couldn't manage everything so early to attend linuxCon Europe. Apart from this thing, I'ld like to work on lguest to port it on x86_64 architecture. May you please tell me why it is not been ported yet for x86_64 architecture and can we discuss it further and start work on its porting. Thanks, shyam On 3 October 2016 1:21:21 AM IST, Daniel Balutawrote: >On Sun, Oct 2, 2016 at 2:54 PM, Shyam Saini >wrote: >> Hi everyone, >> >> I'm final year computer science undergraduate student. I want to do >my >> major project based on linux kernel. >> >> Would you please suggest me some areas in the kernel which have some >> projects. To be more specific, I want know on going research areas in >> kernel. Or some ideas which are not yet implemented. > >Would you be interested in taking a look at lguest? [1] > >I will be having a presentation about lguest and how one learn >linux kernel internals by studying lguest code >this week at LinuxCon Europe [2] > >Porting it on x86_64 or any other architecture will be a very cool >project >but I warn you it won't be trivial :). > >thanks, >Daniel. > >[1] http://lguest.ozlabs.org/ >[2] http://sched.co/7o92 -- Sent from my Android device with K-9 Mail. Please excuse my brevity.___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: MODULE_DEVICE_TABLE type=of means?
Muni Sekharwrites: > I see that following dma engine driver uses MODULE_DEVICE_TABLE with > ‘type=of’. > What does ‘type=of’ means? How to trigger this driver’s probe and > remove to be called? "Open Firmware", aka "Device Tree". See Documentation/devicetree/ Bjørn ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
MODULE_DEVICE_TABLE type=of means?
Hi All, I see that following dma engine driver uses MODULE_DEVICE_TABLE with ‘type=of’. What does ‘type=of’ means? How to trigger this driver’s probe and remove to be called? http://lxr.linux.no/linux+v4.8/drivers/dma/xilinx/zynqmp_dma.c static const struct of_device_id zynqmp_dma_of_match[] = { { .compatible = "xlnx,zynqmp-dma-1.0", }, {} }; MODULE_DEVICE_TABLE(of, zynqmp_dma_of_match); static struct platform_driver zynqmp_dma_driver = { .driver = { .name = "xilinx-zynqmp-dma", .of_match_table = zynqmp_dma_of_match, }, .probe = zynqmp_dma_probe, .remove = zynqmp_dma_remove, }; module_platform_driver(zynqmp_dma_driver); MODULE_AUTHOR("Xilinx, Inc."); MODULE_DESCRIPTION("Xilinx ZynqMP DMA driver"); -- Thanks, Sekhar ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies