diff -druNp linux-libre-3.4.52-gnu1/block/genhd.c linux-libre-3.4.53-gnu1/block/genhd.c
--- linux-libre-3.4.52-gnu1/block/genhd.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/block/genhd.c	2013-07-13 14:03:57.000000000 -0400
@@ -518,7 +518,7 @@ static void register_disk(struct gendisk
 
 	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 -druNp linux-libre-3.4.52-gnu1/crypto/algapi.c linux-libre-3.4.53-gnu1/crypto/algapi.c
--- linux-libre-3.4.52-gnu1/crypto/algapi.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/crypto/algapi.c	2013-07-13 14:03:57.000000000 -0400
@@ -512,7 +512,8 @@ static struct crypto_template *__crypto_
 
 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 -druNp linux-libre-3.4.52-gnu1/drivers/block/nbd.c linux-libre-3.4.53-gnu1/drivers/block/nbd.c
--- linux-libre-3.4.52-gnu1/drivers/block/nbd.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/block/nbd.c	2013-07-13 14:03:57.000000000 -0400
@@ -666,7 +666,8 @@ static int __nbd_ioctl(struct block_devi
 
 		mutex_unlock(&nbd->tx_lock);
 
-		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 -druNp linux-libre-3.4.52-gnu1/drivers/cdrom/cdrom.c linux-libre-3.4.53-gnu1/drivers/cdrom/cdrom.c
--- linux-libre-3.4.52-gnu1/drivers/cdrom/cdrom.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/cdrom/cdrom.c	2013-07-13 14:03:57.000000000 -0400
@@ -2882,7 +2882,7 @@ static noinline int mmc_ioctl_cdrom_read
 	if (lba < 0)
 		return -EINVAL;
 
-	cgc->buffer = kmalloc(blocksize, GFP_KERNEL);
+	cgc->buffer = kzalloc(blocksize, GFP_KERNEL);
 	if (cgc->buffer == NULL)
 		return -ENOMEM;
 
diff -druNp linux-libre-3.4.52-gnu1/drivers/power/charger-manager.c linux-libre-3.4.53-gnu1/drivers/power/charger-manager.c
--- linux-libre-3.4.52-gnu1/drivers/power/charger-manager.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/power/charger-manager.c	2013-07-13 14:03:57.000000000 -0400
@@ -330,7 +330,7 @@ static void uevent_notify(struct charger
 	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 -druNp linux-libre-3.4.52-gnu1/drivers/scsi/osd/osd_uld.c linux-libre-3.4.53-gnu1/drivers/scsi/osd/osd_uld.c
--- linux-libre-3.4.52-gnu1/drivers/scsi/osd/osd_uld.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/scsi/osd/osd_uld.c	2013-07-13 14:03:57.000000000 -0400
@@ -465,7 +465,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 -druNp linux-libre-3.4.52-gnu1/drivers/scsi/sd.c linux-libre-3.4.53-gnu1/drivers/scsi/sd.c
--- linux-libre-3.4.52-gnu1/drivers/scsi/sd.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/scsi/sd.c	2013-07-13 14:03:57.000000000 -0400
@@ -140,7 +140,7 @@ sd_store_cache_type(struct device *dev,
 	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 -druNp linux-libre-3.4.52-gnu1/drivers/tty/serial/8250/8250_pci.c linux-libre-3.4.53-gnu1/drivers/tty/serial/8250/8250_pci.c
--- linux-libre-3.4.52-gnu1/drivers/tty/serial/8250/8250_pci.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/drivers/tty/serial/8250/8250_pci.c	2013-07-13 14:03:57.000000000 -0400
@@ -4086,10 +4086,6 @@ static struct pci_device_id serial_pci_t
 		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 -druNp linux-libre-3.4.52-gnu1/fs/hpfs/map.c linux-libre-3.4.53-gnu1/fs/hpfs/map.c
--- linux-libre-3.4.52-gnu1/fs/hpfs/map.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/fs/hpfs/map.c	2013-07-13 14:03:57.000000000 -0400
@@ -17,7 +17,8 @@ unsigned int *hpfs_map_bitmap(struct sup
 			 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 -druNp linux-libre-3.4.52-gnu1/fs/hpfs/super.c linux-libre-3.4.53-gnu1/fs/hpfs/super.c
--- linux-libre-3.4.52-gnu1/fs/hpfs/super.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/fs/hpfs/super.c	2013-07-13 14:03:57.000000000 -0400
@@ -552,7 +552,13 @@ static int hpfs_fill_super(struct super_
 	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 -druNp linux-libre-3.4.52-gnu1/fs/nfsd/nfs4xdr.c linux-libre-3.4.53-gnu1/fs/nfsd/nfs4xdr.c
--- linux-libre-3.4.52-gnu1/fs/nfsd/nfs4xdr.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/fs/nfsd/nfs4xdr.c	2013-07-13 14:03:57.000000000 -0400
@@ -161,8 +161,8 @@ static __be32 *read_buf(struct nfsd4_com
 	 */
 	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 -druNp linux-libre-3.4.52-gnu1/kernel/time/tick-sched.c linux-libre-3.4.53-gnu1/kernel/time/tick-sched.c
--- linux-libre-3.4.52-gnu1/kernel/time/tick-sched.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/kernel/time/tick-sched.c	2013-07-13 14:03:57.000000000 -0400
@@ -145,7 +145,6 @@ static void tick_nohz_update_jiffies(kti
 	tick_do_update_jiffies64(now);
 	local_irq_restore(flags);
 
-	calc_load_exit_idle();
 	touch_softlockup_watchdog();
 }
 
diff -druNp linux-libre-3.4.52-gnu1/MAINTAINERS linux-libre-3.4.53-gnu1/MAINTAINERS
--- linux-libre-3.4.52-gnu1/MAINTAINERS	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/MAINTAINERS	2013-07-13 14:03:57.000000000 -0400
@@ -6390,6 +6390,7 @@ STABLE BRANCH
 M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 L:	stable@vger.kernel.org
 S:	Supported
+F:	Documentation/stable_kernel_rules.txt
 
 STAGING SUBSYSTEM
 M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff -druNp linux-libre-3.4.52-gnu1/Makefile linux-libre-3.4.53-gnu1/Makefile
--- linux-libre-3.4.52-gnu1/Makefile	2013-07-04 22:56:53.000000000 -0400
+++ linux-libre-3.4.53-gnu1/Makefile	2013-07-13 18:18:53.000000000 -0400
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 4
-SUBLEVEL = 52
+SUBLEVEL = 53
 EXTRAVERSION =-gnu1
 NAME = Saber-toothed Squirrel
 
diff -druNp linux-libre-3.4.52-gnu1/net/ceph/auth_none.c linux-libre-3.4.53-gnu1/net/ceph/auth_none.c
--- linux-libre-3.4.52-gnu1/net/ceph/auth_none.c	2013-07-03 14:00:43.000000000 -0400
+++ linux-libre-3.4.53-gnu1/net/ceph/auth_none.c	2013-07-13 14:03:57.000000000 -0400
@@ -39,6 +39,11 @@ static int should_authenticate(struct ce
 	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
 	.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,
