aboutsummaryrefslogtreecommitdiffstats
path: root/usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-03-30 10:17:36 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-03-30 10:17:36 +0100
commit40c493e29885df8b9e3eaef8418af97ce8a90967 (patch)
tree027d2db67f512bc754bd315b69330af03f88be68 /usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch
parentfcc8d57689005dc360ad29bc63d06a844efc11c4 (diff)
downloadpatches-40c493e29885df8b9e3eaef8418af97ce8a90967.tar.gz
new patches added
Diffstat (limited to 'usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch')
-rw-r--r--usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch b/usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch
new file mode 100644
index 00000000000000..83641335d1f9b1
--- /dev/null
+++ b/usb-usb.h-tweak-struct-urb-to-remove-wasted-space.patch
@@ -0,0 +1,35 @@
+From cde8161f9ee466655588b66a106276044b2fc282 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Fri, 1 Mar 2019 18:13:27 +0100
+Subject: [PATCH] USB: usb.h: tweak struct urb to remove wasted space
+
+By moving one field around in 'struct urb' we reduce the size of the
+structure by 8 bytes.
+
+Before the patch on x86_64 the overall size of the structure as reported
+by pahole was:
+ /* size: 192, cachelines: 3, members: 30 */
+ /* sum members: 184, holes: 2, sum holes: 8 */
+After the patch we now have:
+ /* size: 184, cachelines: 3, members: 30 */
+ /* last cacheline: 56 bytes */
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/usb.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/usb.h
++++ b/include/linux/usb.h
+@@ -1545,10 +1545,10 @@ typedef void (*usb_complete_t)(struct ur
+ struct urb {
+ /* private: usb core and host controller only fields in the urb */
+ struct kref kref; /* reference count of the URB */
++ int unlinked; /* unlink error code */
+ void *hcpriv; /* private data for host controller */
+ atomic_t use_count; /* concurrent submissions counter */
+ atomic_t reject; /* submissions will fail */
+- int unlinked; /* unlink error code */
+
+ /* public: documented fields in the urb that can be used by drivers */
+ struct list_head urb_list; /* list head for use by the urb's