From: "Irfan Ullah (울라 이르판)" <irfan@dke.khu.ac.kr>
To: "Valdis Klētnieks" <valdis.kletnieks@vt.edu>
Cc: Greg KH <greg@kroah.com>,
Linux Kernel List <kernelnewbies@kernelnewbies.org>
Subject: Re: Netlink socket returns NULL in vmx.c kernel file
Date: Fri, 8 Nov 2019 13:54:47 +0900 [thread overview]
Message-ID: <CA+mB8Oxw8OsFiSTzZZXXMKm_F-jTn3wGqNjDC_QgYWd0ydT4GA@mail.gmail.com> (raw)
In-Reply-To: <219753.1572950606@turing-police>
[-- Attachment #1.1: Type: text/plain, Size: 3071 bytes --]
Thank you very much. I am trying to rewrite the code. and fix these issues.
On Tue, Nov 5, 2019 at 7:43 PM Valdis Klētnieks <valdis.kletnieks@vt.edu>
wrote:
> On Tue, 05 Nov 2019 17:59:43 +0900, Irfan Ullah said:
>
> > Thank you for the response.
> > Attached are the files for kernel-user spaces communication.
>
> > //when I remove this wait the code does not work
> > msleep(3000);
>
> If your code doesn't work, but sticking in random delays makes
> it start working, you almost certainly have a race condition or
> synchronization issue that should be fixed using proper locking.
>
> > void hello_exit(void)
> > {
> > //netlink_kernel_release(nl_sk);
>
> Congratulations. You just leaked a socket here, which is going to
> make it difficult to use that socket until you either reboot or find a
> way to close it properly before trying to create it again.
>
> > (code generates some warnings, but it is not severe and could be ignored
> for the time being).
>
> You should do the following:
> 1) Understand your code well enough so you understand *why* the compiler
> issued the warning.
> 2) Correct your code so the compiler doesn't complain. It almost certainly
> understands C better than you do.
>
> gcc 9.2.1 emits one warning on the kernel module code at default warning
> levels. And it's one you *really* need to fix, because it indicates that
> you
> and the compiler are not on the same page about what types your variables
> are.
> Since it's going to go ahead and generate code based on what types *it*
> thinks
> your variables are, you will have nothing but pain and anguish debugging if
> you thought they were some other type....
>
> In fact, you may want to compile the kernel module with 'make W=1' to get
> more
> warnings. If your system has sparse, you should use 'make W=1 C=1'.
>
> And all the warnings this generates are things that shouldn't be seen in
> clean
> kernel code.
>
> I didn't bother looking closely at your userspace. I gave up
> when I saw this:
>
> 14 int sock_fd;
> (...)
> 68 void user_space_receiver()
> 69 {
> (...)
> 96 user_space_receiver(sock_fd);
>
> There's 2 basic ways to pass a variable to a function. You're trying
> to use both of them here. Pick one and use it properly.
>
> Oh - and there's no possible way to reach the close(sock_fd); on line
> 77, because the rest of the function infinite loops without a break. At
> the
> very least, you should be checking the return code from recvmsg() and
> exiting the while(1) loop if there's an issue.
>
> Bottom line: You need to get a *lot* more experience writing proper
> C code in userspace before you try to write kernel code.
>
--
*Best Regards,*
*Mr. Irfan Ullah*
PhD Candidate
Data and Knowledge Engineering(DKE) Lab
Department of Computer Science and Engineering
Kyung Hee University, South Korea.
+82-010-591-51651 <+82%2010-3877-8867>
sahibzada.iu@gmail.com
sahibzada_irfanullah
[-- Attachment #1.2: Type: text/html, Size: 5264 bytes --]
[-- Attachment #2: Type: text/plain, Size: 170 bytes --]
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
prev parent reply other threads:[~2019-11-08 4:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 2:43 Netlink socket returns NULL in vmx.c kernel file Irfan Ullah (울라 이르판)
2019-10-23 5:38 ` Valdis Klētnieks
2019-11-05 3:29 ` Irfan Ullah (울라 이르판)
2019-11-05 7:22 ` Greg KH
2019-11-05 8:59 ` Irfan Ullah (울라 이르판)
2019-11-05 10:43 ` Valdis Klētnieks
2019-11-08 4:54 ` Irfan Ullah (울라 이르판) [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CA+mB8Oxw8OsFiSTzZZXXMKm_F-jTn3wGqNjDC_QgYWd0ydT4GA@mail.gmail.com \
--to=irfan@dke.khu.ac.kr \
--cc=greg@kroah.com \
--cc=kernelnewbies@kernelnewbies.org \
--cc=valdis.kletnieks@vt.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).