Hello community,

here is the log from the commit of package kernel-source for openSUSE:Factory 
checked in at 2013-07-16 07:36:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
 and      /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kernel-source"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-cubox.changes       
2013-07-11 13:29:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-cubox.changes  
2013-07-16 07:36:25.000000000 +0200
@@ -1,0 +2,6 @@
+Sun Jul 14 09:09:42 CEST 2013 - [email protected]
+
+- Linux 3.10.1.
+- commit 062e800
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-exynos.changes: same change
kernel-lpae.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-trace.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kernel-cubox.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:29.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:29.000000000 +0200
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 3.10
-%define patchversion 3.10.0
+%define patchversion 3.10.1
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -59,8 +59,8 @@
 
 Name:           kernel-cubox
 Summary:        Kernel for SolidRun Cubox
-Version:        3.10.0
-Release:        <RELEASE>.ge7a8371
+Version:        3.10.1
+Release:        <RELEASE>.g062e800
 License:        GPL-2.0
 Group:          System/Kernel
 Url:            http://www.kernel.org/

kernel-debug.spec: same change
kernel-default.spec: same change
kernel-desktop.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:29.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:29.000000000 +0200
@@ -17,15 +17,15 @@
 
 # norootforbuild
 
-%define patchversion 3.10.0
+%define patchversion 3.10.1
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
 
 Name:           kernel-docs
 Summary:        Kernel Documentation
-Version:        3.10.0
-Release:        <RELEASE>.ge7a8371
+Version:        3.10.1
+Release:        <RELEASE>.g062e800
 BuildRequires:  docbook-toys docbook-utils ghostscript_any libjpeg-devel 
texlive transfig xmlto xorg-x11-devel
 BuildRequires:  kernel-source%variant
 Url:            http://www.kernel.org/

++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:29.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:29.000000000 +0200
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 3.10
-%define patchversion 3.10.0
+%define patchversion 3.10.1
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -59,8 +59,8 @@
 
 Name:           kernel-ec2
 Summary:        The Amazon EC2 Xen Kernel
-Version:        3.10.0
-Release:        <RELEASE>.ge7a8371
+Version:        3.10.1
+Release:        <RELEASE>.g062e800
 License:        GPL-2.0
 Group:          System/Kernel
 Url:            http://www.kernel.org/

kernel-exynos.spec: same change
kernel-lpae.spec: same change
kernel-pae.spec: same change
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:30.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:30.000000000 +0200
@@ -19,7 +19,7 @@
 # icecream 0
 
 %define srcversion 3.10
-%define patchversion 3.10.0
+%define patchversion 3.10.1
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -29,8 +29,8 @@
 
 Name:           kernel-source
 Summary:        The Linux Kernel Sources
-Version:        3.10.0
-Release:        <RELEASE>.ge7a8371
+Version:        3.10.1
+Release:        <RELEASE>.g062e800
 License:        GPL-2.0
 Group:          Development/Sources
 Url:            http://www.kernel.org/

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:30.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:30.000000000 +0200
@@ -23,9 +23,9 @@
 
 Name:           kernel-syms
 Summary:        Kernel Symbol Versions (modversions)
-Version:        3.10.0
+Version:        3.10.1
 %if %using_buildservice
-Release:        <RELEASE>.ge7a8371
+Release:        <RELEASE>.g062e800
 %else
 %define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version 
--qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
 Release:        %kernel_source_release

++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:30.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:30.000000000 +0200
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 3.10
-%define patchversion 3.10.0
+%define patchversion 3.10.1
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -59,8 +59,8 @@
 
 Name:           kernel-trace
 Summary:        The Standard Kernel with Tracing Features
-Version:        3.10.0
-Release:        <RELEASE>.ge7a8371
+Version:        3.10.1
+Release:        <RELEASE>.g062e800
 License:        GPL-2.0
 Group:          System/Kernel
 Url:            http://www.kernel.org/

