All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@chromium.org>
To: Douglas Anderson <dianders@chromium.org>
Cc: "Jakub Kicinski" <kuba@kernel.org>,
	"Hayes Wang" <hayeswang@realtek.com>,
	"David S . Miller" <davem@davemloft.net>,
	"Edward Hill" <ecgh@chromium.org>,
	"Laura Nao" <laura.nao@collabora.com>,
	"Alan Stern" <stern@rowland.harvard.edu>,
	"Simon Horman" <horms@kernel.org>,
	linux-usb@vger.kernel.org,
	"Grant Grundler" <grundler@chromium.org>,
	"Bjørn Mork" <bjorn@mork.no>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH v5 7/8] r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE
Date: Sat, 21 Oct 2023 08:06:11 -0700	[thread overview]
Message-ID: <CANEJEGsBxMq92F6vgYw73aLPVabj8ZuBybbSe9xjE3ORSYq1-w@mail.gmail.com> (raw)
In-Reply-To: <20231020140655.v5.7.Iaacab4e73761e7bd9bb622b30a804c5d20bd5b4c@changeid>

On Fri, Oct 20, 2023 at 2:08 PM Douglas Anderson <dianders@chromium.org> wrote:
>
> Whenever the RTL8152_UNPLUG is set that just tells the driver that all
> accesses will fail and we should just immediately bail. A future patch
> will use this same concept at a time when the driver hasn't actually
> been unplugged but is about to be reset. Rename the flag in
> preparation for the future patch.
>
> This is a no-op change and just a search and replace.
>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>

Reviewed-by: Grant Grundler <grundler@chromium.org>

