kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
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

      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).