Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:43223c8e15
ANDROID: GKI: update .xml file after xhci bugfix34f6c9c308
ANDROID: usb: host: fix slab-out-of-bounds in xhci_vendor_get_ops Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I470e83dac326c4ba0414f1f07260896d4d233e66
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -199,11 +199,10 @@ EXPORT_SYMBOL_GPL(xhci_plat_register_vendor_ops);
|
|||||||
|
|
||||||
static int xhci_vendor_init(struct xhci_hcd *xhci)
|
static int xhci_vendor_init(struct xhci_hcd *xhci)
|
||||||
{
|
{
|
||||||
struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci);
|
struct xhci_vendor_ops *ops = NULL;
|
||||||
struct xhci_plat_priv *priv = xhci_to_priv(xhci);
|
|
||||||
|
|
||||||
if (xhci_plat_vendor_overwrite.vendor_ops)
|
if (xhci_plat_vendor_overwrite.vendor_ops)
|
||||||
ops = priv->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops;
|
ops = xhci->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops;
|
||||||
|
|
||||||
if (ops && ops->vendor_init)
|
if (ops && ops->vendor_init)
|
||||||
return ops->vendor_init(xhci);
|
return ops->vendor_init(xhci);
|
||||||
@@ -213,12 +212,11 @@ static int xhci_vendor_init(struct xhci_hcd *xhci)
|
|||||||
static void xhci_vendor_cleanup(struct xhci_hcd *xhci)
|
static void xhci_vendor_cleanup(struct xhci_hcd *xhci)
|
||||||
{
|
{
|
||||||
struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci);
|
struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci);
|
||||||
struct xhci_plat_priv *priv = xhci_to_priv(xhci);
|
|
||||||
|
|
||||||
if (ops && ops->vendor_cleanup)
|
if (ops && ops->vendor_cleanup)
|
||||||
ops->vendor_cleanup(xhci);
|
ops->vendor_cleanup(xhci);
|
||||||
|
|
||||||
priv->vendor_ops = NULL;
|
xhci->vendor_ops = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int xhci_plat_probe(struct platform_device *pdev)
|
static int xhci_plat_probe(struct platform_device *pdev)
|
||||||
|
@@ -13,7 +13,6 @@
|
|||||||
struct xhci_plat_priv {
|
struct xhci_plat_priv {
|
||||||
const char *firmware_name;
|
const char *firmware_name;
|
||||||
unsigned long long quirks;
|
unsigned long long quirks;
|
||||||
struct xhci_vendor_ops *vendor_ops;
|
|
||||||
struct xhci_vendor_data *vendor_data;
|
struct xhci_vendor_data *vendor_data;
|
||||||
int (*plat_setup)(struct usb_hcd *);
|
int (*plat_setup)(struct usb_hcd *);
|
||||||
void (*plat_start)(struct usb_hcd *);
|
void (*plat_start)(struct usb_hcd *);
|
||||||
|
@@ -22,7 +22,6 @@
|
|||||||
#include "xhci-trace.h"
|
#include "xhci-trace.h"
|
||||||
#include "xhci-debugfs.h"
|
#include "xhci-debugfs.h"
|
||||||
#include "xhci-dbgcap.h"
|
#include "xhci-dbgcap.h"
|
||||||
#include "xhci-plat.h"
|
|
||||||
|
|
||||||
#define DRIVER_AUTHOR "Sarah Sharp"
|
#define DRIVER_AUTHOR "Sarah Sharp"
|
||||||
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
|
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
|
||||||
@@ -4317,7 +4316,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
|
|||||||
|
|
||||||
struct xhci_vendor_ops *xhci_vendor_get_ops(struct xhci_hcd *xhci)
|
struct xhci_vendor_ops *xhci_vendor_get_ops(struct xhci_hcd *xhci)
|
||||||
{
|
{
|
||||||
return xhci_to_priv(xhci)->vendor_ops;
|
return xhci->vendor_ops;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xhci_vendor_get_ops);
|
EXPORT_SYMBOL_GPL(xhci_vendor_get_ops);
|
||||||
|
|
||||||
|
@@ -1928,7 +1928,9 @@ struct xhci_hcd {
|
|||||||
|
|
||||||
void *dbc;
|
void *dbc;
|
||||||
|
|
||||||
ANDROID_KABI_RESERVE(1);
|
/* Used for bug 194461020 */
|
||||||
|
ANDROID_KABI_USE(1, struct xhci_vendor_ops *vendor_ops);
|
||||||
|
|
||||||
ANDROID_KABI_RESERVE(2);
|
ANDROID_KABI_RESERVE(2);
|
||||||
ANDROID_KABI_RESERVE(3);
|
ANDROID_KABI_RESERVE(3);
|
||||||
ANDROID_KABI_RESERVE(4);
|
ANDROID_KABI_RESERVE(4);
|
||||||
|
Reference in New Issue
Block a user