Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
The conflicts were two cases of overlapping changes in batman-adv and the qed driver. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -391,6 +391,9 @@ void can_change_state(struct net_device *dev, struct can_frame *cf,
|
||||
can_update_state_error_stats(dev, new_state);
|
||||
priv->state = new_state;
|
||||
|
||||
if (!cf)
|
||||
return;
|
||||
|
||||
if (unlikely(new_state == CAN_STATE_BUS_OFF)) {
|
||||
cf->can_id |= CAN_ERR_BUSOFF;
|
||||
return;
|
||||
|
@@ -489,7 +489,7 @@ int peak_canfd_handle_msgs_list(struct peak_canfd_priv *priv,
|
||||
struct pucan_rx_msg *msg_list, int msg_count)
|
||||
{
|
||||
void *msg_ptr = msg_list;
|
||||
int i, msg_size;
|
||||
int i, msg_size = 0;
|
||||
|
||||
for (i = 0; i < msg_count; i++) {
|
||||
msg_size = peak_canfd_handle_msg(priv, msg_ptr);
|
||||
|
@@ -417,7 +417,7 @@ static int slc_open(struct net_device *dev)
|
||||
static void slc_free_netdev(struct net_device *dev)
|
||||
{
|
||||
int i = dev->base_addr;
|
||||
free_netdev(dev);
|
||||
|
||||
slcan_devs[i] = NULL;
|
||||
}
|
||||
|
||||
@@ -436,7 +436,8 @@ static const struct net_device_ops slc_netdev_ops = {
|
||||
static void slc_setup(struct net_device *dev)
|
||||
{
|
||||
dev->netdev_ops = &slc_netdev_ops;
|
||||
dev->destructor = slc_free_netdev;
|
||||
dev->needs_free_netdev = true;
|
||||
dev->priv_destructor = slc_free_netdev;
|
||||
|
||||
dev->hard_header_len = 0;
|
||||
dev->addr_len = 0;
|
||||
@@ -761,8 +762,6 @@ static void __exit slcan_exit(void)
|
||||
if (sl->tty) {
|
||||
printk(KERN_ERR "%s: tty discipline still running\n",
|
||||
dev->name);
|
||||
/* Intentionally leak the control block. */
|
||||
dev->destructor = NULL;
|
||||
}
|
||||
|
||||
unregister_netdev(dev);
|
||||
|
@@ -265,6 +265,8 @@ static int gs_cmd_reset(struct gs_usb *gsusb, struct gs_can *gsdev)
|
||||
sizeof(*dm),
|
||||
1000);
|
||||
|
||||
kfree(dm);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@@ -908,8 +908,6 @@ static int peak_usb_probe(struct usb_interface *intf,
|
||||
const struct peak_usb_adapter *peak_usb_adapter = NULL;
|
||||
int i, err = -ENOMEM;
|
||||
|
||||
usb_dev = interface_to_usbdev(intf);
|
||||
|
||||
/* get corresponding PCAN-USB adapter */
|
||||
for (i = 0; i < ARRAY_SIZE(peak_usb_adapters_list); i++)
|
||||
if (peak_usb_adapters_list[i]->device_id == usb_id_product) {
|
||||
@@ -920,7 +918,7 @@ static int peak_usb_probe(struct usb_interface *intf,
|
||||
if (!peak_usb_adapter) {
|
||||
/* should never come except device_id bad usage in this file */
|
||||
pr_err("%s: didn't find device id. 0x%x in devices list\n",
|
||||
PCAN_USB_DRIVER_NAME, usb_dev->descriptor.idProduct);
|
||||
PCAN_USB_DRIVER_NAME, usb_id_product);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
@@ -152,7 +152,7 @@ static const struct net_device_ops vcan_netdev_ops = {
|
||||
static void vcan_setup(struct net_device *dev)
|
||||
{
|
||||
dev->type = ARPHRD_CAN;
|
||||
dev->mtu = CAN_MTU;
|
||||
dev->mtu = CANFD_MTU;
|
||||
dev->hard_header_len = 0;
|
||||
dev->addr_len = 0;
|
||||
dev->tx_queue_len = 0;
|
||||
@@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
|
||||
dev->flags |= IFF_ECHO;
|
||||
|
||||
dev->netdev_ops = &vcan_netdev_ops;
|
||||
dev->destructor = free_netdev;
|
||||
dev->needs_free_netdev = true;
|
||||
}
|
||||
|
||||
static struct rtnl_link_ops vcan_link_ops __read_mostly = {
|
||||
|
@@ -150,13 +150,13 @@ static const struct net_device_ops vxcan_netdev_ops = {
|
||||
static void vxcan_setup(struct net_device *dev)
|
||||
{
|
||||
dev->type = ARPHRD_CAN;
|
||||
dev->mtu = CAN_MTU;
|
||||
dev->mtu = CANFD_MTU;
|
||||
dev->hard_header_len = 0;
|
||||
dev->addr_len = 0;
|
||||
dev->tx_queue_len = 0;
|
||||
dev->flags = (IFF_NOARP|IFF_ECHO);
|
||||
dev->netdev_ops = &vxcan_netdev_ops;
|
||||
dev->destructor = free_netdev;
|
||||
dev->needs_free_netdev = true;
|
||||
}
|
||||
|
||||
/* forward declaration for rtnl_create_link() */
|
||||
|
Reference in New Issue
Block a user