Kernelnewbies Digest, Vol 15, Issue 12
From: Mayank Agarwal <hidden>
Date: 2012-02-08 09:10:04
Hi all, I want to contribute to camera dri*vers in linux kernel*.Please guide me the procedure of doing that. Regards, Mayank On Tue, Feb 7, 2012 at 10:30 PM, [off-list ref]wrote:
Send Kernelnewbies mailing list submissions to kernelnewbies at kernelnewbies.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies or, via email, send a message with subject or body 'help' to kernelnewbies-request at kernelnewbies.org You can reach the person managing the list at kernelnewbies-owner at kernelnewbies.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Kernelnewbies digest..." Today's Topics: 1. Re: "Trying to free already-free IRQ 9", but it wasn't freed by me (mayur nande) 2. Re: request_firmware question (Greg KH) 3. Re: fork() and exec() (Bernd Petrovitsch) 4. Re: make config errors while building kernel on Fedora 16 (Kartik Singhal) ---------------------------------------------------------------------- Message: 1 Date: Tue, 7 Feb 2012 20:33:31 +0530 From: mayur nande <redacted> Subject: Re: "Trying to free already-free IRQ 9", but it wasn't freed by me To: "nils.stec" <redacted> Cc: kernelnewbies <redacted> Message-ID: <CA+fM3Xy2QALrjbTYJxW0yKn-Q-Y99Wi8xUyyWtKEzYDTByTkjQ@mail.gmail.comquoted
Content-Type: text/plain; charset="iso-8859-1" Hi Nils,quoted
quoted
void cleanup_module(void) {>> ... >> free_irq(ADC_IRQ, NULL); /* remove interrupt handler */ >> ... >> return;quoted
quoted
}You should not pass NULL here. It should be the unique cookie that you passed in request_irq (adc_irq_handler in your case) since you have used IRQF_SHARED which means you want to share your interrupt line. Also check whether you really want to share your interrupt line and also if you want to use "(void *)(adc_irq_handler)" as the unique identification. HTH! Regards Mayur On Tue, Feb 7, 2012 at 7:45 PM, nils.stec [off-list ref] wrote:quoted
Hi, atm I'm writing a kernel module for an embedded ARM device. This module uses IRQ9. If i remove the module, the kernel tells me that: ------------[ cut here ]------------ WARNING: at kernel/irq/manage.c:858 __free_irq+0x84/0x154() Trying to free already-free IRQ 9 Modules linked in: adc_demo_irq(P-) g_ether pegasus mii [<c0028794>] (unwind_backtrace+0x0/0xd0) from [<c003b504>] (warn_slowpath_common+0x48/0x60) [<c003b504>] (warn_slowpath_common+0x48/0x60) from [<c003b554>] (warn_slowpath_fmt+0x24/0x30) [<c003b554>] (warn_slowpath_fmt+0x24/0x30) from [<c005fa00>] (__free_irq+0x84/0x154) [<c005fa00>] (__free_irq+0x84/0x154) from [<c005fb0c>] (free_irq+0x3c/0x5c) [<c005fb0c>] (free_irq+0x3c/0x5c) from [<bf01e18c>] (cleanup_module+0x4c/0x60 [adc_demo_irq]) [<bf01e18c>] (cleanup_module+0x4c/0x60 [adc_demo_irq]) from [<c005b898>] (sys_delete_module+0x1c4/0x238) [<c005b898>] (sys_delete_module+0x1c4/0x238) from [<c0022dc0>] (ret_fast_syscall+0x0/0x28) ---[ end trace 60d7a16d878ac0b3 ]--- adc testing module removed ------------[ cut here ]------------ The message "adc testing module removed" comes from my module**after**free_irq() via printk, so the module exit routine works till the end.quoted
This is my code (only the IRQ related part): irqreturn_t adc_irq_handler(int irq, void *dev_id) { ... do someting ... return IRQ_HANDLED; } int init_module(void) { int32_t retval; ... retval = request_irq(ADC_IRQ, adc_irq_handler, IRQF_SHARED, "lpc313x adc irq", (void *)(adc_irq_handler)); ... return retval; } void cleanup_module(void) { ... free_irq(ADC_IRQ, NULL); /* remove interrupt handler */ ... return; } I hope anyone of you can help me with that problem. If you need more information, i'll send it Greetings, Nils _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120207/79cf9412/attachment-0001.html ------------------------------ Message: 2 Date: Tue, 7 Feb 2012 07:07:50 -0800 From: Greg KH <redacted> Subject: Re: request_firmware question To: anish kumar <redacted> Cc: Kernelnewbies at kernelnewbies.org Message-ID: [ref] Content-Type: text/plain; charset=us-ascii On Tue, Feb 07, 2012 at 12:51:42AM -0800, anish kumar wrote:quoted
Hi, Now I have switched to using request_firmware api and after using firmware, memory is being released. Does it save kernel memory compare to case when I am having a having a local static firmware buffer(very big) from which I used to get the firmware and write it to the chip? As I know request_firmware api has several advantages but what I want to know is the advantages related to kernel memory footprint.Yes it is, as well as using the "proper" api for firmware loading, which means it fits into the rest of the kernel correctly. Also, no new drivers will be accepted that have static firmware blobs. greg k-h ------------------------------ Message: 3 Date: Tue, 07 Feb 2012 16:40:13 +0100 From: Bernd Petrovitsch <redacted> Subject: Re: fork() and exec() To: Vijay Chauhan <redacted> Cc: kernelnewbies at kernelnewbies.org Message-ID: <1328629213.25984.123.camel@thorin> Content-Type: text/plain; charset="UTF-8" On Die, 2012-02-07 at 00:38 +0530, Vijay Chauhan wrote:quoted
Hi List, I am learning Linux and trying to understand exec and fork function. execl says that it overlays the running address space. What does it mean? I created the following program and used top command with intentionally wrong arguments: #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<stdlib.h> int main(){ int a = -1; if(fork()==0){ printf("Inside child\n"); printf("child pid=%d, parentid=%d\n", getpid(), getppid()); execl("/usr/bin/top", "/usr/bin/top", ">/dev/null",(char*)0 ); You get here only if the execl() as such fails.quoted
scanf("inside child provide a %d", &a);You should check the return value here if you actually got a matching parameter. scanf() is actually a function to be avoided.quoted
printf("Inside child a=%d\n", a); exit(1); } else { printf("Inside parent, going to wait\n"); printf("my pid=%d, parentid=%d\n", getpid(), getppid()); scanf("input parent %d\n", &a);You should check the return value here if you actually got a matching parameter. scanf() is actually a function to be avoided.quoted
wait(NULL);You should check the return value here to know why "wait()" returns.quoted
printf("Wait over\n"); printf("Inside parent a=%d\n", a); } return 0; }Bernd -- Bernd Petrovitsch Email : bernd at petrovitsch.priv.at LUGA : http://www.luga.at ------------------------------ Message: 4 Date: Tue, 7 Feb 2012 22:10:46 +0530 From: Kartik Singhal <redacted> Subject: Re: make config errors while building kernel on Fedora 16 To: Mulyadi Santosa <redacted> Cc: Kernelnewbies at kernelnewbies.org Message-ID: <CAAY3Td5UJYmtqM5mzkBHug5bfMx0q5CoBd5CowtDNTdVrTORTQ@mail.gmail.comquoted
Content-Type: text/plain; charset="utf-8" On Mon, Feb 6, 2012 at 1:05 PM, Mulyadi Santosa [off-list ref]wrote:quoted
have you check their checksums?Is there a way to verify the checksums for git clones as in my case? -- Kartik http://k4rtik.wordpress.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120207/3ff99cbf/attachment-0001.html ------------------------------ _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies End of Kernelnewbies Digest, Vol 15, Issue 12 *********************************************
-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120208/7cba4081/attachment-0001.html