kernel-vanilla.spec: same change
kernel-xen.spec: same change
++++++ patches.kernel.org.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches.kernel.org/patch-3.10.1 
new/patches.kernel.org/patch-3.10.1
--- old/patches.kernel.org/patch-3.10.1 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.kernel.org/patch-3.10.1 2013-07-14 09:09:42.000000000 +0200
@@ -0,0 +1,536 @@
+From: Jiri Slaby <[email protected]>
+Subject: Linux 3.10.1
+Patch-mainline: 3.10.1
+Git-commit: fa460c2d37870e0a6f94c70e8b76d05ca11b6db0
+Git-commit: f51e1eb63d9c28cec188337ee656a13be6980cfd
+Git-commit: 2ee3e26c673e75c05ef8b914f54fadee3d7b9c88
+Git-commit: 03617c188f41eeeb4223c919ee7e66e5a114f2c6
+Git-commit: 247500820ebd02ad87525db5d9b199e5b66f6636
+Git-commit: 62f288a02f97bd9f6b2361a6fff709729fe9e110
+Git-commit: 828c6a102b1f2b8583fadc0e779c46b31d448f0b
+Git-commit: 64e377dcd7d75c241d614458e9619d3445de44ef
+Git-commit: 13d60f4b6ab5b702dc8d2ee20999f98a93728aec
+Git-commit: 7b175c46720f8e6b92801bb634c93d1016f80c62
+Git-commit: 1c8fca1d92e14859159a82b8a380d220139b7344
+Git-commit: ffc8b30866879ed9ba62bd0a86fecdbd51cd3d19
+Git-commit: 3ebacb05044f82c5f0bb456a894eb9dc57d0ed90
+Git-commit: 3594f4c0d7bc51e3a7e6d73c44e368ae079e42f3
+Git-commit: 8d8022e8aba85192e937f1f0f7450e256d66ae5c
+Git-commit: 542db01579fbb7ea7d1f7bb9ddcef1559df660b2
+Git-commit: 8b8cf8917f9b5d74e04f281272d8719ce335a497
+Git-commit: a1dc1937337a93e699eaa56968b7de6e1a9e77cf
+Git-commit: 2cb33cac622afde897aa02d3dcd9fbba8bae839e
+
+Signed-off-by: Jiri Slaby <[email protected]>
+---
+diff --git a/MAINTAINERS b/MAINTAINERS
+index ad7e322..48c7480 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -7667,6 +7667,7 @@ STABLE BRANCH
+ M:    Greg Kroah-Hartman <[email protected]>
+ L:    [email protected]
+ S:    Supported
++F:    Documentation/stable_kernel_rules.txt
+ 
+ STAGING SUBSYSTEM
+ M:    Greg Kroah-Hartman <[email protected]>
+diff --git a/Makefile b/Makefile
+index e5e3ba0..b75cc30 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 10
+-SUBLEVEL = 0
++SUBLEVEL = 1
+ EXTRAVERSION =
+ NAME = Unicycling Gorilla
+ 
+diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
+index 260a919..5402c94 100644
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -3399,15 +3399,22 @@ static void vmx_get_segment(struct kvm_vcpu *vcpu,
+       var->limit = vmx_read_guest_seg_limit(vmx, seg);
+       var->selector = vmx_read_guest_seg_selector(vmx, seg);
+       ar = vmx_read_guest_seg_ar(vmx, seg);
++      var->unusable = (ar >> 16) & 1;
+       var->type = ar & 15;
+       var->s = (ar >> 4) & 1;
+       var->dpl = (ar >> 5) & 3;
+-      var->present = (ar >> 7) & 1;
++      /*
++       * Some userspaces do not preserve unusable property. Since usable
++       * segment has to be present according to VMX spec we can use present
++       * property to amend userspace bug by making unusable segment always
++       * nonpresent. vmx_segment_access_rights() already marks nonpresent
++       * segment as unusable.
++       */
++      var->present = !var->unusable;
+       var->avl = (ar >> 12) & 1;
+       var->l = (ar >> 13) & 1;
+       var->db = (ar >> 14) & 1;
+       var->g = (ar >> 15) & 1;
+-      var->unusable = (ar >> 16) & 1;
+ }
+ 
+ static u64 vmx_get_segment_base(struct kvm_vcpu *vcpu, int seg)
+diff --git a/block/genhd.c b/block/genhd.c
+index 20625ee..cdeb527 100644
+--- a/block/genhd.c
++++ b/block/genhd.c
+@@ -512,7 +512,7 @@ static void register_disk(struct gendisk *disk)
+ 
+       ddev->parent = disk->driverfs_dev;
+ 
+-      dev_set_name(ddev, disk->disk_name);
++      dev_set_name(ddev, "%s", disk->disk_name);
+ 
+       /* delay uevents, until we scanned partition table */
+       dev_set_uevent_suppress(ddev, 1);
+diff --git a/crypto/algapi.c b/crypto/algapi.c
+index 6149a6e..7a1ae87 100644
+--- a/crypto/algapi.c
++++ b/crypto/algapi.c
+@@ -495,7 +495,8 @@ static struct crypto_template 
*__crypto_lookup_template(const char *name)
+ 
+ struct crypto_template *crypto_lookup_template(const char *name)
+ {
+-      return try_then_request_module(__crypto_lookup_template(name), name);
++      return try_then_request_module(__crypto_lookup_template(name), "%s",
++                                     name);
+ }
+ EXPORT_SYMBOL_GPL(crypto_lookup_template);
+ 
+diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
+index 037288e..46b35f7 100644
+--- a/drivers/block/nbd.c
++++ b/drivers/block/nbd.c
+@@ -714,7 +714,8 @@ static int __nbd_ioctl(struct block_device *bdev, struct 
nbd_device *nbd,
+               else
+                       blk_queue_flush(nbd->disk->queue, 0);
+ 
+-              thread = kthread_create(nbd_thread, nbd, nbd->disk->disk_name);
++              thread = kthread_create(nbd_thread, nbd, "%s",
++                                      nbd->disk->disk_name);
+               if (IS_ERR(thread)) {
+                       mutex_lock(&nbd->tx_lock);
+                       return PTR_ERR(thread);
+diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
+index d620b44..8a3aff7 100644
+--- a/drivers/cdrom/cdrom.c
++++ b/drivers/cdrom/cdrom.c
+@@ -2882,7 +2882,7 @@ static noinline int mmc_ioctl_cdrom_read_data(struct 
cdrom_device_info *cdi,
+       if (lba < 0)
+               return -EINVAL;
+ 
+-      cgc->buffer = kmalloc(blocksize, GFP_KERNEL);
++      cgc->buffer = kzalloc(blocksize, GFP_KERNEL);
+       if (cgc->buffer == NULL)
+               return -ENOMEM;
+ 
+diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
+index fb65dec..591b6fb 100644
+--- a/drivers/cpufreq/cpufreq_stats.c
++++ b/drivers/cpufreq/cpufreq_stats.c
+@@ -349,6 +349,7 @@ static int __cpuinit cpufreq_stat_cpu_callback(struct 
notifier_block *nfb,
+ 
+       switch (action) {
+       case CPU_ONLINE:
++      case CPU_ONLINE_FROZEN:
+               cpufreq_update_policy(cpu);
+               break;
+       case CPU_DOWN_PREPARE:
+diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c
+index fefc39f..98de1dd 100644
+--- a/drivers/power/charger-manager.c
++++ b/drivers/power/charger-manager.c
+@@ -450,7 +450,7 @@ static void uevent_notify(struct charger_manager *cm, 
const char *event)
+       strncpy(env_str, event, UEVENT_BUF_SIZE);
+       kobject_uevent(&cm->dev->kobj, KOBJ_CHANGE);
+ 
+-      dev_info(cm->dev, event);
++      dev_info(cm->dev, "%s", event);
+ }
+ 
+ /**
+diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
+index 0fab6b5..9d86947 100644
+--- a/drivers/scsi/osd/osd_uld.c
++++ b/drivers/scsi/osd/osd_uld.c
+@@ -485,7 +485,7 @@ static int osd_probe(struct device *dev)
+       oud->class_dev.class = &osd_uld_class;
+       oud->class_dev.parent = dev;
+       oud->class_dev.release = __remove;
+-      error = dev_set_name(&oud->class_dev, disk->disk_name);
++      error = dev_set_name(&oud->class_dev, "%s", disk->disk_name);
+       if (error) {
+               OSD_ERR("dev_set_name failed => %d\n", error);
+               goto err_put_cdev;
+diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
+index c1c5552..6f6a1b4 100644
+--- a/drivers/scsi/sd.c
++++ b/drivers/scsi/sd.c
+@@ -142,7 +142,7 @@ sd_store_cache_type(struct device *dev, struct 
device_attribute *attr,
+       char *buffer_data;
+       struct scsi_mode_data data;
+       struct scsi_sense_hdr sshdr;
+-      const char *temp = "temporary ";
++      static const char temp[] = "temporary ";
+       int len;
+ 
+       if (sdp->type != TYPE_DISK)
+diff --git a/drivers/tty/serial/8250/8250_pci.c 
b/drivers/tty/serial/8250/8250_pci.c
+index 26e3a97..c52948b 100644
+--- a/drivers/tty/serial/8250/8250_pci.c
++++ b/drivers/tty/serial/8250/8250_pci.c
+@@ -4797,10 +4797,6 @@ static struct pci_device_id serial_pci_tbl[] = {
+               PCI_VENDOR_ID_IBM, 0x0299,
+               0, 0, pbn_b0_bt_2_115200 },
+ 
+-      {       PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9835,
+-              0x1000, 0x0012,
+-              0, 0, pbn_b0_bt_2_115200 },
+-
+       {       PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
+               0xA000, 0x1000,
+               0, 0, pbn_b0_1_115200 },
+diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
+index 6464029..4476682 100644
+--- a/drivers/tty/tty_io.c
++++ b/drivers/tty/tty_io.c
+@@ -1618,6 +1618,8 @@ static void release_tty(struct tty_struct *tty, int idx)
+       tty_free_termios(tty);
+       tty_driver_remove_tty(tty->driver, tty);
+       tty->port->itty = NULL;
++      if (tty->link)
++              tty->link->port->itty = NULL;
+       cancel_work_sync(&tty->port->buf.work);
+ 
+       if (tty->link)
+diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
+index 9b6b2b6..be661d8 100644
+--- a/fs/ceph/xattr.c
++++ b/fs/ceph/xattr.c
+@@ -675,17 +675,18 @@ ssize_t ceph_getxattr(struct dentry *dentry, const char 
*name, void *value,
+       if (!ceph_is_valid_xattr(name))
+               return -ENODATA;
+ 
+-      spin_lock(&ci->i_ceph_lock);
+-      dout("getxattr %p ver=%lld index_ver=%lld\n", inode,
+-           ci->i_xattrs.version, ci->i_xattrs.index_version);
+ 
+       /* let's see if a virtual xattr was requested */
+       vxattr = ceph_match_vxattr(inode, name);
+       if (vxattr && !(vxattr->exists_cb && !vxattr->exists_cb(ci))) {
+               err = vxattr->getxattr_cb(ci, value, size);
+-              goto out;
++              return err;
+       }
+ 
++      spin_lock(&ci->i_ceph_lock);
++      dout("getxattr %p ver=%lld index_ver=%lld\n", inode,
++           ci->i_xattrs.version, ci->i_xattrs.index_version);
++
+       if (__ceph_caps_issued_mask(ci, CEPH_CAP_XATTR_SHARED, 1) &&
+           (ci->i_xattrs.index_version >= ci->i_xattrs.version)) {
+               goto get_xattr;
+diff --git a/fs/hpfs/map.c b/fs/hpfs/map.c
+index 4acb19d..803d3da 100644
+--- a/fs/hpfs/map.c
++++ b/fs/hpfs/map.c
+@@ -17,7 +17,8 @@ __le32 *hpfs_map_bitmap(struct super_block *s, unsigned 
bmp_block,
+                        struct quad_buffer_head *qbh, char *id)
+ {
+       secno sec;
+-      if (hpfs_sb(s)->sb_chk) if (bmp_block * 16384 > hpfs_sb(s)->sb_fs_size) 
{
++      unsigned n_bands = (hpfs_sb(s)->sb_fs_size + 0x3fff) >> 14;
++      if (hpfs_sb(s)->sb_chk) if (bmp_block >= n_bands) {
+               hpfs_error(s, "hpfs_map_bitmap called with bad parameter: %08x 
at %s", bmp_block, id);
+               return NULL;
+       }
+diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
+index a0617e7..962e90c 100644
+--- a/fs/hpfs/super.c
++++ b/fs/hpfs/super.c
+@@ -558,7 +558,13 @@ static int hpfs_fill_super(struct super_block *s, void 
*options, int silent)
+       sbi->sb_cp_table = NULL;
+       sbi->sb_c_bitmap = -1;
+       sbi->sb_max_fwd_alloc = 0xffffff;
+-      
++
++      if (sbi->sb_fs_size >= 0x80000000) {
++              hpfs_error(s, "invalid size in superblock: %08x",
++                      (unsigned)sbi->sb_fs_size);
++              goto bail4;
++      }
++
+       /* Load bitmap directory */
+       if (!(sbi->sb_bmp_dir = hpfs_load_bitmap_directory(s, 
le32_to_cpu(superblock->bitmaps))))
+               goto bail4;
+diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
+index 1fab140..2c37442 100644
+--- a/fs/nfs/nfs4state.c
++++ b/fs/nfs/nfs4state.c
+@@ -228,19 +228,8 @@ static int nfs41_setup_state_renewal(struct nfs_client 
*clp)
+       return status;
+ }
+ 
+-/*
+- * Back channel returns NFS4ERR_DELAY for new requests when
+- * NFS4_SESSION_DRAINING is set so there is no work to be done when draining
+- * is ended.
+- */
+-static void nfs4_end_drain_session(struct nfs_client *clp)
++static void nfs4_end_drain_slot_table(struct nfs4_slot_table *tbl)
+ {
+-      struct nfs4_session *ses = clp->cl_session;
+-      struct nfs4_slot_table *tbl;
+-
+-      if (ses == NULL)
+-              return;
+-      tbl = &ses->fc_slot_table;
+       if (test_and_clear_bit(NFS4_SLOT_TBL_DRAINING, &tbl->slot_tbl_state)) {
+               spin_lock(&tbl->slot_tbl_lock);
+               nfs41_wake_slot_table(tbl);
+@@ -248,6 +237,16 @@ static void nfs4_end_drain_session(struct nfs_client *clp)
+       }
+ }
+ 
++static void nfs4_end_drain_session(struct nfs_client *clp)
++{
++      struct nfs4_session *ses = clp->cl_session;
++
++      if (ses != NULL) {
++              nfs4_end_drain_slot_table(&ses->bc_slot_table);
++              nfs4_end_drain_slot_table(&ses->fc_slot_table);
++      }
++}
++
+ /*
+  * Signal state manager thread if session fore channel is drained
+  */
+diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
+index 6cd86e0..582321a 100644
+--- a/fs/nfsd/nfs4xdr.c
++++ b/fs/nfsd/nfs4xdr.c
+@@ -162,8 +162,8 @@ static __be32 *read_buf(struct nfsd4_compoundargs *argp, 
u32 nbytes)
+        */
+       memcpy(p, argp->p, avail);
+       /* step to next page */
+-      argp->p = page_address(argp->pagelist[0]);
+       argp->pagelist++;
++      argp->p = page_address(argp->pagelist[0]);
+       if (argp->pagelen < PAGE_SIZE) {
+               argp->end = argp->p + (argp->pagelen>>2);
+               argp->pagelen = 0;
+diff --git a/include/linux/ceph/decode.h b/include/linux/ceph/decode.h
+index 379f715..0442c3d 100644
+--- a/include/linux/ceph/decode.h
++++ b/include/linux/ceph/decode.h
+@@ -160,11 +160,6 @@ static inline void ceph_decode_timespec(struct timespec 
*ts,
+ static inline void ceph_encode_timespec(struct ceph_timespec *tv,
+                                       const struct timespec *ts)
+ {
+-      BUG_ON(ts->tv_sec < 0);
+-      BUG_ON(ts->tv_sec > (__kernel_time_t)U32_MAX);
+-      BUG_ON(ts->tv_nsec < 0);
+-      BUG_ON(ts->tv_nsec > (long)U32_MAX);
+-
+       tv->tv_sec = cpu_to_le32((u32)ts->tv_sec);
+       tv->tv_nsec = cpu_to_le32((u32)ts->tv_nsec);
+ }
+diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
+index 6b4890f..feaf0c7 100644
+--- a/include/linux/hugetlb.h
++++ b/include/linux/hugetlb.h
+@@ -358,6 +358,17 @@ static inline int hstate_index(struct hstate *h)
+       return h - hstates;
+ }
+ 
++pgoff_t __basepage_index(struct page *page);
++
++/* Return page->index in PAGE_SIZE units */
++static inline pgoff_t basepage_index(struct page *page)
++{
++      if (!PageCompound(page))
++              return page->index;
++
++      return __basepage_index(page);
++}
++
+ #else /* CONFIG_HUGETLB_PAGE */
+ struct hstate {};
+ #define alloc_huge_page_node(h, nid) NULL
+@@ -378,6 +389,11 @@ static inline unsigned int pages_per_huge_page(struct 
hstate *h)
+ }
+ #define hstate_index_to_shift(index) 0
+ #define hstate_index(h) 0
++
++static inline pgoff_t basepage_index(struct page *page)
++{
++      return page->index;
++}
+ #endif        /* CONFIG_HUGETLB_PAGE */
+ 
+ #endif /* _LINUX_HUGETLB_H */
+diff --git a/kernel/futex.c b/kernel/futex.c
+index b26dcfc..49dacfb 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -61,6 +61,7 @@
+ #include <linux/nsproxy.h>
+ #include <linux/ptrace.h>
+ #include <linux/sched/rt.h>
++#include <linux/hugetlb.h>
+ 
+ #include <asm/futex.h>
+ 
+@@ -365,7 +366,7 @@ again:
+       } else {
+               key->both.offset |= FUT_OFF_INODE; /* inode-based key */
+               key->shared.inode = page_head->mapping->host;
+-              key->shared.pgoff = page_head->index;
++              key->shared.pgoff = basepage_index(page);
+       }
+ 
+       get_futex_key_refs(key);
+diff --git a/kernel/module.c b/kernel/module.c
+index cab4bce..fa53db8 100644
+--- a/kernel/module.c
++++ b/kernel/module.c
+@@ -2927,7 +2927,6 @@ static struct module *layout_and_allocate(struct 
load_info *info, int flags)
+ {
+       /* Module within temporary copy. */
+       struct module *mod;
+-      Elf_Shdr *pcpusec;
+       int err;
+ 
+       mod = setup_load_info(info, flags);
+@@ -2942,17 +2941,10 @@ static struct module *layout_and_allocate(struct 
load_info *info, int flags)
+       err = module_frob_arch_sections(info->hdr, info->sechdrs,
+                                       info->secstrings, mod);
+       if (err < 0)
+-              goto out;
++              return ERR_PTR(err);
+ 
+-      pcpusec = &info->sechdrs[info->index.pcpu];
+-      if (pcpusec->sh_size) {
+-              /* We have a special allocation for this section. */
+-              err = percpu_modalloc(mod,
+-                                    pcpusec->sh_size, pcpusec->sh_addralign);
+-              if (err)
+-                      goto out;
+-              pcpusec->sh_flags &= ~(unsigned long)SHF_ALLOC;
+-      }
++      /* We will do a special allocation for per-cpu sections later. */
++      info->sechdrs[info->index.pcpu].sh_flags &= ~(unsigned long)SHF_ALLOC;
+ 
+       /* Determine total sizes, and put offsets in sh_entsize.  For now
+          this is done generically; there doesn't appear to be any
+@@ -2963,17 +2955,22 @@ static struct module *layout_and_allocate(struct 
load_info *info, int flags)
+       /* Allocate and move to the final place */
+       err = move_module(mod, info);
+       if (err)
+-              goto free_percpu;
++              return ERR_PTR(err);
+ 
+       /* Module has been copied to its final place now: return it. */
+       mod = (void *)info->sechdrs[info->index.mod].sh_addr;
+       kmemleak_load_module(mod, info);
+       return mod;
++}
+ 
+-free_percpu:
+-      percpu_modfree(mod);
+-out:
+-      return ERR_PTR(err);
++static int alloc_module_percpu(struct module *mod, struct load_info *info)
++{
++      Elf_Shdr *pcpusec = &info->sechdrs[info->index.pcpu];
++      if (!pcpusec->sh_size)
++              return 0;
++
++      /* We have a special allocation for this section. */
++      return percpu_modalloc(mod, pcpusec->sh_size, pcpusec->sh_addralign);
+ }
+ 
+ /* mod is no longer valid after this! */
+@@ -3237,6 +3234,11 @@ static int load_module(struct load_info *info, const 
char __user *uargs,
+       }
+ #endif
+ 
++      /* To avoid stressing percpu allocator, do this once we're unique. */
++      err = alloc_module_percpu(mod, info);
++      if (err)
++              goto unlink_mod;
++
+       /* Now module is in final location, initialize linked lists, etc. */
+       err = module_unload_init(mod);
+       if (err)
+diff --git a/mm/hugetlb.c b/mm/hugetlb.c
+index e2bfbf7..5cf99bf 100644
+--- a/mm/hugetlb.c
++++ b/mm/hugetlb.c
+@@ -690,6 +690,23 @@ int PageHuge(struct page *page)
+ }
+ EXPORT_SYMBOL_GPL(PageHuge);
+ 
++pgoff_t __basepage_index(struct page *page)
++{
++      struct page *page_head = compound_head(page);
++      pgoff_t index = page_index(page_head);
++      unsigned long compound_idx;
++
++      if (!PageHuge(page_head))
++              return page_index(page);
++
++      if (compound_order(page_head) >= MAX_ORDER)
++              compound_idx = page_to_pfn(page) - page_to_pfn(page_head);
++      else
++              compound_idx = page - page_head;
++
++      return (index << compound_order(page_head)) + compound_idx;
++}
++
+ static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid)
+ {
+       struct page *page;
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 1947218..fd79df5 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -6303,8 +6303,6 @@ mem_cgroup_css_online(struct cgroup *cont)
+                * call __mem_cgroup_free, so return directly
+                */
+               mem_cgroup_put(memcg);
+-              if (parent->use_hierarchy)
+-                      mem_cgroup_put(parent);
+       }
+       return error;
+ }
+diff --git a/net/ceph/auth_none.c b/net/ceph/auth_none.c
+index 925ca58..8c93fa8 100644
+--- a/net/ceph/auth_none.c
++++ b/net/ceph/auth_none.c
+@@ -39,6 +39,11 @@ static int should_authenticate(struct ceph_auth_client *ac)
+       return xi->starting;
+ }
+ 
++static int build_request(struct ceph_auth_client *ac, void *buf, void *end)
++{
++      return 0;
++}
++
+ /*
+  * the generic auth code decode the global_id, and we carry no actual
+  * authenticate state, so nothing happens here.
+@@ -106,6 +111,7 @@ static const struct ceph_auth_client_ops 
ceph_auth_none_ops = {
+       .destroy = destroy,
+       .is_authenticated = is_authenticated,
+       .should_authenticate = should_authenticate,
++      .build_request = build_request,
+       .handle_reply = handle_reply,
+       .create_authorizer = ceph_auth_none_create_authorizer,
+       .destroy_authorizer = ceph_auth_none_destroy_authorizer,

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:30.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:30.000000000 +0200
@@ -27,6 +27,7 @@
        # DO NOT MODIFY THEM!
        # Send separate patches upstream if you find a problem...
        ########################################################
+       patches.kernel.org/patch-3.10.1
 
         ########################################################
         # Build fixes that apply to the vanilla kernel too.

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.VKmxL8/_old  2013-07-16 07:36:30.000000000 +0200
+++ /var/tmp/diff_new_pack.VKmxL8/_new  2013-07-16 07:36:30.000000000 +0200
@@ -1,3 +1,3 @@
-2013-07-08 15:15:51 +0200
-GIT Revision: e7a83711d30111c705f3b5532d6ce7e303cf142b
+2013-07-14 09:09:42 +0200
+GIT Revision: 062e800d86d83efabb25bd0b5d4a5b8db5e75459
 GIT Branch: master

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to