Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e001d708 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from David Miller:
 "Some straggler bug fixes here:

   1) Netlink_sendmsg() doesn't check iterator type properly in mmap
      case, from Ken-ichirou MATSUZAWA.

   2) Don't sleep in atomic context in bcmgenet driver, from Florian
      Fainelli.

   3) The pfkey_broadcast() code patch can't actually ever use anything
      other than GFP_ATOMIC.  And the cases that right now pass
      GFP_KERNEL or similar will currently trigger an RCU splat.  Just
      use GFP_ATOMIC unconditionally.  From David Ahern.

   4) Fix FD bit timings handling in pcan_usb driver, from Marc
      Kleine-Budde.

   5) Cache dst leaked in ip6_gre tunnel removal, fix from Huaibin Wang.

   6) Traversal into drivers/net/ethernet/renesas should be triggered by
      CONFIG_NET_VENDOR_RENESAS, not a particular driver's config
      option.  From Kazuya Mizuguchi.

   7) Fix regression in handling of igmp_join errors in vxlan, from
      Marcelo Ricardo Leitner.

   8) Make phy_{read,write}_mmd_indirect() properly take the mdio_lock
      mutex when programming the registers.  From Russell King.

   9) Fix non-forced handling in u32_destroy(), from WANG Cong.

  10) Test the EVENT_NO_RUNTIME_PM flag before it is cleared in
      usbnet_stop(), from Eugene Shatokhin.

  11) In sfc driver, don't fetch statistics firmware isn't capable of,
      from Bert Kenward.

  12) Verify ASCONF address parameter location in SCTP, from Xin Long"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
  sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state
  sctp: asconf's process should verify address parameter is in the beginning
  sfc: only use vadaptor stats if firmware is capable
  net: phy: fixed: propagate fixed link values to struct
  usbnet: Get EVENT_NO_RUNTIME_PM bit before it is cleared
  drivers: net: xgene: fix: Oops in linkwatch_fire_event
  cls_u32: complete the check for non-forced case in u32_destroy()
  net: fec: use reinit_completion() in mdio accessor functions
  net: phy: add locking to phy_read_mmd_indirect()/phy_write_mmd_indirect()
  vxlan: re-ignore EADDRINUSE from igmp_join
  net: compile renesas directory if NET_VENDOR_RENESAS is configured
  ip6_gre: release cached dst on tunnel removal
  phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters
  net: Fix RCU splat in af_key
  net: bcmgenet: fix uncleaned dma flags
  net: bcmgenet: Avoid sleeping in bcmgenet_timeout
  netlink: mmap: fix tx type check
parents 5c98bcce f648f807
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -854,15 +854,7 @@ static int pcan_usb_probe(struct usb_interface *intf)
/*
 * describe the PCAN-USB adapter
 */
