From 7addb4724db6fb1cdf02f5a04cbd296d9b53c26e Mon Sep 17 00:00:00 2001
From: Oliver Neukum <oneukum@suse.de>
Date: Thu, 7 Feb 2013 17:29:03 +0100
Subject: [PATCH 2/3] Add a void* suse_kabi_padding placeholder to some USB
structures
Patch-mainline: Never, kabi
References: fate#312013
---
include/linux/usb.h | 7 +++++++
include/linux/usb/hcd.h | 2 ++
include/linux/usb/usbnet.h | 2 ++
3 files changed, 11 insertions(+)
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -256,6 +256,7 @@ struct usb_interface {
struct device dev; /* interface specific device info */
struct device *usb_dev;
struct work_struct reset_ws; /* for resets in atomic context */
+ void *suse_kabi_padding;
};
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
@@ -401,6 +402,7 @@ struct usb_host_bos {
struct usb_ssp_cap_descriptor *ssp_cap;
struct usb_ss_container_id_descriptor *ss_id;
struct usb_ptm_cap_descriptor *ptm_cap;
+ void *suse_kabi_padding;
};
int __usb_get_extra_descriptor(char *buffer, unsigned size,
@@ -465,6 +467,7 @@ struct usb_bus {
struct mon_bus *mon_bus; /* non-null when associated */
int monitored; /* non-zero when monitored */
#endif
+ void *suse_kabi_padding;
};
struct usb_dev_state;
@@ -688,6 +691,8 @@ struct usb_device {
struct usb3_lpm_parameters u1_params;
struct usb3_lpm_parameters u2_params;
unsigned lpm_disable_count;
+
+ void *suse_kabi_padding;
};
#define to_usb_device(d) container_of(d, struct usb_device, dev)
@@ -1180,6 +1185,7 @@ struct usb_driver {
struct usb_dynids dynids;
struct usbdrv_wrap drvwrap;
+ void *suse_kabi_padding;
unsigned int no_dynamic_id:1;
unsigned int supports_autosuspend:1;
unsigned int disable_hub_initiated_lpm:1;
@@ -1559,6 +1565,7 @@ struct urb {
usb_complete_t complete; /* (in) completion routine */
struct usb_iso_packet_descriptor iso_frame_desc[0];
/* (in) ISO ONLY */
+ void *suse_kabi_padding;
};
/* ----------------------------------------------------------------------- */
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -211,6 +211,7 @@ struct usb_hcd {
* (ohci 32, uhci 1024, ehci 256/512/1024).
*/
+ void *suse_kabi_padding;
/* The HC driver's private data is stored at the end of
* this structure.
*/
@@ -399,6 +400,7 @@ struct hc_driver {
/* Call for power on/off the port if necessary */
int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
+ void *suse_kabi_padding;
};
static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -82,6 +82,7 @@ struct usbnet {
# define EVENT_LINK_CHANGE 11
# define EVENT_SET_RX_MODE 12
# define EVENT_NO_IP_ALIGN 13
+ void *suse_kabi_padding;
u32 rx_speed; /* in bps - NOT Mbps */
u32 tx_speed; /* in bps - NOT Mbps */
};
@@ -173,6 +174,7 @@ struct driver_info {
int out; /* tx endpoint */
unsigned long data; /* Misc driver specific data */
+ void *suse_kabi_padding;
};
/* Minidrivers are just drivers using the "usbnet" core as a powerful