> ---
>
> (no changes since v2)
>
> Changes in v2:
> - ("Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE") new for v2.
>
>  drivers/net/usb/r8152.c | 96 ++++++++++++++++++++---------------------
>  1 file changed, 48 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
> index 982f9ca03e7a..65232848b31d 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
> @@ -764,7 +764,7 @@ enum rtl_register_content {
>
>  /* rtl8152 flags */
>  enum rtl8152_flags {
> -       RTL8152_UNPLUG = 0,
> +       RTL8152_INACCESSIBLE = 0,
>         RTL8152_SET_RX_MODE,
>         WORK_ENABLE,
>         RTL8152_LINK_CHG,
> @@ -1245,7 +1245,7 @@ int set_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)
>  static void rtl_set_unplug(struct r8152 *tp)
>  {
>         if (tp->udev->state == USB_STATE_NOTATTACHED) {
> -               set_bit(RTL8152_UNPLUG, &tp->flags);
> +               set_bit(RTL8152_INACCESSIBLE, &tp->flags);
>                 smp_mb__after_atomic();
>         }
>  }
> @@ -1256,7 +1256,7 @@ static int generic_ocp_read(struct r8152 *tp, u16 index, u16 size,
>         u16 limit = 64;
>         int ret = 0;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         /* both size and indix must be 4 bytes align */
> @@ -1300,7 +1300,7 @@ static int generic_ocp_write(struct r8152 *tp, u16 index, u16 byteen,
>         u16 byteen_start, byteen_end, byen;
>         u16 limit = 512;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         /* both size and indix must be 4 bytes align */
> @@ -1537,7 +1537,7 @@ static int read_mii_word(struct net_device *netdev, int phy_id, int reg)
>         struct r8152 *tp = netdev_priv(netdev);
>         int ret;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         if (phy_id != R8152_PHY_ID)
> @@ -1553,7 +1553,7 @@ void write_mii_word(struct net_device *netdev, int phy_id, int reg, int val)
>  {
>         struct r8152 *tp = netdev_priv(netdev);
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (phy_id != R8152_PHY_ID)
> @@ -1758,7 +1758,7 @@ static void read_bulk_callback(struct urb *urb)
>         if (!tp)
>                 return;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (!test_bit(WORK_ENABLE, &tp->flags))
> @@ -1850,7 +1850,7 @@ static void write_bulk_callback(struct urb *urb)
>         if (!test_bit(WORK_ENABLE, &tp->flags))
>                 return;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (!skb_queue_empty(&tp->tx_queue))
> @@ -1871,7 +1871,7 @@ static void intr_callback(struct urb *urb)
>         if (!test_bit(WORK_ENABLE, &tp->flags))
>                 return;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         switch (status) {
> @@ -2615,7 +2615,7 @@ static void bottom_half(struct tasklet_struct *t)
>  {
>         struct r8152 *tp = from_tasklet(tp, t, tx_tl);
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (!test_bit(WORK_ENABLE, &tp->flags))
> @@ -2658,7 +2658,7 @@ int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
>         int ret;
>
>         /* The rx would be stopped, so skip submitting */
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags) ||
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) ||
>             !test_bit(WORK_ENABLE, &tp->flags) || !netif_carrier_ok(tp->netdev))
>                 return 0;
>
> @@ -3058,7 +3058,7 @@ static int rtl_enable(struct r8152 *tp)
>
>  static int rtl8152_enable(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         set_tx_qlen(tp);
> @@ -3145,7 +3145,7 @@ static int rtl8153_enable(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         set_tx_qlen(tp);
> @@ -3177,7 +3177,7 @@ static void rtl_disable(struct r8152 *tp)
>         u32 ocp_data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 return;
>         }
> @@ -3631,7 +3631,7 @@ static u16 r8153_phy_status(struct r8152 *tp, u16 desired)
>                 }
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         break;
>         }
>
> @@ -3663,7 +3663,7 @@ static void r8153b_ups_en(struct r8152 *tp, bool enable)
>                         int i;
>
>                         for (i = 0; i < 500; i++) {
> -                               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +                               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                                         return;
>                                 if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
>                                     AUTOLOAD_DONE)
> @@ -3705,7 +3705,7 @@ static void r8153c_ups_en(struct r8152 *tp, bool enable)
>                         int i;
>
>                         for (i = 0; i < 500; i++) {
> -                               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +                               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                                         return;
>                                 if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
>                                     AUTOLOAD_DONE)
> @@ -4050,8 +4050,8 @@ static int rtl_phy_patch_request(struct r8152 *tp, bool request, bool wait)
>         for (i = 0; wait && i < 5000; i++) {
>                 u32 ocp_data;
>
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> -                       break;
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
> +                       return -ENODEV;
>
>                 usleep_range(1000, 2000);
>                 ocp_data = ocp_reg_read(tp, OCP_PHY_PATCH_STAT);
> @@ -6009,7 +6009,7 @@ static int rtl8156_enable(struct r8152 *tp)
>         u32 ocp_data;
>         u16 speed;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         r8156_fc_parameter(tp);
> @@ -6067,7 +6067,7 @@ static int rtl8156b_enable(struct r8152 *tp)
>         u32 ocp_data;
>         u16 speed;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         set_tx_qlen(tp);
> @@ -6253,7 +6253,7 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex,
>
>  static void rtl8152_up(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8152_aldps_en(tp, false);
> @@ -6263,7 +6263,7 @@ static void rtl8152_up(struct r8152 *tp)
>
>  static void rtl8152_down(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 return;
>         }
> @@ -6278,7 +6278,7 @@ static void rtl8153_up(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153_u1u2en(tp, false);
> @@ -6318,7 +6318,7 @@ static void rtl8153_down(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 return;
>         }
> @@ -6339,7 +6339,7 @@ static void rtl8153b_up(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_u1u2en(tp, false);
> @@ -6363,7 +6363,7 @@ static void rtl8153b_down(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 return;
>         }
> @@ -6400,7 +6400,7 @@ static void rtl8153c_up(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_u1u2en(tp, false);
> @@ -6481,7 +6481,7 @@ static void rtl8156_up(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_u1u2en(tp, false);
> @@ -6554,7 +6554,7 @@ static void rtl8156_down(struct r8152 *tp)
>  {
>         u32 ocp_data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 return;
>         }
> @@ -6692,7 +6692,7 @@ static void rtl_work_func_t(struct work_struct *work)
>         /* If the device is unplugged or !netif_running(), the workqueue
>          * doesn't need to wake the device, and could return directly.
>          */
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags) || !netif_running(tp->netdev))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) || !netif_running(tp->netdev))
>                 return;
>
>         if (usb_autopm_get_interface(tp->intf) < 0)
> @@ -6731,7 +6731,7 @@ static void rtl_hw_phy_work_func_t(struct work_struct *work)
>  {
>         struct r8152 *tp = container_of(work, struct r8152, hw_phy_work.work);
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (usb_autopm_get_interface(tp->intf) < 0)
> @@ -6858,7 +6858,7 @@ static int rtl8152_close(struct net_device *netdev)
>         netif_stop_queue(netdev);
>
>         res = usb_autopm_get_interface(tp->intf);
> -       if (res < 0 || test_bit(RTL8152_UNPLUG, &tp->flags)) {
> +       if (res < 0 || test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
>                 rtl_drop_queued_tx(tp);
>                 rtl_stop_rx(tp);
>         } else {
> @@ -6891,7 +6891,7 @@ static void r8152b_init(struct r8152 *tp)
>         u32 ocp_data;
>         u16 data;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         data = r8152_mdio_read(tp, MII_BMCR);
> @@ -6935,7 +6935,7 @@ static void r8153_init(struct r8152 *tp)
>         u16 data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153_u1u2en(tp, false);
> @@ -6946,7 +6946,7 @@ static void r8153_init(struct r8152 *tp)
>                         break;
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         break;
>         }
>
> @@ -7075,7 +7075,7 @@ static void r8153b_init(struct r8152 *tp)
>         u16 data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_u1u2en(tp, false);
> @@ -7086,7 +7086,7 @@ static void r8153b_init(struct r8152 *tp)
>                         break;
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         break;
>         }
>
> @@ -7157,7 +7157,7 @@ static void r8153c_init(struct r8152 *tp)
>         u16 data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_u1u2en(tp, false);
> @@ -7177,7 +7177,7 @@ static void r8153c_init(struct r8152 *tp)
>                         break;
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         return;
>         }
>
> @@ -8006,7 +8006,7 @@ static void r8156_init(struct r8152 *tp)
>         u16 data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP);
> @@ -8027,7 +8027,7 @@ static void r8156_init(struct r8152 *tp)
>                         break;
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         return;
>         }
>
> @@ -8102,7 +8102,7 @@ static void r8156b_init(struct r8152 *tp)
>         u16 data;
>         int i;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP);
> @@ -8136,7 +8136,7 @@ static void r8156b_init(struct r8152 *tp)
>                         break;
>
>                 msleep(20);
> -               if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +               if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                         return;
>         }
>
> @@ -9165,7 +9165,7 @@ static int rtl8152_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
>         struct mii_ioctl_data *data = if_mii(rq);
>         int res;
>
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return -ENODEV;
>
>         res = usb_autopm_get_interface(tp->intf);
> @@ -9267,7 +9267,7 @@ static const struct net_device_ops rtl8152_netdev_ops = {
>
>  static void rtl8152_unload(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         if (tp->version != RTL_VER_01)
> @@ -9276,7 +9276,7 @@ static void rtl8152_unload(struct r8152 *tp)
>
>  static void rtl8153_unload(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153_power_cut_en(tp, false);
> @@ -9284,7 +9284,7 @@ static void rtl8153_unload(struct r8152 *tp)
>
>  static void rtl8153b_unload(struct r8152 *tp)
>  {
> -       if (test_bit(RTL8152_UNPLUG, &tp->flags))
> +       if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
>                 return;
>
>         r8153b_power_cut_en(tp, false);
> --
> 2.42.0.758.gaed0368e0e-goog
>

  reply	other threads:[~2023-10-21 15:06 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-20 21:06 [PATCH v5 0/8] r8152: Avoid writing garbage to the adapter's registers Douglas Anderson
2023-10-20 21:06 ` [PATCH v5 1/8] r8152: Increase USB control msg timeout to 5000ms as per spec Douglas Anderson
2023-10-21 14:48   ` Grant Grundler
2023-10-24  1:23   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 2/8] r8152: Run the unload routine if we have errors during probe Douglas Anderson
2023-10-21 14:50   ` Grant Grundler
2023-10-24  1:24   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 3/8] r8152: Cancel hw_phy_work if we have an error in probe Douglas Anderson
2023-10-21 14:52   ` Grant Grundler
2023-10-24  1:24   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 4/8] r8152: Release firmware " Douglas Anderson
2023-10-21 15:01   ` Grant Grundler
2023-10-24  1:25   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 5/8] r8152: Check for unplug in rtl_phy_patch_request() Douglas Anderson
2023-10-21 15:03   ` Grant Grundler
2023-10-24  1:25   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 6/8] r8152: Check for unplug in r8153b_ups_en() / r8153c_ups_en() Douglas Anderson
2023-10-21 15:05   ` Grant Grundler
2023-10-24  1:25   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 7/8] r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE Douglas Anderson
2023-10-21 15:06   ` Grant Grundler [this message]
2023-10-24  1:26   ` Florian Fainelli
2023-10-20 21:06 ` [PATCH v5 8/8] r8152: Block future register access if register access fails Douglas Anderson
2023-10-21 15:35   ` Grant Grundler
2023-10-25 16:28   ` Simon Horman
2023-10-25 20:24     ` Doug Anderson
2023-11-03 16:52       ` Simon Horman
2023-10-22 10:50 ` [PATCH v5 0/8] r8152: Avoid writing garbage to the adapter's registers patchwork-bot+netdevbpf
2023-10-24  1:27   ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANEJEGsBxMq92F6vgYw73aLPVabj8ZuBybbSe9xjE3ORSYq1-w@mail.gmail.com \
    --to=grundler@chromium.org \
    --cc=bjorn@mork.no \
    --cc=davem@davemloft.net \
    --cc=dianders@chromium.org \
    --cc=ecgh@chromium.org \
    --cc=edumazet@google.com \
    --cc=hayeswang@realtek.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=laura.nao@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.