From: Manjunath Govindashetty Date: Sat, 14 Nov 2015 05:54:30 +0000 (-0800) Subject: KABI Padding to allow future extensions X-Git-Tag: v4.1.12-92~234^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f0d2dd95edd0707fd8728110cf102732f9c6c59f;p=users%2Fjedix%2Flinux-maple.git KABI Padding to allow future extensions Padding for struct Scsi_Host , pci_dev , pci_driver for future extension while preserving ABI Orabug: 22227652 Signed-off-by: Manjunath Govindashetty --- diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index d92357eeed07..e277382494e4 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -6,7 +6,6 @@ #define __LINUX_BLK_TYPES_H #include -#include struct bio_set; struct bio; diff --git a/include/linux/pci.h b/include/linux/pci.h index 353db8dc4c6e..90a6ffe468c8 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -33,6 +33,7 @@ #include #include +#include /* * The PCI interface treats multi-function devices as independent @@ -379,6 +380,14 @@ struct pci_dev { phys_addr_t rom; /* Physical address of ROM if it's not from the BAR */ size_t romlen; /* Length of ROM if it's not from the BAR */ char *driver_override; /* Driver name to force a match */ +/* + * Oracle Specific Extension to accomodate future upstream changes to this structure + * yet maintain KABI. For Oracle internal use only! + */ + UEK_KABI_EXTEND(u8 uek_reserved1) + UEK_KABI_EXTEND(u16 uek_reserved2) + UEK_KABI_EXTEND(unsigned int uek_reserved3) + UEK_KABI_EXTEND(u64 uek_reserved4) }; static inline struct pci_dev *pci_physfn(struct pci_dev *dev) @@ -389,7 +398,6 @@ static inline struct pci_dev *pci_physfn(struct pci_dev *dev) #endif return dev; } - struct pci_dev *pci_alloc_dev(struct pci_bus *bus); #define to_pci_dev(n) container_of(n, struct pci_dev, dev) @@ -656,6 +664,10 @@ struct pci_driver { const struct pci_error_handlers *err_handler; struct device_driver driver; struct pci_dynids dynids; +/* Extension to accomodate future upstream changes to this structure + * yet maintain KABI. For Oracle internal use only! + */ + int (*uek_reserved)(struct pci_dev *dev); }; #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index e113c757d555..910aa0279395 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -8,6 +8,7 @@ #include #include #include +#include #include struct request_queue; @@ -735,7 +736,24 @@ struct Scsi_Host { * Needed just in case we have virtual hosts. */ struct device *dma_dev; - +/* FOR Oracle USE ONLY + * + * The following padding has been inserted before ABI freeze to + * allow extending the structure while preserve ABI. + * + */ + UEK_KABI_RESERVED_P(1) + UEK_KABI_RESERVED_P(2) + UEK_KABI_RESERVED_P(3) + UEK_KABI_RESERVED_P(4) + UEK_KABI_RESERVED_P(5) + UEK_KABI_RESERVED_P(6) + unsigned int scsi_mq_reserved1; + unsigned int scsi_mq_reserved2; + void *scsi_mq_reserved3; + void *scsi_mq_reserved4; + atomic_t scsi_mq_reserved5; + atomic_t scsi_mq_reserved6; /* * We should ensure that this is aligned, both for better performance * and also because some compilers (m68k) don't automatically force