equal
deleted
inserted
replaced
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 |