const struct peak_usb_adapter pcan_usb = {
	.name = "PCAN-USB",
	.device_id = PCAN_USB_PRODUCT_ID,
	.ctrl_count = 1,
	.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_USB_CRYSTAL_HZ / 2 ,
	},
	.bittiming_const = {
static const struct can_bittiming_const pcan_usb_const = {
	.name = "pcan_usb",
	.tseg1_min = 1,
	.tseg1_max = 16,
@@ -872,7 +864,17 @@ const struct peak_usb_adapter pcan_usb = {
	.brp_min = 1,
	.brp_max = 64,
	.brp_inc = 1,
};

const struct peak_usb_adapter pcan_usb = {
	.name = "PCAN-USB",
	.device_id = PCAN_USB_PRODUCT_ID,
	.ctrl_count = 1,
	.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_USB_CRYSTAL_HZ / 2 ,
	},
	.bittiming_const = &pcan_usb_const,

	/* size of device private data */
	.sizeof_dev_private = sizeof(struct pcan_usb),
+2 −2
Original line number Diff line number Diff line
@@ -792,9 +792,9 @@ static int peak_usb_create_dev(const struct peak_usb_adapter *peak_usb_adapter,
	dev->ep_msg_out = peak_usb_adapter->ep_msg_out[ctrl_idx];

	dev->can.clock = peak_usb_adapter->clock;
	dev->can.bittiming_const = &peak_usb_adapter->bittiming_const;
	dev->can.bittiming_const = peak_usb_adapter->bittiming_const;
	dev->can.do_set_bittiming = peak_usb_set_bittiming;
	dev->can.data_bittiming_const = &peak_usb_adapter->data_bittiming_const;
	dev->can.data_bittiming_const = peak_usb_adapter->data_bittiming_const;
	dev->can.do_set_data_bittiming = peak_usb_set_data_bittiming;
	dev->can.do_set_mode = peak_usb_set_mode;
	dev->can.do_get_berr_counter = peak_usb_adapter->do_get_berr_counter;
+2 −2
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ struct peak_usb_adapter {
	u32 device_id;
	u32 ctrlmode_supported;
	struct can_clock clock;
	const struct can_bittiming_const bittiming_const;
	const struct can_bittiming_const data_bittiming_const;
	const struct can_bittiming_const * const bittiming_const;
	const struct can_bittiming_const * const data_bittiming_const;
	unsigned int ctrl_count;

	int (*intf_probe)(struct usb_interface *intf);
+52 −44
Original line number Diff line number Diff line
@@ -990,16 +990,7 @@ static void pcan_usb_fd_free(struct peak_usb_device *dev)
}

/* describes the PCAN-USB FD adapter */
const struct peak_usb_adapter pcan_usb_fd = {
	.name = "PCAN-USB FD",
	.device_id = PCAN_USBFD_PRODUCT_ID,
	.ctrl_count = PCAN_USBFD_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_FD |
			CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_UFD_CRYSTAL_HZ,
	},
	.bittiming_const = {
static const struct can_bittiming_const pcan_usb_fd_const = {
	.name = "pcan_usb_fd",
	.tseg1_min = 1,
	.tseg1_max = 64,
@@ -1009,8 +1000,9 @@ const struct peak_usb_adapter pcan_usb_fd = {
	.brp_min = 1,
	.brp_max = 1024,
	.brp_inc = 1,
	},
	.data_bittiming_const = {
};

static const struct can_bittiming_const pcan_usb_fd_data_const = {
	.name = "pcan_usb_fd",
	.tseg1_min = 1,
	.tseg1_max = 16,
@@ -1020,7 +1012,19 @@ const struct peak_usb_adapter pcan_usb_fd = {
	.brp_min = 1,
	.brp_max = 1024,
	.brp_inc = 1,
};

const struct peak_usb_adapter pcan_usb_fd = {
	.name = "PCAN-USB FD",
	.device_id = PCAN_USBFD_PRODUCT_ID,
	.ctrl_count = PCAN_USBFD_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_FD |
			CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_UFD_CRYSTAL_HZ,
	},
	.bittiming_const = &pcan_usb_fd_const,
	.data_bittiming_const = &pcan_usb_fd_data_const,

	/* size of device private data */
	.sizeof_dev_private = sizeof(struct pcan_usb_fd_device),
@@ -1058,16 +1062,7 @@ const struct peak_usb_adapter pcan_usb_fd = {
};

/* describes the PCAN-USB Pro FD adapter */
const struct peak_usb_adapter pcan_usb_pro_fd = {
	.name = "PCAN-USB Pro FD",
	.device_id = PCAN_USBPROFD_PRODUCT_ID,
	.ctrl_count = PCAN_USBPROFD_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_FD |
			CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_UFD_CRYSTAL_HZ,
	},
	.bittiming_const = {
static const struct can_bittiming_const pcan_usb_pro_fd_const = {
	.name = "pcan_usb_pro_fd",
	.tseg1_min = 1,
	.tseg1_max = 64,
@@ -1077,8 +1072,9 @@ const struct peak_usb_adapter pcan_usb_pro_fd = {
	.brp_min = 1,
	.brp_max = 1024,
	.brp_inc = 1,
	},
	.data_bittiming_const = {
};

static const struct can_bittiming_const pcan_usb_pro_fd_data_const = {
	.name = "pcan_usb_pro_fd",
	.tseg1_min = 1,
	.tseg1_max = 16,
@@ -1088,7 +1084,19 @@ const struct peak_usb_adapter pcan_usb_pro_fd = {
	.brp_min = 1,
	.brp_max = 1024,
	.brp_inc = 1,
};

const struct peak_usb_adapter pcan_usb_pro_fd = {
	.name = "PCAN-USB Pro FD",
	.device_id = PCAN_USBPROFD_PRODUCT_ID,
	.ctrl_count = PCAN_USBPROFD_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_FD |
			CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_UFD_CRYSTAL_HZ,
	},
	.bittiming_const = &pcan_usb_pro_fd_const,
	.data_bittiming_const = &pcan_usb_pro_fd_data_const,

	/* size of device private data */
	.sizeof_dev_private = sizeof(struct pcan_usb_fd_device),
+13 −11
Original line number Diff line number Diff line
@@ -1004,15 +1004,7 @@ int pcan_usb_pro_probe(struct usb_interface *intf)
/*
 * describe the PCAN-USB Pro adapter
 */
const struct peak_usb_adapter pcan_usb_pro = {
	.name = "PCAN-USB Pro",
	.device_id = PCAN_USBPRO_PRODUCT_ID,
	.ctrl_count = PCAN_USBPRO_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_USBPRO_CRYSTAL_HZ,
	},
	.bittiming_const = {
static const struct can_bittiming_const pcan_usb_pro_const = {
	.name = "pcan_usb_pro",
	.tseg1_min = 1,
	.tseg1_max = 16,
@@ -1022,7 +1014,17 @@ const struct peak_usb_adapter pcan_usb_pro = {
	.brp_min = 1,
	.brp_max = 1024,
	.brp_inc = 1,
};

const struct peak_usb_adapter pcan_usb_pro = {
	.name = "PCAN-USB Pro",
	.device_id = PCAN_USBPRO_PRODUCT_ID,
	.ctrl_count = PCAN_USBPRO_CHANNEL_COUNT,
	.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_LISTENONLY,
	.clock = {
		.freq = PCAN_USBPRO_CRYSTAL_HZ,
	},
	.bittiming_const = &pcan_usb_pro_const,

	/* size of device private data */
	.sizeof_dev_private = sizeof(struct pcan_usb_pro_device),
Loading