mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge commit 'c104f1fa1e' into stable/for-linus-3.4
* commit 'c104f1fa1e': (14566 commits)
cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS
sparc64: Eliminate obsolete __handle_softirq() function
sparc64: Fix bootup crash on sun4v.
kconfig: delete last traces of __enabled_ from autoconf.h
Revert "kconfig: fix __enabled_ macros definition for invisible and un-selected symbols"
kconfig: fix IS_ENABLED to not require all options to be defined
irq_domain: fix type mismatch in debugfs output format
staging: android: fix mem leaks in __persistent_ram_init()
staging: vt6656: Don't leak memory in drivers/staging/vt6656/ioctl.c::private_ioctl()
staging: iio: hmc5843: Fix crash in probe function.
panic: fix stack dump print on direct call to panic()
drivers/rtc/rtc-pl031.c: enable clock on all ST variants
Revert "mm: vmscan: fix misused nr_reclaimed in shrink_mem_cgroup_zone()"
hugetlb: fix race condition in hugetlb_fault()
drivers/rtc/rtc-twl.c: use static register while reading time
drivers/rtc/rtc-s3c.c: add placeholder for driver private data
drivers/rtc/rtc-s3c.c: fix compilation error
MAINTAINERS: add PCDP console maintainer
memcg: do not open code accesses to res_counter members
drivers/rtc/rtc-efi.c: fix section mismatch warning
...
This commit is contained in:
commit
681e4a5e13
13145 changed files with 666387 additions and 415240 deletions
|
|
@ -1,5 +1,6 @@
|
|||
#include <linux/bio.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/export.h>
|
||||
#include <xen/page.h>
|
||||
|
||||
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
||||
|
|
@ -11,3 +12,4 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
|||
return __BIOVEC_PHYS_MERGEABLE(vec1, vec2) &&
|
||||
((mfn1 == mfn2) || ((mfn1+1) == mfn2));
|
||||
}
|
||||
EXPORT_SYMBOL(xen_biovec_phys_mergeable);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ static int vcpu_online(unsigned int cpu)
|
|||
sprintf(dir, "cpu/%u", cpu);
|
||||
err = xenbus_scanf(XBT_NIL, dir, "availability", "%s", state);
|
||||
if (err != 1) {
|
||||
printk(KERN_ERR "XENBUS: Unable to read cpu state\n");
|
||||
if (!xen_initial_domain())
|
||||
printk(KERN_ERR "XENBUS: Unable to read cpu state\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -948,9 +948,12 @@ static void gnttab_request_version(void)
|
|||
int rc;
|
||||
struct gnttab_set_version gsv;
|
||||
|
||||
gsv.version = 2;
|
||||
if (xen_hvm_domain())
|
||||
gsv.version = 1;
|
||||
else
|
||||
gsv.version = 2;
|
||||
rc = HYPERVISOR_grant_table_op(GNTTABOP_set_version, &gsv, 1);
|
||||
if (rc == 0) {
|
||||
if (rc == 0 && gsv.version == 2) {
|
||||
grant_table_version = 2;
|
||||
gnttab_interface = &gnttab_v2_ops;
|
||||
} else if (grant_table_version == 2) {
|
||||
|
|
|
|||
|
|
@ -129,9 +129,9 @@ static void do_suspend(void)
|
|||
printk(KERN_DEBUG "suspending xenstore...\n");
|
||||
xs_suspend();
|
||||
|
||||
err = dpm_suspend_noirq(PMSG_FREEZE);
|
||||
err = dpm_suspend_end(PMSG_FREEZE);
|
||||
if (err) {
|
||||
printk(KERN_ERR "dpm_suspend_noirq failed: %d\n", err);
|
||||
printk(KERN_ERR "dpm_suspend_end failed: %d\n", err);
|
||||
goto out_resume;
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ static void do_suspend(void)
|
|||
|
||||
err = stop_machine(xen_suspend, &si, cpumask_of(0));
|
||||
|
||||
dpm_resume_noirq(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
|
||||
dpm_resume_start(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
|
||||
|
||||
if (err) {
|
||||
printk(KERN_ERR "failed to start xen_suspend: %d\n", err);
|
||||
|
|
|
|||
|
|
@ -204,7 +204,8 @@ error:
|
|||
|
||||
void *
|
||||
xen_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
|
||||
dma_addr_t *dma_handle, gfp_t flags)
|
||||
dma_addr_t *dma_handle, gfp_t flags,
|
||||
struct dma_attrs *attrs)
|
||||
{
|
||||
void *ret;
|
||||
int order = get_order(size);
|
||||
|
|
@ -253,7 +254,7 @@ EXPORT_SYMBOL_GPL(xen_swiotlb_alloc_coherent);
|
|||
|
||||
void
|
||||
xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
|
||||
dma_addr_t dev_addr)
|
||||
dma_addr_t dev_addr, struct dma_attrs *attrs)
|
||||
{
|
||||
int order = get_order(size);
|
||||
phys_addr_t phys;
|
||||
|
|
|
|||
|
|
@ -238,9 +238,9 @@ __setup("nocleancache", no_cleancache);
|
|||
static struct cleancache_ops __initdata tmem_cleancache_ops = {
|
||||
.put_page = tmem_cleancache_put_page,
|
||||
.get_page = tmem_cleancache_get_page,
|
||||
.flush_page = tmem_cleancache_flush_page,
|
||||
.flush_inode = tmem_cleancache_flush_inode,
|
||||
.flush_fs = tmem_cleancache_flush_fs,
|
||||
.invalidate_page = tmem_cleancache_flush_page,
|
||||
.invalidate_inode = tmem_cleancache_flush_inode,
|
||||
.invalidate_fs = tmem_cleancache_flush_fs,
|
||||
.init_shared_fs = tmem_cleancache_init_shared_fs,
|
||||
.init_fs = tmem_cleancache_init_fs
|
||||
};
|
||||
|
|
@ -364,8 +364,8 @@ __setup("nofrontswap", no_frontswap);
|
|||
static struct frontswap_ops __initdata tmem_frontswap_ops = {
|
||||
.put_page = tmem_frontswap_put_page,
|
||||
.get_page = tmem_frontswap_get_page,
|
||||
.flush_page = tmem_frontswap_flush_page,
|
||||
.flush_area = tmem_frontswap_flush_area,
|
||||
.invalidate_page = tmem_frontswap_flush_page,
|
||||
.invalidate_area = tmem_frontswap_flush_area,
|
||||
.init = tmem_frontswap_init
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ static int register_balloon(struct device *dev)
|
|||
{
|
||||
int i, error;
|
||||
|
||||
error = bus_register(&balloon_subsys);
|
||||
error = subsys_system_register(&balloon_subsys, NULL);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include "conf_space.h"
|
||||
#include "conf_space_quirks.h"
|
||||
|
||||
static int permissive;
|
||||
static bool permissive;
|
||||
module_param(permissive, bool, 0644);
|
||||
|
||||
/* This is where xen_pcibk_read_config_byte, xen_pcibk_read_config_word,
|
||||
|
|
|
|||
|
|
@ -919,7 +919,7 @@ static inline int str_to_quirk(const char *buf, int *domain, int *bus, int
|
|||
int err;
|
||||
|
||||
err =
|
||||
sscanf(buf, " %04x:%02x:%02x.%1x-%08x:%1x:%08x", domain, bus, slot,
|
||||
sscanf(buf, " %04x:%02x:%02x.%d-%08x:%1x:%08x", domain, bus, slot,
|
||||
func, reg, size, mask);
|
||||
if (err == 7)
|
||||
return 0;
|
||||
|
|
@ -939,7 +939,7 @@ static int pcistub_device_id_add(int domain, int bus, int slot, int func)
|
|||
pci_dev_id->bus = bus;
|
||||
pci_dev_id->devfn = PCI_DEVFN(slot, func);
|
||||
|
||||
pr_debug(DRV_NAME ": wants to seize %04x:%02x:%02x.%01x\n",
|
||||
pr_debug(DRV_NAME ": wants to seize %04x:%02x:%02x.%d\n",
|
||||
domain, bus, slot, func);
|
||||
|
||||
spin_lock_irqsave(&device_ids_lock, flags);
|
||||
|
|
@ -969,7 +969,7 @@ static int pcistub_device_id_remove(int domain, int bus, int slot, int func)
|
|||
|
||||
err = 0;
|
||||
|
||||
pr_debug(DRV_NAME ": removed %04x:%02x:%02x.%01x from "
|
||||
pr_debug(DRV_NAME ": removed %04x:%02x:%02x.%d from "
|
||||
"seize list\n", domain, bus, slot, func);
|
||||
}
|
||||
}
|
||||
|
|
@ -1064,7 +1064,7 @@ static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)
|
|||
break;
|
||||
|
||||
count += scnprintf(buf + count, PAGE_SIZE - count,
|
||||
"%04x:%02x:%02x.%01x\n",
|
||||
"%04x:%02x:%02x.%d\n",
|
||||
pci_dev_id->domain, pci_dev_id->bus,
|
||||
PCI_SLOT(pci_dev_id->devfn),
|
||||
PCI_FUNC(pci_dev_id->devfn));
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#define INVALID_EVTCHN_IRQ (-1)
|
||||
struct workqueue_struct *xen_pcibk_wq;
|
||||
|
||||
static int __read_mostly passthrough;
|
||||
static bool __read_mostly passthrough;
|
||||
module_param(passthrough, bool, S_IRUGO);
|
||||
MODULE_PARM_DESC(passthrough,
|
||||
"Option to specify how to export PCI topology to guest:\n"\
|
||||
|
|
@ -206,6 +206,7 @@ static int xen_pcibk_publish_pci_dev(struct xen_pcibk_device *pdev,
|
|||
goto out;
|
||||
}
|
||||
|
||||
/* Note: The PV protocol uses %02x, don't change it */
|
||||
err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, str,
|
||||
"%04x:%02x:%02x.%02x", domain, bus,
|
||||
PCI_SLOT(devfn), PCI_FUNC(devfn));
|
||||
|
|
@ -229,7 +230,7 @@ static int xen_pcibk_export_device(struct xen_pcibk_device *pdev,
|
|||
err = -EINVAL;
|
||||
xenbus_dev_fatal(pdev->xdev, err,
|
||||
"Couldn't locate PCI device "
|
||||
"(%04x:%02x:%02x.%01x)! "
|
||||
"(%04x:%02x:%02x.%d)! "
|
||||
"perhaps already in-use?",
|
||||
domain, bus, slot, func);
|
||||
goto out;
|
||||
|
|
@ -274,7 +275,7 @@ static int xen_pcibk_remove_device(struct xen_pcibk_device *pdev,
|
|||
if (!dev) {
|
||||
err = -EINVAL;
|
||||
dev_dbg(&pdev->xdev->dev, "Couldn't locate PCI device "
|
||||
"(%04x:%02x:%02x.%01x)! not owned by this domain\n",
|
||||
"(%04x:%02x:%02x.%d)! not owned by this domain\n",
|
||||
domain, bus, slot, func);
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -369,6 +369,10 @@ static int xenbus_write_watch(unsigned msg_type, struct xenbus_file_priv *u)
|
|||
goto out;
|
||||
}
|
||||
token++;
|
||||
if (memchr(token, 0, u->u.msg.len - (token - path)) == NULL) {
|
||||
rc = -EILSEQ;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (msg_type == XS_WATCH) {
|
||||
watch = alloc_watch_adapter(path, token);
|
||||
|
|
|
|||
Loading…
Reference in a new issue