devices/generic.c
branchstable-1.5
changeset 2170 e69a5010914f
parent 1833 5adbf2bc48d9
child 2631 827abf3c50de
equal deleted inserted replaced
2169:1a128e86d4f6 2170:e69a5010914f
   205     dev->rx_buf = kmalloc(EC_GEN_RX_BUF_SIZE, GFP_KERNEL);
   205     dev->rx_buf = kmalloc(EC_GEN_RX_BUF_SIZE, GFP_KERNEL);
   206     if (!dev->rx_buf) {
   206     if (!dev->rx_buf) {
   207         return -ENOMEM;
   207         return -ENOMEM;
   208     }
   208     }
   209 
   209 
   210     ret = sock_create_kern(PF_PACKET, SOCK_RAW, htons(ETH_P_ETHERCAT), &dev->socket);
   210     ret = sock_create_kern(PF_PACKET, SOCK_RAW, htons(ETH_P_ETHERCAT),
       
   211             &dev->socket);
   211     if (ret) {
   212     if (ret) {
   212         printk(KERN_ERR PFX "Failed to create socket.\n");
   213         printk(KERN_ERR PFX "Failed to create socket (ret = %i).\n", ret);
   213         return ret;
   214         return ret;
   214     }
   215     }
   215 
   216 
   216     printk(KERN_ERR PFX "Binding socket to interface %i (%s).\n",
   217     printk(KERN_ERR PFX "Binding socket to interface %i (%s).\n",
   217             desc->ifindex, desc->name);
   218             desc->ifindex, desc->name);
   220     sa.sll_family = AF_PACKET;
   221     sa.sll_family = AF_PACKET;
   221     sa.sll_protocol = htons(ETH_P_ETHERCAT);
   222     sa.sll_protocol = htons(ETH_P_ETHERCAT);
   222     sa.sll_ifindex = desc->ifindex;
   223     sa.sll_ifindex = desc->ifindex;
   223     ret = kernel_bind(dev->socket, (struct sockaddr *) &sa, sizeof(sa));
   224     ret = kernel_bind(dev->socket, (struct sockaddr *) &sa, sizeof(sa));
   224     if (ret) {
   225     if (ret) {
   225         printk(KERN_ERR PFX "Failed to bind() socket to interface.\n");
   226         printk(KERN_ERR PFX "Failed to bind() socket to interface"
       
   227                 " (ret = %i).\n", ret);
   226         sock_release(dev->socket);
   228         sock_release(dev->socket);
   227         dev->socket = NULL;
   229         dev->socket = NULL;
   228         return ret;
   230         return ret;
   229     }
   231     }
   230 
   232