Re: My network device don't work

2017-06-20 Thread Tobin C. Harding
On Tue, Jun 20, 2017 at 10:12:34PM +0800, Greg KH wrote:
> On Tue, Jun 20, 2017 at 02:32:31PM +0200, wiktoria.lewicka wrote:

Expanding on Greg's response, the document you want to read is

  Documentation/process/coding-style.rst

> > Hello.
> > I write simple network device, but its don't work. Module is loading, 
> > loading, loading...
> > Code:
> > 
> > #include 
> > #include 
> > #include 
> > #include 
> > #include 
> > #define DEV_NAME "chwdp"
> > 
> > struct net_device my_netdev;
> > 
> > int init_my_net_dev(struct net_device *dev);
> > 
> > struct net_device_ops nops = {
> >   .ndo_init = init_my_net_dev,

Preferred indentation is 8 characters.

> >   //.ndo_uninit = uninit_my_net_dev,

Prefer c89 comments.

> > };
> > 
> > static int __init init_dev(void)
> > {
> >   //my_netdev.netdev_ops = 
> >   int result;
> >   if((netdev_boot_setup_check(_netdev))){
> > printk(KERN_ERR "NETDEV: setup error");
> > return 0;
> 
> Why are you returning success if there was an error?
> 
> And always try to use proper kernel coding style when writing kernel
> code if you expect/want someone else to read it :)

Also, you should run your code through scripts/checkpatch.pl. That
script will catch coding style issues for you and help you learn them.

Good luck,
Tobin.

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: My network device don't work

2017-06-20 Thread Greg KH
On Tue, Jun 20, 2017 at 02:32:31PM +0200, wiktoria.lewicka wrote:
> Hello.
> I write simple network device, but its don't work. Module is loading, 
> loading, loading...
> Code:
> 
> #include 
> #include 
> #include 
> #include 
> #include 
> #define DEV_NAME "chwdp"
> 
> struct net_device my_netdev;
> 
> int init_my_net_dev(struct net_device *dev);
> 
> struct net_device_ops nops = {
>   .ndo_init = init_my_net_dev,
>   //.ndo_uninit = uninit_my_net_dev,
> };
> 
> static int __init init_dev(void)
> {
>   //my_netdev.netdev_ops = 
>   int result;
>   if((netdev_boot_setup_check(_netdev))){
> printk(KERN_ERR "NETDEV: setup error");
> return 0;

Why are you returning success if there was an error?

And always try to use proper kernel coding style when writing kernel
code if you expect/want someone else to read it :)

thanks,

greg k-h

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: My network device don't work

2017-06-20 Thread Stan Drozd
On Tue, Jun 20, 2017 at 02:32:31PM +0200, wiktoria.lewicka wrote:
> Hello.
> I write simple network device, but its don't work. Module is loading, 
> loading, loading...
> Code:
> [...]
Hello,
"strncpy(my_netdev.name, DEV_NAME, 5)" only copies the 5 chars in "chwdp" 
without the null byte. You could bump it to 6
or maybe change 5 to IFNAMSIZ (the net_device.name's size) and then change the 
last byte to '\0' manually

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


My network device don't work

2017-06-20 Thread wiktoria.lewicka
Hello.
I write simple network device, but its don't work. Module is loading, loading, 
loading...
Code:

#include 
#include 
#include 
#include 
#include 
#define DEV_NAME "chwdp"

struct net_device my_netdev;

int init_my_net_dev(struct net_device *dev);

struct net_device_ops nops = {
  .ndo_init = init_my_net_dev,
  //.ndo_uninit = uninit_my_net_dev,
};

static int __init init_dev(void)
{
  //my_netdev.netdev_ops = 
  int result;
  if((netdev_boot_setup_check(_netdev))){
printk(KERN_ERR "NETDEV: setup error");
return 0;
  }
  strncpy(my_netdev.name, DEV_NAME, 5);
  if((result = register_netdev(_netdev)))
printk(KERN_ERR "NETDEV: Error registering device");
  printk("NETDEV: Device registered successfully");
  return 0;
}

static void __exit remove_dev(void)
{
  unregister_netdev(_netdev);
}
int init_my_net_dev(struct net_device *dev)
{
  printk("INIT");
  return 0;
}
module_init(init_dev);
module_exit(remove_dev);


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies