linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Fabian Frederick <fabf@skynet.be>,
	Ian Campbell <ian.campbell@citrix.com>,
	Evgeniy Dushistov <dushistov@mail.ru>,
	Alexey Khoroshilov <khoroshilov@ispras.ru>,
	Roger Pau Monne <roger.pau@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Andrew Morton <akpm@linux-foundation.org>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 3.16.y-ckt 080/185] fs/ufs: restore s_lock mutex
Date: Wed, 15 Jul 2015 10:11:15 +0100	[thread overview]
Message-ID: <1436951580-15977-81-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1436951580-15977-1-git-send-email-luis.henriques@canonical.com>

3.16.7-ckt15 -stable review patch.  If anyone has any objections, please let me know.

------------------

From: Fabian Frederick <fabf@skynet.be>

commit cdd9eefdf905e92e7fc6cc393314efe68dc6ff66 upstream.

Commit 0244756edc4b98c ("ufs: sb mutex merge + mutex_destroy") generated
deadlocks in read/write mode on mkdir.

This patch partially reverts it keeping fixes by Andrew Morton and
mutex_destroy()

[AV: fixed a missing bit in ufs_remount()]

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Reported-by: Ian Campbell <ian.campbell@citrix.com>
Suggested-by: Jan Kara <jack@suse.cz>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
Cc: Roger Pau Monne <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 fs/ufs/balloc.c | 34 +++++++++++++++++-----------------
 fs/ufs/ialloc.c | 16 ++++++++--------
 fs/ufs/super.c  | 10 ++++++++++
 fs/ufs/ufs.h    |  1 +
 4 files changed, 36 insertions(+), 25 deletions(-)

diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c
index 7bc20809c99e..fe1b53d441e0 100644
--- a/fs/ufs/balloc.c
+++ b/fs/ufs/balloc.c
@@ -51,8 +51,8 @@ void ufs_free_fragments(struct inode *inode, u64 fragment, unsigned count)
 	
 	if (ufs_fragnum(fragment) + count > uspi->s_fpg)
 		ufs_error (sb, "ufs_free_fragments", "internal error");
-	
-	lock_ufs(sb);
+
+	mutex_lock(&UFS_SB(sb)->s_lock);
 	
 	cgno = ufs_dtog(uspi, fragment);
 	bit = ufs_dtogd(uspi, fragment);
@@ -115,13 +115,13 @@ void ufs_free_fragments(struct inode *inode, u64 fragment, unsigned count)
 	if (sb->s_flags & MS_SYNCHRONOUS)
 		ubh_sync_block(UCPI_UBH(ucpi));
 	ufs_mark_sb_dirty(sb);
-	
-	unlock_ufs(sb);
+
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	UFSD("EXIT\n");
 	return;
 
 failed:
-	unlock_ufs(sb);
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	UFSD("EXIT (FAILED)\n");
 	return;
 }
@@ -151,7 +151,7 @@ void ufs_free_blocks(struct inode *inode, u64 fragment, unsigned count)
 		goto failed;
 	}
 
-	lock_ufs(sb);
+	mutex_lock(&UFS_SB(sb)->s_lock);
 	
 do_more:
 	overflow = 0;
@@ -211,12 +211,12 @@ do_more:
 	}
 
 	ufs_mark_sb_dirty(sb);
-	unlock_ufs(sb);
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	UFSD("EXIT\n");
 	return;
 
 failed_unlock:
-	unlock_ufs(sb);
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 failed:
 	UFSD("EXIT (FAILED)\n");
 	return;
@@ -357,7 +357,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 	usb1 = ubh_get_usb_first(uspi);
 	*err = -ENOSPC;
 
-	lock_ufs(sb);
+	mutex_lock(&UFS_SB(sb)->s_lock);
 	tmp = ufs_data_ptr_to_cpu(sb, p);
 
 	if (count + ufs_fragnum(fragment) > uspi->s_fpb) {
@@ -378,19 +378,19 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 				  "fragment %llu, tmp %llu\n",
 				  (unsigned long long)fragment,
 				  (unsigned long long)tmp);
-			unlock_ufs(sb);
+			mutex_unlock(&UFS_SB(sb)->s_lock);
 			return INVBLOCK;
 		}
 		if (fragment < UFS_I(inode)->i_lastfrag) {
 			UFSD("EXIT (ALREADY ALLOCATED)\n");
-			unlock_ufs(sb);
+			mutex_unlock(&UFS_SB(sb)->s_lock);
 			return 0;
 		}
 	}
 	else {
 		if (tmp) {
 			UFSD("EXIT (ALREADY ALLOCATED)\n");
-			unlock_ufs(sb);
+			mutex_unlock(&UFS_SB(sb)->s_lock);
 			return 0;
 		}
 	}
@@ -399,7 +399,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 	 * There is not enough space for user on the device
 	 */
 	if (!capable(CAP_SYS_RESOURCE) && ufs_freespace(uspi, UFS_MINFREE) <= 0) {
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		UFSD("EXIT (FAILED)\n");
 		return 0;
 	}
@@ -424,7 +424,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 			ufs_clear_frags(inode, result + oldcount,
 					newcount - oldcount, locked_page != NULL);
 		}
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		UFSD("EXIT, result %llu\n", (unsigned long long)result);
 		return result;
 	}
@@ -439,7 +439,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 						fragment + count);
 		ufs_clear_frags(inode, result + oldcount, newcount - oldcount,
 				locked_page != NULL);
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		UFSD("EXIT, result %llu\n", (unsigned long long)result);
 		return result;
 	}
@@ -477,7 +477,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 		*err = 0;
 		UFS_I(inode)->i_lastfrag = max(UFS_I(inode)->i_lastfrag,
 						fragment + count);
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		if (newcount < request)
 			ufs_free_fragments (inode, result + newcount, request - newcount);
 		ufs_free_fragments (inode, tmp, oldcount);
@@ -485,7 +485,7 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
 		return result;
 	}
 
-	unlock_ufs(sb);
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	UFSD("EXIT (FAILED)\n");
 	return 0;
 }		
diff --git a/fs/ufs/ialloc.c b/fs/ufs/ialloc.c
index a9cc75ffa925..758ab7c305a4 100644
--- a/fs/ufs/ialloc.c
+++ b/fs/ufs/ialloc.c
@@ -69,11 +69,11 @@ void ufs_free_inode (struct inode * inode)
 	
 	ino = inode->i_ino;
 
-	lock_ufs(sb);
+	mutex_lock(&UFS_SB(sb)->s_lock);
 
 	if (!((ino > 1) && (ino < (uspi->s_ncg * uspi->s_ipg )))) {
 		ufs_warning(sb, "ufs_free_inode", "reserved inode or nonexistent inode %u\n", ino);
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		return;
 	}
 	
@@ -81,7 +81,7 @@ void ufs_free_inode (struct inode * inode)
 	bit = ufs_inotocgoff (ino);
 	ucpi = ufs_load_cylinder (sb, cg);
 	if (!ucpi) {
-		unlock_ufs(sb);
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		return;
 	}
 	ucg = ubh_get_ucg(UCPI_UBH(ucpi));
@@ -115,7 +115,7 @@ void ufs_free_inode (struct inode * inode)
 		ubh_sync_block(UCPI_UBH(ucpi));
 	
 	ufs_mark_sb_dirty(sb);
-	unlock_ufs(sb);
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	UFSD("EXIT\n");
 }
 
@@ -193,7 +193,7 @@ struct inode *ufs_new_inode(struct inode *dir, umode_t mode)
 	sbi = UFS_SB(sb);
 	uspi = sbi->s_uspi;
 
-	lock_ufs(sb);
+	mutex_lock(&sbi->s_lock);
 
 	/*
 	 * Try to place the inode in its parent directory
@@ -328,20 +328,20 @@ cg_found:
 			sync_dirty_buffer(bh);
 		brelse(bh);
 	}
-	unlock_ufs(sb);
+	mutex_unlock(&sbi->s_lock);
 
 	UFSD("allocating inode %lu\n", inode->i_ino);
 	UFSD("EXIT\n");
 	return inode;
 
 fail_remove_inode:
-	unlock_ufs(sb);
+	mutex_unlock(&sbi->s_lock);
 	clear_nlink(inode);
 	iput(inode);
 	UFSD("EXIT (FAILED): err %d\n", err);
 	return ERR_PTR(err);
 failed:
-	unlock_ufs(sb);
+	mutex_unlock(&sbi->s_lock);
 	make_bad_inode(inode);
 	iput (inode);
 	UFSD("EXIT (FAILED): err %d\n", err);
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index b879f1ba3439..c78e43342107 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -697,6 +697,7 @@ static int ufs_sync_fs(struct super_block *sb, int wait)
 	unsigned flags;
 
 	lock_ufs(sb);
+	mutex_lock(&UFS_SB(sb)->s_lock);
 
 	UFSD("ENTER\n");
 
@@ -714,6 +715,7 @@ static int ufs_sync_fs(struct super_block *sb, int wait)
 	ufs_put_cstotal(sb);
 
 	UFSD("EXIT\n");
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	unlock_ufs(sb);
 
 	return 0;
@@ -1280,6 +1282,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 
 	sync_filesystem(sb);
 	lock_ufs(sb);
+	mutex_lock(&UFS_SB(sb)->s_lock);
 	uspi = UFS_SB(sb)->s_uspi;
 	flags = UFS_SB(sb)->s_flags;
 	usb1 = ubh_get_usb_first(uspi);
@@ -1293,6 +1296,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 	new_mount_opt = 0;
 	ufs_set_opt (new_mount_opt, ONERROR_LOCK);
 	if (!ufs_parse_options (data, &new_mount_opt)) {
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		unlock_ufs(sb);
 		return -EINVAL;
 	}
@@ -1300,12 +1304,14 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 		new_mount_opt |= ufstype;
 	} else if ((new_mount_opt & UFS_MOUNT_UFSTYPE) != ufstype) {
 		printk("ufstype can't be changed during remount\n");
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		unlock_ufs(sb);
 		return -EINVAL;
 	}
 
 	if ((*mount_flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) {
 		UFS_SB(sb)->s_mount_opt = new_mount_opt;
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		unlock_ufs(sb);
 		return 0;
 	}
@@ -1330,6 +1336,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 #ifndef CONFIG_UFS_FS_WRITE
 		printk("ufs was compiled with read-only support, "
 		"can't be mounted as read-write\n");
+		mutex_unlock(&UFS_SB(sb)->s_lock);
 		unlock_ufs(sb);
 		return -EINVAL;
 #else
@@ -1339,11 +1346,13 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 		    ufstype != UFS_MOUNT_UFSTYPE_SUNx86 &&
 		    ufstype != UFS_MOUNT_UFSTYPE_UFS2) {
 			printk("this ufstype is read-only supported\n");
+			mutex_unlock(&UFS_SB(sb)->s_lock);
 			unlock_ufs(sb);
 			return -EINVAL;
 		}
 		if (!ufs_read_cylinder_structures(sb)) {
 			printk("failed during remounting\n");
+			mutex_unlock(&UFS_SB(sb)->s_lock);
 			unlock_ufs(sb);
 			return -EPERM;
 		}
@@ -1351,6 +1360,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
 #endif
 	}
 	UFS_SB(sb)->s_mount_opt = new_mount_opt;
+	mutex_unlock(&UFS_SB(sb)->s_lock);
 	unlock_ufs(sb);
 	return 0;
 }
diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h
index 343e6fc571e5..ff2c15ab81aa 100644
--- a/fs/ufs/ufs.h
+++ b/fs/ufs/ufs.h
@@ -24,6 +24,7 @@ struct ufs_sb_info {
 	int work_queued; /* non-zero if the delayed work is queued */
 	struct delayed_work sync_work; /* FS sync delayed work */
 	spinlock_t work_lock; /* protects sync_work and work_queued */
+	struct mutex s_lock;
 };
 
 struct ufs_inode_info {

  parent reply	other threads:[~2015-07-15  9:48 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-15  9:09 [3.16.y-ckt stable] Linux 3.16.7-ckt15 stable review Luis Henriques
2015-07-15  9:09 ` [PATCH 3.16.y-ckt 001/185] ARM: clk-imx6q: refine sata's parent Luis Henriques
2015-07-15  9:09 ` [PATCH 3.16.y-ckt 002/185] KVM: nSVM: Check for NRIPS support before updating control field Luis Henriques
2015-07-15  9:09 ` [PATCH 3.16.y-ckt 003/185] nfs: take extra reference to fl->fl_file when running a setlk Luis Henriques
2015-07-15  9:09 ` [PATCH 3.16.y-ckt 004/185] bridge: fix multicast router rlist endless loop Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 005/185] net: don't wait for order-3 page allocation Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 006/185] sctp: fix ASCONF list handling Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 007/185] bridge: fix br_stp_set_bridge_priority race conditions Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 008/185] packet: read num_members once in packet_rcv_fanout() Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 009/185] packet: avoid out of bounds read in round robin fanout Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 010/185] neigh: do not modify unlinked entries Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 011/185] tcp: Do not call tcp_fastopen_reset_cipher from interrupt context Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 012/185] net: phy: fix phy link up when limiting speed via device tree Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 013/185] sctp: Fix race between OOTB responce and route removal Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 014/185] x86/mce: Fix MCE severity messages Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 015/185] [media] s5h1420: fix a buffer overflow when checking userspace params Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 016/185] [media] cx24116: " Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 017/185] [media] af9013: Don't accept invalid bandwidth Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 018/185] [media] cx24117: fix a buffer overflow when checking userspace params Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 019/185] spi: fix race freeing dummy_tx/rx before it is unmapped Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 020/185] mtd: fix: avoid race condition when accessing mtd->usecount Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 021/185] intel_pstate: set BYT MSR with wrmsrl_on_cpu() Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 022/185] leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 023/185] crypto: talitos - avoid memleak in talitos_alg_alloc() Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 024/185] Revert "crypto: talitos - convert to use be16_add_cpu()" Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 025/185] genirq: devres: Fix testing return value of request_any_context_irq() Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 026/185] ASoC: wm8737: Fixup setting VMID Impedance control register Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 027/185] ASoC: wm8903: Fix define for WM8903_VMID_RES_250K Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 028/185] mnt: Refactor the logic for mounting sysfs and proc in a user namespace Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 029/185] ASoC: wm8955: Fix setting wrong register for WM8955_K_8_0_MASK bits Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 030/185] scsi_transport_srp: Introduce srp_wait_for_queuecommand() Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 031/185] scsi_transport_srp: Fix a race condition Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 032/185] KVM: mips: use id_to_memslot correctly Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 033/185] w1_therm reference count family data Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 034/185] drm/radeon: take the mode_config mutex when dealing with hpds (v2) Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 035/185] usb: dwc3: gadget: return error if command sent to DGCMD register fails Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 036/185] rcu: Correctly handle non-empty Tiny RCU callback list with none ready Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 037/185] ASoC: arizona: Fix noise generator gain TLV Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 038/185] usb: dwc3: gadget: don't clear EP_BUSY too early Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 039/185] staging: rtl8712: prevent buffer overrun in recvbuf2recvframe Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 040/185] usb: core: Fix USB 3.0 devices lost in NOTATTACHED state after a hub port reset Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 041/185] staging: vt6655: device_rx_srv check sk_buff is NULL Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 042/185] fixing infinite OPEN loop in 4.0 stateid recovery Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 043/185] ideapad_laptop: Lenovo G50-30 fix rfkill reports wireless blocked Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 044/185] powerpc/perf: Fix book3s kernel to userspace backtraces Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 045/185] SUNRPC: Fix a memory leak in the backchannel code Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 046/185] ipr: Increase default adapter init stage change timeout Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 047/185] ieee802154: Fix sockaddr_ieee802154 implicit padding information leak Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 048/185] mnt: Modify fs_fully_visible to deal with locked ro nodev and atime Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 049/185] drm/qxl: Do not cause spice-server to clean our objects Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 050/185] drm/qxl: Do not leak memory if qxl_release_list_add fails Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 051/185] selinux: fix setting of security labels on NFS Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 052/185] ath3k: Add support of 0489:e076 AR3012 device Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 053/185] ath3k: add support of 13d3:3474 " Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 054/185] Bluetooth: btusb: Fix memory leak in Intel setup routine Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 055/185] ath9k: fix DMA stop sequence for AR9003+ Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 056/185] b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 057/185] cdc-acm: Add support of ATOL FPrint fiscal printers Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 058/185] regulator: core: fix constraints output buffer Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 059/185] ACPI / PM: Add missing pm_generic_complete() invocation Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 060/185] x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 061/185] pinctrl: mvebu: armada-38x: fix PCIe functions Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 062/185] pinctrl: mvebu: armada-370: fix spi0 pin description Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 063/185] pinctrl: mvebu: armada-375: remove non-existing NAND re/we pins Luis Henriques
2015-07-15  9:10 ` [PATCH 3.16.y-ckt 064/185] pinctrl: mvebu: armada-xp: remove non-existing NAND pins Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 065/185] pinctrl: mvebu: armada-xp: remove non-existing VDD cpu_pd functions Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 066/185] pinctrl: mvebu: armada-xp: fix functions of MPP48 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 067/185] pinctrl: mvebu: armada-375: remove incorrect space in pin description Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 068/185] pinctrl: mvebu: armada-38x: fix incorrect total number of GPIOs Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 069/185] i2c: at91: fix a race condition when using the DMA controller Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 070/185] dmaengine: mv_xor: bug fix for racing condition in descriptors cleanup Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 071/185] ASoC: wm8960: the enum of "DAC Polarity" should be wm8960_enum[1] Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 072/185] arm64: Do not attempt to use init_mm in reset_context() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 073/185] ext4: fix race between truncate and __ext4_journalled_writepage() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 074/185] Disable write buffering on Toshiba ToPIC95 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 075/185] fs/ufs: revert "ufs: fix deadlocks introduced by sb mutex merge" Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 076/185] jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 077/185] regmap: Fix regmap_bulk_read in BE mode Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 078/185] jbd2: fix ocfs2 corrupt when updating journal superblock fails Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 079/185] ideapad: fix software rfkill setting Luis Henriques
2015-07-15  9:11 ` Luis Henriques [this message]
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 081/185] regmap: Fix possible shift overflow in regmap_field_init() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 082/185] ima: fix ima_show_template_data_ascii() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 083/185] nfs: increase size of EXCHANGE_ID name string buffer Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 084/185] vTPM: set virtual device before passing to ibmvtpm_reset_crq Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 085/185] arm: KVM: force execution of HCPTR access on VM exit Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 086/185] arm64: mm: Fix freeing of the wrong memmap entries with !SPARSEMEM_VMEMMAP Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 087/185] dm space map metadata: fix occasional leak of a metadata block on resize Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 088/185] dm stats: fix divide by zero if 'number_of_areas' arg is zero Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 089/185] x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 090/185] pNFS: Fix a memory leak when attempted pnfs fails Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 091/185] ACPI / PNP: Avoid conflicting resource reservations Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 092/185] Bluetooth: ath3k: add support of 04ca:300f AR3012 device Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 093/185] Bluetooth: ath3k: Add support of 04ca:300d " Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 094/185] libata: Do not blacklist Micron M500DC Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 095/185] arm64: vdso: work-around broken ELF toolchains in Makefile Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 096/185] iommu/amd: Handle large pages correctly in free_pagetable Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 097/185] ext4: call sync_blockdev() before invalidate_bdev() in put_super() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 098/185] MIPS: Fix KVM guest fixmap address Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 099/185] xfs: fix remote symlinks on V5/CRC filesystems Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 100/185] ext4: don't retry file block mapping on bigalloc fs with non-extent file Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 101/185] xfs: don't truncate attribute extents if no extents exist Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 102/185] NET: ROSE: Don't dereference NULL neighbour pointer Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 103/185] netfilter: nf_qeueue: Drop queue entries on nf_unregister_hook Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 104/185] fs: Fix S_NOSEC handling Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 105/185] stmmac: troubleshoot unexpected bits in des0 & des1 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 106/185] ACPI / resources: free memory on error in add_region_before() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 107/185] PM / sleep: Increase default DPM watchdog timeout to 60 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 108/185] ARC: add compiler barrier to LLSC based cmpxchg Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 109/185] locking,arch,arc: Fold atomic_ops Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 110/185] ARC: add smp barriers around atomics per Documentation/atomic_ops.txt Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 111/185] mm: kmemleak: allow safe memory scanning during kmemleak disabling Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 112/185] dell-laptop: Fix allocating & freeing SMI buffer page Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 113/185] ALSA: hda - Fix Dock Headphone on Thinkpad X250 seen as a Line Out Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 114/185] tracing/filter: Do not WARN on operand count going below zero Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 115/185] tracing/filter: Do not allow infix to exceed end of string Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 116/185] clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 117/185] ALSA: hda - Add headset support to Acer Aspire V5 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 118/185] ALSA: hda - Fix the dock headphone output on Fujitsu Lifebook E780 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 119/185] agp/intel: Fix typo in needs_ilk_vtd_wa() Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 120/185] drm/i915: fix backlight after resume on 855gm Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 121/185] drm/radeon: compute ring fix hibernation (CI GPU family) v2 Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 122/185] drm/radeon: SDMA fix hibernation (CI GPU family) Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 123/185] net: mvneta: introduce compatible string "marvell, armada-xp-neta" Luis Henriques
2015-07-15  9:11 ` [PATCH 3.16.y-ckt 124/185] ARM: mvebu: update Ethernet compatible string for Armada XP Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 125/185] net: mvneta: disable IP checksum with jumbo frames for Armada 370 Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 126/185] crush: fix a bug in tree bucket decode Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 127/185] rbd: use GFP_NOIO in rbd_obj_request_create() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 128/185] arm64: Don't report clear pmds and puds as huge Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 129/185] fuse: initialize fc->release before calling it Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 130/185] vfs: Ignore unlocked mounts in fs_fully_visible Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 131/185] VFS: Introduce inode-getting helpers for layered/unioned fs environments Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 132/185] fs: Add helper functions for permanently empty directories Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 133/185] sysctl: Allow creating permanently empty directories that serve as mountpoints Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 134/185] proc: Allow creating permanently empty directories that serve as mount points Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 135/185] kernfs: Add support for always empty directories Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 136/185] sysfs: Add support for permanently empty directories to serve as mount points Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 137/185] mnt: Update fs_fully_visible to test for permanently empty directories Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 138/185] vfs: Remove incorrect debugging WARN in prepend_path Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 139/185] hwmon: (mcp3021) Fix broken output scaling Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 140/185] ACPICA: Tables: Enable both 32-bit and 64-bit FACS Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 141/185] ACPICA: Tables: Fix an issue that FACS initialization is performed twice Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 142/185] ACPICA: Tables: Enable default 64-bit FADT addresses favor Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 143/185] KVM: x86: make vapics_in_nmi_mode atomic Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 144/185] KVM: x86: properly restore LVT0 Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 145/185] KVM: s390: virtio-ccw: don't overwrite config space values Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 146/185] 9p: forgetting to cancel request on interrupted zero-copy RPC Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 147/185] clk: Fix JSON output in debugfs Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 148/185] e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 149/185] powerpc/pseries: Fix possible leaked device node reference Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 150/185] clk: ti: dra7-atl-clock: Fix possible ERR_PTR dereference Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 151/185] ipip: fix one sparse error Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 152/185] HID: rmi: fix some harmless BIT() mistakes Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 153/185] HID: i2c-hid: fix harmless test_bit() issue Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 154/185] pktgen: adjust spacing in proc file interface output Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 155/185] USB: devio: fix a condition in async_completed() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 156/185] tty: remove platform_sysrq_reset_seq Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 157/185] net/mlx4_core: Enhance the MAD_IFC wrapper to convert VF port to physical Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 158/185] IB/mlx4: Convert slave port before building address-handle Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 159/185] ath9k_htc: memory corruption calling set_bit() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 160/185] rndis_wlan: harmless issue " Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 161/185] mtd: dc21285: use raw spinlock functions for nw_gpio_lock Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 162/185] mac80211: prevent possible crypto tx tailroom corruption Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 163/185] cfg80211: ignore netif running state when changing iftype Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 164/185] phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 165/185] NFS: Fix size of NFSACL SETACL operations Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 166/185] Btrfs: lock superblock before remounting for rw subvol Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 167/185] of: return NUMA_NO_NODE from fallback of_node_to_nid() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 168/185] sched/fair: Prevent throttling in early pick_next_task_fair() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 169/185] ASoC: imx-wm8962: Add a missing error check Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 170/185] ACPI / init: Switch over platform to the ACPI mode later Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 171/185] drm/tegra: dpaux: Fix transfers larger than 4 bytes Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 172/185] mmc: card: Fixup request missing in mmc_blk_issue_rw_rq Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 173/185] perf: Fix ring_buffer_attach() RCU sync, again Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 174/185] watchdog: omap: assert the counter being stopped before reprogramming Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 175/185] bridge: multicast: restore router configuration on port link down/up Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 176/185] mm/hugetlb: introduce minimum hugepage order Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 177/185] security_syslog() should be called once only Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 178/185] __bitmap_parselist: fix bug in empty string handling Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 179/185] x86/iosf: Add Kconfig prompt for IOSF_MBI selection Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 180/185] kvm: x86: fix kvm_apic_has_events to check for NULL pointer Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 181/185] sparc: Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in softirq context Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 182/185] fs/ufs: restore s_lock mutex_init() Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 183/185] ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage Luis Henriques
2015-07-15  9:12 ` [PATCH 3.16.y-ckt 184/185] LZ4 : fix the data abort issue Luis Henriques
2015-07-15  9:13 ` [PATCH 3.16.y-ckt 185/185] lz4: fix system halt at boot kernel on x86_64 Luis Henriques

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1436951580-15977-81-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=akpm@linux-foundation.org \
    --cc=dushistov@mail.ru \
    --cc=fabf@skynet.be \
    --cc=ian.campbell@citrix.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=khoroshilov@ispras.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roger.pau@citrix.com \
    --cc=stable@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).