From: Jeremy Fitzhardinge Date: Mon, 7 Nov 2011 21:52:38 +0000 (-0800) Subject: Merge commit 'v2.6.32.47' into HEAD X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=faa0ece5eb2f2bc4d9b149bc46b677b1df05d332;p=linux-pvops.git Merge commit 'v2.6.32.47' into HEAD * commit 'v2.6.32.47': (111 commits) Linux 2.6.32.47 USB: Serial: Add PID(0xF7C0) to FTDI SIO driver for a zeitcontrol-device USB: Serial: Add device ID for Sierra Wireless MC8305 ext2,ext3,ext4: don't inherit APPEND_FL or IMMUTABLE_FL for new inodes drivers/net/rionet.c: fix ethernet address macros for LE platforms ext4: fix BUG_ON() in ext4_ext_insert_extent() net_sched: Fix qdisc_notify() nl80211: fix overflow in ssid_len Bluetooth: Prevent buffer overflow in l2cap config request vm: fix vm_pgoff wrap in upward expansion vm: fix vm_pgoff wrap in stack expansion Bluetooth: l2cap and rfcomm: fix 1 byte infoleak to userspace. NLM: Don't hang forever on NLM unlock requests deal with races in /proc/*/{syscall,stack,personality} scm: lower SCM_MAX_FD thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. kcore: fix test for end of list watchdog: mtx1-wdt: fix build failure Revert "MIPS: MTX-1: Make au1000_eth probe all PHY Revert "usb: musb: restore INDEX register in resume path" ... Conflicts: drivers/block/xen-blkfront.c --- faa0ece5eb2f2bc4d9b149bc46b677b1df05d332 diff --cc arch/x86/xen/smp.c index 5da69a762cff,a96204a1bcc5..a873872e4b8f --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@@ -178,8 -179,16 +179,17 @@@ static void __init xen_smp_prepare_boot static void __init xen_smp_prepare_cpus(unsigned int max_cpus) { unsigned cpu; + unsigned int i; + if (skip_ioapic_setup) { + char *m = (max_cpus == 0) ? + "The nosmp parameter is incompatible with Xen; " \ + "use Xen dom0_max_vcpus=1 parameter" : + "The noapic parameter is incompatible with Xen"; + + xen_raw_printk(m); + panic(m); + } xen_init_lock_cpu(0); smp_store_cpu_info(0); diff --cc drivers/block/xen-blkfront.c index 70f3b1bb56bf,a2e8977abaad..6147a4e84dab --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@@ -1151,26 -889,10 +1151,26 @@@ static void blkfront_connect(struct blk } err = xenbus_gather(XBT_NIL, info->xbdev->otherend, - "feature-barrier", "%lu", &barrier, - "feature-barrier", "%d", &info->feature_barrier, ++ "feature-barrier", "%d", &barrier, NULL); + + /* + * If there's no "feature-barrier" defined, then it means + * we're dealing with a very old backend which writes + * synchronously; draining will do what needs to get done. + * + * If there are barriers, then we can do full queued writes + * with tagged barriers. + * + * If barriers are not supported, then there's no much we can + * do, so just set ordering to NONE. + */ if (err) - info->feature_barrier = 0; + info->feature_barrier = QUEUE_ORDERED_DRAIN; + else if (barrier) + info->feature_barrier = QUEUE_ORDERED_TAG; + else + info->feature_barrier = QUEUE_ORDERED_NONE; err = xlvbd_alloc_gendisk(sectors, info, binfo, sector_size); if (err) {