All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miles Lane <miles@megapathdsl.net>
To: linux-hotplug@vger.kernel.org
Subject: Re: (Linus, please respond!) Re: Roadmap to restoring working usbmodule
Date: Sun, 21 Jan 2001 04:49:23 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-98005255711580@msgid-missing> (raw)

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


> I have absolutely no idea of even what patch you are talking about...

I have attached the patch.

> I want to have a
> totally overriding reason for specific patches (and they'd better be small
> to be even considered), and I'm not going to bother even answering
> "discussion" as this has been for the last week.

The patch is small.  It's documented.  It's been tested.
It's needed for hotplugging to work.  That's all.

[-- Attachment #2: KiethOwensPatch.txt --]
[-- Type: text/plain, Size: 5887 bytes --]

Index: 0.1/include/linux/usb.h
--- 0.1/include/linux/usb.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/Z/38_usb.h 1.1 644)
+++ 0.1(w)/include/linux/usb.h Sun, 07 Jan 2001 22:36:31 +1100 kaos (linux-2.4/Z/38_usb.h 1.1 644)
@@ -344,12 +344,18 @@ struct usb_device;
 #define USB_INTERFACE_INFO(cl,sc,pr) \
        match_flags: USB_DEVICE_ID_MATCH_INT_INFO, bInterfaceClass: (cl), bInterfaceSubClass: (sc), bInterfaceProtocol: (pr)

-struct usb_device_id {
-       /* This bitmask is used to determine which of the following fields
-        * are to be used for matching.
-        */
-       __u16           match_flags;
+/* match_flags added in 2.4.0 but at the start which messed up depmod.
+ * match_flags moved to before driver_info in 2.4.1 by KAO, you also need
+ * modutils 2.4.1.  USB modules cannot be supported in kernel 2.4.0,
+ * insufficient data to detect which table format is being used.
+ *
+ * Do NOT change this table format without checking with the modutils
+ * maintainer.  This is an ABI visible structure.
+ */
+
+#define usb_device_id_ver      2       /* Version 2 table */

+struct usb_device_id {
        /*
         * vendor/product codes are checked, if vendor is nonzero
         * Range is for device revision (bcdDevice), inclusive;
@@ -374,6 +380,11 @@ struct usb_device_id {
        __u8            bInterfaceClass;
        __u8            bInterfaceSubClass;
        __u8            bInterfaceProtocol;
+
+       /* This bitmask is used to determine which of the preceding fields
+        * are to be used for matching.
+        */
+       __u16           match_flags;    /* New in version 2 */

        /*
         * for driver's use; not involved in driver matching.
Index: 0.1/include/linux/isapnp.h
--- 0.1/include/linux/isapnp.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/b/b/11_isapnp.h 1.1 644)
+++ 0.1(w)/include/linux/isapnp.h Sun, 07 Jan 2001 22:36:40 +1100 kaos (linux-2.4/b/b/11_isapnp.h 1.1 644)
@@ -142,6 +142,16 @@ struct isapnp_resources {
 #define ISAPNP_CARD_TABLE(name) \
                MODULE_GENERIC_TABLE(isapnp_card, name)

+/* Do NOT change the format of struct isapnp_card_id, struct isapnp_device_id or
+ * the value of ISAPNP_CARD_DEVS without checking with the modutils maintainer.
+ * These are ABI visible structures and defines.
+ *
+ * isapnp_device_id_ver is a single version number for the combination of
+ * struct isapnp_card_id and struct isapnp_device_id.
+ */
+
+#define isapnp_device_id_ver   1       /* Version 1 tables */
+
 struct isapnp_card_id {
        unsigned long driver_data;      /* data private to the driver */
        unsigned short card_vendor, card_device;
Index: 0.1/include/linux/module.h
--- 0.1/include/linux/module.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/c/b/46_module.h 1.1 644)
+++ 0.1(w)/include/linux/module.h Sun, 07 Jan 2001 22:07:49 +1100 kaos (linux-2.4/c/b/46_module.h 1.1 644)
@@ -242,19 +242,17 @@ __attribute__((section(".modinfo"))) =
  * isapnp - struct isapnp_device_id - List of ISA PnP ids supported by this module
  * usb - struct usb_device_id - List of USB ids supported by this module
  */
-#define MODULE_GENERIC_TABLE(gtype,name)       \
-static const unsigned long __module_##gtype##_size \
-  __attribute__ ((unused)) = sizeof(struct gtype##_id); \
-static const struct gtype##_id * __module_##gtype##_table \
-  __attribute__ ((unused)) = name
-#define MODULE_DEVICE_TABLE(type,name)         \
-  MODULE_GENERIC_TABLE(type##_device,name)
-/* not put to .modinfo section to avoid section type conflicts */

-/* The attributes of a section are set the first time the section is
-   seen; we want .modinfo to not be allocated.  */
+#define MODULE_GENERIC_TABLE(gtype,name)                       \
+static const unsigned long __module_##gtype##_size             \
+  __attribute__ ((unused)) = sizeof(struct gtype##_id);                \
+static const unsigned long __module_##gtype##_ver              \
+  __attribute__ ((unused)) = gtype##_id_ver;                   \
+static const struct gtype##_id * __module_##gtype##_table      \
+  __attribute__ ((unused)) = name

-__asm__(".section .modinfo\n\t.previous");
+#define MODULE_DEVICE_TABLE(type,name)                         \
+  MODULE_GENERIC_TABLE(type##_device,name)

 /* Define the module variable, and usage macros.  */
 extern struct module __this_module;
Index: 0.1/include/linux/pci.h
--- 0.1/include/linux/pci.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/f/b/12_pci.h 1.1 644)
+++ 0.1(w)/include/linux/pci.h Sun, 07 Jan 2001 22:36:09 +1100 kaos (linux-2.4/f/b/12_pci.h 1.1 644)
@@ -439,6 +439,12 @@ struct pbus_set_ranges_data
        unsigned long mem_start, mem_end;
 };

+/* Do NOT change this table format without checking with the modutils
+ * maintainer.  This is an ABI visible structure.
+ */
+
+#define pci_device_id_ver      1       /* Version 1 table */
+
 struct pci_device_id {
        unsigned int vendor, device;            /* Vendor and device ID or PCI_ANY_ID */
        unsigned int subvendor, subdevice;      /* Subsystem ID's or PCI_ANY_ID */
Index: 0.1/Documentation/Changes
--- 0.1/Documentation/Changes Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/Z/c/26_Changes 1.1 644)
+++ 0.4(w)/Documentation/Changes Tue, 09 Jan 2001 02:43:44 +1100 kaos (linux-2.4/Z/c/26_Changes 1.1 644)
@@ -52,7 +52,7 @@ o  Gnu C                  2.91.66
 o  Gnu make               3.77                    # make --version
 o  binutils               2.9.1.0.25              # ld -v
 o  util-linux             2.10o                   # fdformat --version
-o  modutils               2.4.0                   # insmod -V
+o  modutils               2.4.1                   # insmod -V
 o  e2fsprogs              1.19                    # tune2fs --version
 o  pcmcia-cs              3.1.21                  # cardmgr -V
 o  PPP                    2.4.0                   # pppd --version

             reply	other threads:[~2001-01-21  4:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-21  4:49 Miles Lane [this message]
2001-01-21  4:55 ` (Linus, please respond!) Re: Roadmap to restoring working usbmodule Miles Lane

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-98005255711580@msgid-missing \
    --to=miles@megapathdsl.net \
    --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 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.