linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Philippe Bertin <philippe@brightsoft.be>
To: linux-hotplug@vger.kernel.org
Subject: Is my hotplug configuration not OK for CDCEther when connecting my Ethernet device over USB ?
Date: Thu, 24 Jul 2003 18:55:54 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-105907295428176@msgid-missing> (raw)

[-- Attachment #1: Type: text/plain, Size: 2453 bytes --]

'Llo All,

I have been using CDCEther recently, a device driver that is to be 
driving CDC- devices (over USB, that is). It should be working (as a 
design goal) with a standard Linux host. However, up to now I only get 
it working in around 5 percent of the cases. At first, I thought that it 
was due to the CDCEther- module that my device didn't get started. But 
in the running of my tests, I've started suspecting my hotplug 
configuration. When it works OK (like I said, in around 5 percent of the 
cases), I get a log like in attachment 1 (log_OK). When it does not 
work, I get a log like in attachment 2 (log_NOT_OK).

What is happening, is that my Linux CDC host driver (i.e. CDCEther) does 
(most of the times) not come to the point of sending the USB- command 
'Set Interface 1, Alternate 1'. This is needed before my CDC- device can 
start sending/receiving Ethernet frames. I see that CDCEther correctly 
claims the USB- device (see the logs), but that's all. Because all 
descriptors are fetched by the host (I believe that's done by the USB- 
generic part of the kernel, not so ?), and they are correctly answered 
by my device. But at the point where the host should send 'Set Intf 1 
Alt 0' which should after some time be succeeded by 'Set Intf 1 Alt 1', 
nothing happens. I have started thinking that the host only does this 
once he has been able to create an eth1- device (see the logs).

IF the system comes to the point of finding the needed hotplug 
information (i.e., if there is not that bunch of hotplug- errors in the 
log), it looks like there is a valid eth1 created. But in the other 
case, I get a whole lot of errors in the log, and there is NO eth1- 
device created. In the good case, the CDCEther- driver selects Intf 1 
Alt 1, and thus there can be network traffic (which I am still to debug, 
but then I'd at least have a working test configuration...) What is 
bothering me, is that it SOMETIMES works. Are there reasons to believe 
there are some timing issues involved here ?

I am using SuSE linux 8.2, so kernel 2.4.20. I already tried the same 
with the new 2.6 standard kernel (using usbnet, the replacing module for 
the 2.4- kernel CDCEther module). But apart from having less debug 
information, the phenomenon remains the same.

Thanks for any helpful answer,

Kind regards,

Philippe Bertin.

P.S. I think that this newsgroup is the most feasable for my problem, 
unless ... linux-usb-devel or -users ?

[-- Attachment #2: log_OK --]
[-- Type: text/plain, Size: 5992 bytes --]

Jul 24 10:32:38 bvwcltbp kernel: hub.c: new USB device 00:1f.2-2, assigned address 17
Jul 24 10:32:38 bvwcltbp kernel: usb.c: kmalloc IF c2cb73a0, numif 2
Jul 24 10:32:38 bvwcltbp kernel: usb.c: skipping descriptor 0x24
Jul 24 10:32:38 bvwcltbp last message repeated 2 times
Jul 24 10:32:38 bvwcltbp kernel: usb.c: skipped 3 class/vendor specific endpoint descriptors
Jul 24 10:32:38 bvwcltbp kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
Jul 24 10:32:38 bvwcltbp kernel: usb.c: USB device number 17 default language ID 0x409
Jul 24 10:32:38 bvwcltbp kernel: Manufacturer: [correctly shown]
Jul 24 10:32:38 bvwcltbp kernel: Product: [correctly shown]
Jul 24 10:32:38 bvwcltbp kernel: SerialNumber: [correctly shown]
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Ethernet information found at device configuration.  Trying to use it anyway.
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Found Header descriptor, CDC version 110.
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Imperfect filtering support - need sw hashing
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Can't use SetEthernetMulticastFilters request
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: detected BULK OUT packets of size 64
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: interrupt address: 1
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: interrupt interval: 10
Jul 24 10:32:38 bvwcltbp kernel: usb.c: ignoring set_interface for dev 17, iface 0, alt 0
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: eth1: [Manufacturer, Product ID and Ser Nr correctly shown]
Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: eth1: [Eth MAC address correctly shown]
Jul 24 10:32:38 bvwcltbp kernel: usb.c: CDCEther driver claimed interface c2cb73b8
Jul 24 10:32:38 bvwcltbp kernel: usb.c: CDCEther driver claimed interface c2cb73a0
Jul 24 10:32:38 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 17
Jul 24 10:32:38 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 17
Jul 24 10:32:38 bvwcltbp kernel: hub.c: port 1, portstatus 303, change 0, 1.5 Mb/s
Jul 24 10:32:38 bvwcltbp kernel: hub.c: port 2, portstatus 103, change 0, 12 Mb/s
Jul 24 10:32:42 bvwcltbp /etc/hotplug/usb.agent[7613]: writing usb-1-17 to /var/run/hotplug/net
Jul 24 10:32:42 bvwcltbp /etc/hotplug/net.agent[7571]: Using HW description eth-usb-1-17 
Jul 24 10:32:42 bvwcltbp kernel: CDCEther.c: eth1: set multicast filters
Jul 24 10:32:42 bvwcltbp kernel: CDCEther.c: eth1: too many MC filters for hardware, using allmulti
Jul 24 10:32:42 bvwcltbp last message repeated 4 times
Jul 24 10:32:43 bvwcltbp /etc/hotplug/net.agent[7505]: No HW description found ... exiting
Jul 24 10:32:45 bvwcltbp /etc/hotplug/usb.agent[7706]: writing usb-1-17 to /var/run/hotplug/net
Jul 24 10:32:53 bvwcltbp kernel: eth1: no IPv6 routers present
Jul 24 10:33:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:33:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:33:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:33:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:33:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:33:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:33:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:33:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:33:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:34:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:34:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:34:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:34:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:34:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:34:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:34:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:34:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:34:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:35:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:35:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:35:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:35:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:35:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:35:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:35:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:35:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:35:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:36:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:36:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:36:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:36:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:36:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:36:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:36:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out
Jul 24 10:36:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out.
Jul 24 10:36:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104
Jul 24 10:37:00 bvwcltbp kernel: usb-uhci.c: interrupt, status 2, frame# 915
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: TX status -110
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84
Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84

[-- Attachment #3: log_NOT_OK --]
[-- Type: text/plain, Size: 8358 bytes --]

Jul 24 10:37:28 bvwcltbp kernel: hub.c: new USB device 00:1f.2-2, assigned address 18
Jul 24 10:37:28 bvwcltbp kernel: usb.c: kmalloc IF c2cb73a0, numif 2
Jul 24 10:37:28 bvwcltbp kernel: usb.c: skipping descriptor 0x24
Jul 24 10:37:28 bvwcltbp last message repeated 2 times
Jul 24 10:37:28 bvwcltbp kernel: usb.c: skipped 3 class/vendor specific endpoint descriptors
Jul 24 10:37:28 bvwcltbp kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
Jul 24 10:37:28 bvwcltbp kernel: usb.c: USB device number 18 default language ID 0x409
Jul 24 10:37:28 bvwcltbp kernel: Manufacturer: ALCATEL
Jul 24 10:37:28 bvwcltbp kernel: Product: SpeedTouch 500 Series
Jul 24 10:37:28 bvwcltbp kernel: SerialNumber: 0090D05A60FF
Jul 24 10:37:28 bvwcltbp kernel: usb.c: unhandled interfaces on device
Jul 24 10:37:28 bvwcltbp kernel: usb.c: USB device 18 (vend/prod 0x6b9/0x4062) is not claimed by any active driver.
Jul 24 10:37:28 bvwcltbp kernel:   Length              = 18
Jul 24 10:37:28 bvwcltbp kernel:   DescriptorType      = 01
Jul 24 10:37:28 bvwcltbp kernel:   USB version         = 1.10
Jul 24 10:37:28 bvwcltbp kernel:   Vendor:Product      = xxxx:yyyy
Jul 24 10:37:28 bvwcltbp kernel:   MaxPacketSize0      = 64
Jul 24 10:37:28 bvwcltbp kernel:   NumConfigurations   = 1
Jul 24 10:37:28 bvwcltbp kernel:   Device version      = 3.00
Jul 24 10:37:28 bvwcltbp kernel:   Device Class:SubClass:Protocol = 02:00:00
Jul 24 10:37:28 bvwcltbp kernel:     Communications class
Jul 24 10:37:28 bvwcltbp kernel: Configuration:
Jul 24 10:37:28 bvwcltbp kernel:   bLength             =    9
Jul 24 10:37:28 bvwcltbp kernel:   bDescriptorType     =   02
Jul 24 10:37:28 bvwcltbp kernel:   wTotalLength        = 0050
Jul 24 10:37:28 bvwcltbp kernel:   bNumInterfaces      =   02
Jul 24 10:37:28 bvwcltbp kernel:   bConfigurationValue =   01
Jul 24 10:37:28 bvwcltbp kernel:   iConfiguration      =   00
Jul 24 10:37:28 bvwcltbp kernel:   bmAttributes        =   c0
Jul 24 10:37:28 bvwcltbp kernel:   MaxPower            =    0mA
Jul 24 10:37:28 bvwcltbp kernel: 
Jul 24 10:37:28 bvwcltbp kernel:   Interface: 0
Jul 24 10:37:28 bvwcltbp kernel:   Alternate Setting:  0
Jul 24 10:37:28 bvwcltbp kernel:     bLength             =    9
Jul 24 10:37:28 bvwcltbp kernel:     bDescriptorType     =   04
Jul 24 10:37:28 bvwcltbp kernel:     bInterfaceNumber    =   00
Jul 24 10:37:28 bvwcltbp kernel:     bAlternateSetting   =   00
Jul 24 10:37:28 bvwcltbp kernel:     bNumEndpoints       =   01
Jul 24 10:37:28 bvwcltbp kernel:     bInterface Class:SubClass:Protocol =   02:06:00
Jul 24 10:37:28 bvwcltbp kernel:     iInterface          =   00
Jul 24 10:37:28 bvwcltbp kernel:     Endpoint:
Jul 24 10:37:28 bvwcltbp kernel:       bLength             =    7
Jul 24 10:37:28 bvwcltbp kernel:       bDescriptorType     =   05
Jul 24 10:37:28 bvwcltbp kernel:       bEndpointAddress    =   81 (in)
Jul 24 10:37:28 bvwcltbp kernel:       bmAttributes        =   03 (Interrupt)
Jul 24 10:37:28 bvwcltbp kernel:       wMaxPacketSize      = 0008
Jul 24 10:37:28 bvwcltbp kernel:       bInterval           =   0a
Jul 24 10:37:28 bvwcltbp kernel: 
Jul 24 10:37:28 bvwcltbp kernel:   Interface: 1
Jul 24 10:37:28 bvwcltbp kernel:   Alternate Setting:  0
Jul 24 10:37:28 bvwcltbp kernel:     bLength             =    9
Jul 24 10:37:28 bvwcltbp kernel:     bDescriptorType     =   04
Jul 24 10:37:28 bvwcltbp kernel:     bInterfaceNumber    =   01
Jul 24 10:37:28 bvwcltbp kernel:     bAlternateSetting   =   00
Jul 24 10:37:28 bvwcltbp kernel:     bNumEndpoints       =   00
Jul 24 10:37:28 bvwcltbp kernel:     bInterface Class:SubClass:Protocol =   0a:00:00
Jul 24 10:37:28 bvwcltbp kernel:     iInterface          =   00
Jul 24 10:37:28 bvwcltbp kernel:   Alternate Setting:  1
Jul 24 10:37:28 bvwcltbp kernel:     bLength             =    9
Jul 24 10:37:28 bvwcltbp kernel:     bDescriptorType     =   04
Jul 24 10:37:28 bvwcltbp kernel:     bInterfaceNumber    =   01
Jul 24 10:37:28 bvwcltbp kernel:     bAlternateSetting   =   01
Jul 24 10:37:28 bvwcltbp kernel:     bNumEndpoints       =   02
Jul 24 10:37:28 bvwcltbp kernel:     bInterface Class:SubClass:Protocol =   0a:00:00
Jul 24 10:37:28 bvwcltbp kernel:     iInterface          =   00
Jul 24 10:37:28 bvwcltbp kernel:     Endpoint:
Jul 24 10:37:28 bvwcltbp kernel:       bLength             =    7
Jul 24 10:37:28 bvwcltbp kernel:       bDescriptorType     =   05
Jul 24 10:37:28 bvwcltbp kernel:       bEndpointAddress    =   04 (out)
Jul 24 10:37:28 bvwcltbp kernel:       bmAttributes        =   02 (Bulk)
Jul 24 10:37:28 bvwcltbp kernel:       wMaxPacketSize      = 0040
Jul 24 10:37:28 bvwcltbp kernel:       bInterval           =   00
Jul 24 10:37:28 bvwcltbp kernel:     Endpoint:
Jul 24 10:37:28 bvwcltbp kernel:       bLength             =    7
Jul 24 10:37:28 bvwcltbp kernel:       bDescriptorType     =   05
Jul 24 10:37:28 bvwcltbp kernel:       bEndpointAddress    =   85 (in)
Jul 24 10:37:28 bvwcltbp kernel:       bmAttributes        =   02 (Bulk)
Jul 24 10:37:28 bvwcltbp kernel:       wMaxPacketSize      = 0040
Jul 24 10:37:28 bvwcltbp kernel:       bInterval           =   00
Jul 24 10:37:28 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 18
Jul 24 10:37:28 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 18
Jul 24 10:37:28 bvwcltbp kernel: hub.c: port 1, portstatus 303, change 0, 1.5 Mb/s
Jul 24 10:37:28 bvwcltbp kernel: hub.c: port 2, portstatus 103, change 0, 12 Mb/s
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 80 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0
Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6
Jul 24 10:37:31 bvwcltbp /etc/hotplug/usb.agent[7919]: cannot get config descriptor 0, No such device or address (6)
Jul 24 10:37:31 bvwcltbp last message repeated 6 times
Jul 24 10:37:31 bvwcltbp /etc/hotplug/usb.agent[7918]: cannot get config descriptor 0, No such device or address (6)
Jul 24 10:37:31 bvwcltbp last message repeated 5 times

                 reply	other threads:[~2003-07-24 18:55 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=marc-linux-hotplug-105907295428176@msgid-missing \
    --to=philippe@brightsoft.be \
    --cc=linux-hotplug@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).