mirror of https://lore.kernel.org/lkml/
 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: Filipe Manana <fdmanana@suse.com>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 3.16.y-ckt 070/126] Btrfs: fix race leading to incorrect item deletion when dropping extents
Date: Wed,  9 Dec 2015 09:37:20 +0000	[thread overview]
Message-ID: <1449653896-5236-71-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1449653896-5236-1-git-send-email-luis.henriques@canonical.com>

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

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

From: Filipe Manana <fdmanana@suse.com>

commit aeafbf8486c9e2bd53f5cc3c10c0b7fd7149d69c upstream.

While running a stress test I got the following warning triggered:

  [191627.672810] ------------[ cut here ]------------
  [191627.673949] WARNING: CPU: 8 PID: 8447 at fs/btrfs/file.c:779 __btrfs_drop_extents+0x391/0xa50 [btrfs]()
  (...)
  [191627.701485] Call Trace:
  [191627.702037]  [<ffffffff8145f077>] dump_stack+0x4f/0x7b
  [191627.702992]  [<ffffffff81095de5>] ? console_unlock+0x356/0x3a2
  [191627.704091]  [<ffffffff8104b3b0>] warn_slowpath_common+0xa1/0xbb
  [191627.705380]  [<ffffffffa0664499>] ? __btrfs_drop_extents+0x391/0xa50 [btrfs]
  [191627.706637]  [<ffffffff8104b46d>] warn_slowpath_null+0x1a/0x1c
  [191627.707789]  [<ffffffffa0664499>] __btrfs_drop_extents+0x391/0xa50 [btrfs]
  [191627.709155]  [<ffffffff8115663c>] ? cache_alloc_debugcheck_after.isra.32+0x171/0x1d0
  [191627.712444]  [<ffffffff81155007>] ? kmemleak_alloc_recursive.constprop.40+0x16/0x18
  [191627.714162]  [<ffffffffa06570c9>] insert_reserved_file_extent.constprop.40+0x83/0x24e [btrfs]
  [191627.715887]  [<ffffffffa065422b>] ? start_transaction+0x3bb/0x610 [btrfs]
  [191627.717287]  [<ffffffffa065b604>] btrfs_finish_ordered_io+0x273/0x4e2 [btrfs]
  [191627.728865]  [<ffffffffa065b888>] finish_ordered_fn+0x15/0x17 [btrfs]
  [191627.730045]  [<ffffffffa067d688>] normal_work_helper+0x14c/0x32c [btrfs]
  [191627.731256]  [<ffffffffa067d96a>] btrfs_endio_write_helper+0x12/0x14 [btrfs]
  [191627.732661]  [<ffffffff81061119>] process_one_work+0x24c/0x4ae
  [191627.733822]  [<ffffffff810615b0>] worker_thread+0x206/0x2c2
  [191627.734857]  [<ffffffff810613aa>] ? process_scheduled_works+0x2f/0x2f
  [191627.736052]  [<ffffffff810613aa>] ? process_scheduled_works+0x2f/0x2f
  [191627.737349]  [<ffffffff810669a6>] kthread+0xef/0xf7
  [191627.738267]  [<ffffffff810f3b3a>] ? time_hardirqs_on+0x15/0x28
  [191627.739330]  [<ffffffff810668b7>] ? __kthread_parkme+0xad/0xad
  [191627.741976]  [<ffffffff81465592>] ret_from_fork+0x42/0x70
  [191627.743080]  [<ffffffff810668b7>] ? __kthread_parkme+0xad/0xad
  [191627.744206] ---[ end trace bbfddacb7aaada8d ]---

  $ cat -n fs/btrfs/file.c
  691  int __btrfs_drop_extents(struct btrfs_trans_handle *trans,
  (...)
  758                  btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
  759                  if (key.objectid > ino ||
  760                      key.type > BTRFS_EXTENT_DATA_KEY || key.offset >= end)
  761                          break;
  762
  763                  fi = btrfs_item_ptr(leaf, path->slots[0],
  764                                      struct btrfs_file_extent_item);
  765                  extent_type = btrfs_file_extent_type(leaf, fi);
  766
  767                  if (extent_type == BTRFS_FILE_EXTENT_REG ||
  768                      extent_type == BTRFS_FILE_EXTENT_PREALLOC) {
  (...)
  774                  } else if (extent_type == BTRFS_FILE_EXTENT_INLINE) {
  (...)
  778                  } else {
  779                          WARN_ON(1);
  780                          extent_end = search_start;
  781                  }
  (...)

This happened because the item we were processing did not match a file
extent item (its key type != BTRFS_EXTENT_DATA_KEY), and even on this
case we cast the item to a struct btrfs_file_extent_item pointer and
then find a type field value that does not match any of the expected
values (BTRFS_FILE_EXTENT_[REG|PREALLOC|INLINE]). This scenario happens
due to a tiny time window where a race can happen as exemplified below.
For example, consider the following scenario where we're using the
NO_HOLES feature and we have the following two neighbour leafs:

               Leaf X (has N items)                    Leaf Y

[ ... (257 INODE_ITEM 0) (257 INODE_REF 256) ]  [ (257 EXTENT_DATA 8192), ... ]
          slot N - 2         slot N - 1              slot 0

Our inode 257 has an implicit hole in the range [0, 8K[ (implicit rather
than explicit because NO_HOLES is enabled). Now if our inode has an
ordered extent for the range [4K, 8K[ that is finishing, the following
can happen:

          CPU 1                                       CPU 2

  btrfs_finish_ordered_io()
    insert_reserved_file_extent()
      __btrfs_drop_extents()
         Searches for the key
          (257 EXTENT_DATA 4096) through
          btrfs_lookup_file_extent()

         Key not found and we get a path where
         path->nodes[0] == leaf X and
         path->slots[0] == N

         Because path->slots[0] is >=
         btrfs_header_nritems(leaf X), we call
         btrfs_next_leaf()

         btrfs_next_leaf() releases the path

                                                  inserts key
                                                  (257 INODE_REF 4096)
                                                  at the end of leaf X,
                                                  leaf X now has N + 1 keys,
                                                  and the new key is at
                                                  slot N

         btrfs_next_leaf() searches for
         key (257 INODE_REF 256), with
         path->keep_locks set to 1,
         because it was the last key it
         saw in leaf X

           finds it in leaf X again and
           notices it's no longer the last
           key of the leaf, so it returns 0
           with path->nodes[0] == leaf X and
           path->slots[0] == N (which is now
           < btrfs_header_nritems(leaf X)),
           pointing to the new key
           (257 INODE_REF 4096)

         __btrfs_drop_extents() casts the
         item at path->nodes[0], slot
         path->slots[0], to a struct
         btrfs_file_extent_item - it does
         not skip keys for the target
         inode with a type less than
         BTRFS_EXTENT_DATA_KEY
         (BTRFS_INODE_REF_KEY < BTRFS_EXTENT_DATA_KEY)

         sees a bogus value for the type
         field triggering the WARN_ON in
         the trace shown above, and sets
         extent_end = search_start (4096)

         does the if-then-else logic to
         fixup 0 length extent items created
         by a past bug from hole punching:

           if (extent_end == key.offset &&
               extent_end >= search_start)
               goto delete_extent_item;

         that evaluates to true and it ends
         up deleting the key pointed to by
         path->slots[0], (257 INODE_REF 4096),
         from leaf X

The same could happen for example for a xattr that ends up having a key
with an offset value that matches search_start (very unlikely but not
impossible).

So fix this by ensuring that keys smaller than BTRFS_EXTENT_DATA_KEY are
skipped, never casted to struct btrfs_file_extent_item and never deleted
by accident. Also protect against the unexpected case of getting a key
for a lower inode number by skipping that key and issuing a warning.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 fs/btrfs/file.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 39aa46612541..7a71c7885835 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -760,8 +760,16 @@ next_slot:
 		}
 
 		btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
-		if (key.objectid > ino ||
-		    key.type > BTRFS_EXTENT_DATA_KEY || key.offset >= end)
+
+		if (key.objectid > ino)
+			break;
+		if (WARN_ON_ONCE(key.objectid < ino) ||
+		    key.type < BTRFS_EXTENT_DATA_KEY) {
+			ASSERT(del_nr == 0);
+			path->slots[0]++;
+			goto next_slot;
+		}
+		if (key.type > BTRFS_EXTENT_DATA_KEY || key.offset >= end)
 			break;
 
 		fi = btrfs_item_ptr(leaf, path->slots[0],
@@ -780,8 +788,8 @@ next_slot:
 				btrfs_file_extent_inline_len(leaf,
 						     path->slots[0], fi);
 		} else {
-			WARN_ON(1);
-			extent_end = search_start;
+			/* can't happen */
+			BUG();
 		}
 
 		/*

  parent reply	other threads:[~2015-12-09 10:11 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-09  9:36 [3.16.y-ckt stable] Linux 3.16.7-ckt21 stable review Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 001/126] irda: precedence bug in irlmp_seq_hb_idx() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 002/126] qmi_wwan: add Sierra Wireless MC74xx/EM74xx Luis Henriques
2015-12-09 11:27   ` Bjørn Mork
2015-12-09 11:44     ` Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 003/126] macvtap: unbreak receiving of gro skb with frag list Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 004/126] RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 005/126] stmmac: Correctly report PTP capabilities Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 006/126] ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 007/126] net: qmi_wwan: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 008/126] qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ " Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 009/126] sit: fix sit0 percpu double allocations Luis Henriques
2015-12-12  4:18   ` Ben Hutchings
2015-12-13 18:54     ` Luis Henriques
2015-12-13 20:20       ` Ben Hutchings
2015-12-13 20:43         ` Eric Dumazet
2015-12-13 21:22           ` Ben Hutchings
2015-12-13 21:44             ` Eric Dumazet
2015-12-13 21:49               ` Ben Hutchings
2015-12-13 22:45                 ` Eric Dumazet
2015-12-13 23:03                   ` Ben Hutchings
2015-12-13 21:32           ` Luis Henriques
2015-12-13 22:14           ` David Miller
2015-12-13 22:22             ` Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 010/126] packet: race condition in packet_bind Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 011/126] net: avoid NULL deref in inet_ctl_sock_destroy() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 012/126] net: fix a race in dst_release() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 013/126] Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 014/126] x86/xen: Do not clip xen_e820_map to xen_e820_map_entries when sanitizing map Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 015/126] HID: core: Avoid uninitialized buffer access Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 016/126] [media] v4l2-compat-ioctl32: fix alignment for ARM64 Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 017/126] net: mvneta: Fix CPU_MAP registers initialisation Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 018/126] mtd: mtdpart: fix add_mtd_partitions error path Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 019/126] ARM: 8426/1: dma-mapping: add missing range check in dma_mmap() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 020/126] ARM: 8427/1: dma-mapping: add support for offset parameter " Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 021/126] mm: Check if section present during memory block (un)registering Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 022/126] spi: ti-qspi: Fix data corruption seen on r/w stress test Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 023/126] lockd: create NSM handles per net namespace Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 024/126] Revert "mm: Check if section present during memory block (un)registering" Luis Henriques
2015-12-12  4:37   ` Ben Hutchings
2015-12-13 18:57     ` Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 025/126] Btrfs: fix file corruption and data loss after cloning inline extents Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 026/126] ARM: common: edma: Fix channel parameter for irq callbacks Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 027/126] iommu/vt-d: Fix ATSR handling for Root-Complex integrated endpoints Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 028/126] Btrfs: fix truncation of compressed and inlined extents Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 029/126] ext4: fix potential use after free in __ext4_journal_stop Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 030/126] [PATCH] fix calculation of meta_bg descriptor backups Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 031/126] ext4, jbd2: ensure entering into panic after recording an error in superblock Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 032/126] vTPM: fix memory allocation flag for rtce buffer at kernel boot Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 033/126] spi: dw: explicitly free IRQ handler in dw_spi_remove_host() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 034/126] [media] media: vb2 dma-contig: Fully cache synchronise buffers in prepare and finish Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 035/126] Bluetooth: hidp: fix device disconnect on idle timeout Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 036/126] Bluetooth: ath3k: Add new AR3012 0930:021c id Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 037/126] Bluetooth: ath3k: Add support of AR3012 0cf3:817b device Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 038/126] spi: atmel: Fix DMA-setup for transfers with more than 8 bits per word Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 039/126] USB: qcserial: add Sierra Wireless MC74xx/EM74xx Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 040/126] staging: rtl8712: Add device ID for Sitecom WLA2100 Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 041/126] ACPI: Use correct IRQ when uninstalling ACPI interrupt handler Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 042/126] ALSA: hda/realtek - Dell XPS one ALC3260 speaker no sound after resume back Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 043/126] MAINTAINERS: Add public mailing list for ARC Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 044/126] megaraid_sas: Do not use PAGE_SIZE for max_sectors Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 045/126] KVM: s390: SCA must not cross page boundaries Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 046/126] arm64: Fix compat register mappings Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 047/126] can: Use correct type in sizeof() in nla_put() Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 048/126] mtd: blkdevs: fix potential deadlock + lockdep warnings Luis Henriques
2015-12-09  9:36 ` [PATCH 3.16.y-ckt 049/126] Revert "dm mpath: fix stalls when handling invalid ioctls" Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 050/126] drm/i915: add quirk to enable backlight on Dell Chromebook 11 (2015) Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 051/126] crypto: algif_hash - Only export and import on sockets with data Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 052/126] xtensa: fixes for configs without loop option Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 053/126] megaraid_sas : SMAP restriction--do not access user memory from IOCTL code Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 054/126] mac80211: fix divide by zero when NOA update Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 055/126] mac80211: allow null chandef in tracing Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 056/126] xtensa: fix secondary core boot in SMP Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 057/126] recordmcount: Fix endianness handling bug for nop_mcount Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 058/126] KVM: VMX: fix SMEP and SMAP without EPT Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure Luis Henriques
2015-12-09 13:22   ` Krzysztof Kozlowski
2015-12-09 13:59     ` Luis Henriques
2015-12-10  0:48       ` Krzysztof Kozlowski
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 060/126] ALSA: hda - Apply pin fixup for HP ProBook 6550b Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 061/126] ALSA: hda - Add Intel Lewisburg device IDs Audio Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 062/126] firewire: ohci: fix JMicron JMB38x IT context discovery Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 063/126] scsi: restart list search after unlock in scsi_remove_target Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 064/126] mm: slab: only move management objects off-slab for sizes larger than KMALLOC_MIN_SIZE Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 065/126] Input: elantech - add Fujitsu Lifebook U745 to force crc_enabled Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 066/126] proc: actually make proc_fd_permission() thread-friendly Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 067/126] x86/setup: Extend low identity map to cover whole kernel range Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 068/126] x86/setup: Fix low identity map for >= 2GB " Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 069/126] x86/cpu: Call verify_cpu() after having entered long mode too Luis Henriques
2015-12-09  9:37 ` Luis Henriques [this message]
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 071/126] Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 072/126] perf: Fix inherited events vs. tracepoint filters Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 073/126] scsi_sysfs: Fix queue_ramp_up_period return code Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 074/126] Btrfs: fix race when listing an inode's xattrs Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 075/126] ideapad-laptop: Add Lenovo Yoga 900 to no_hw_rfkill dmi list Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 076/126] storvsc: Don't set the SRB_FLAGS_QUEUE_ACTION_ENABLE flag Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 077/126] KVM: x86: Defining missing x86 vectors Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 078/126] KVM: x86: work around infinite loop in microcode when #AC is delivered Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 079/126] KVM: svm: unconditionally intercept #DB Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 080/126] drivers: of: of_reserved_mem: fixup the alignment with CMA setup Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 081/126] drm/ast: Initialized data needed to map fbdev memory Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 082/126] FS-Cache: Increase reference of parent after registering, netfs success Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 083/126] FS-Cache: Don't override netfs's primary_index if registering failed Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 084/126] binfmt_elf: Don't clobber passed executable's file header Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 085/126] fs/pipe.c: return error code rather than 0 in pipe_write() Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 086/126] splice: sendfile() at once fails for big files Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 087/126] mac80211: fix driver RSSI event calculations Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 088/126] wm831x_power: Use IRQF_ONESHOT to request threaded IRQs Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 089/126] mwifiex: fix mwifiex_rdeeprom_read() Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 090/126] dmaengine: dw: convert to __ffs() Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 091/126] usb: ehci-orion: fix probe for !GENERIC_PHY Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 092/126] devres: fix a for loop bounds check Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 093/126] netfilter: remove dead code Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 094/126] ipv4: Fix ip_queue_xmit to pass sk into ip_local_out_sk Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 095/126] packet: fix match_fanout_group() Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 096/126] hsi: fix double kfree Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 097/126] hsi: omap_ssi_port: Prevent warning if cawake_gpio is not defined Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 098/126] ARM: pxa: remove incorrect __init annotation on pxa27x_set_pwrmode Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 099/126] ALSA: fireworks/bebob/oxfw/dice: enable to make as built-in Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 100/126] drm: Fix return value of drm_framebuffer_init() Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 101/126] ALSA: fireworks: use u32 type for be32_to_cpup() macro Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 102/126] ALSA: bebob: use correct type for __be32 data Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 103/126] tcp: apply Kern's check on RTTs used for congestion control Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 104/126] clk: versatile-icst: fix memory leak Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 105/126] MIPS: atomic: Fix comment describing atomic64_add_unless's return value Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 106/126] mfd: twl6040: Fix deferred probe handling for clk32k Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 107/126] of/fdt: fix error checking for earlycon address Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 108/126] netfilter: nfnetlink: don't probe module if it exists Luis Henriques
2015-12-09  9:37 ` [PATCH 3.16.y-ckt 109/126] xprtrdma: Re-arm after missed events Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 110/126] ceph: fix message length computation Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 111/126] ipv6: fix tunnel error handling Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 112/126] perf trace: Fix documentation for -i Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 113/126] bonding: fix panic on non-ARPHRD_ETHER enslave failure Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 114/126] rtc: ds1307: Fix alarm programming for mcp794xx Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 115/126] TPM: Avoid reference to potentially freed memory Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 116/126] xtensa: nommu: provide _PAGE_CHG_MASK definition Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 117/126] md/raid0: update queue parameter in a safer location Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 118/126] md/raid0: apply base queue limits *before* disk_stack_limits Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 119/126] drm/radeon: add quirk for MSI R7 370 Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 120/126] drm/radeon: add quirk for ASUS " Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 121/126] drm/radeon: fix quirk for MSI R7 370 Armor 2X Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 122/126] tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 123/126] fs/proc, core/debug: Don't expose absolute kernel addresses via wchan Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 124/126] ALSA: hda - Disable 64bit address for Creative HDA controllers Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 125/126] printk: prevent userland from spoofing kernel messages Luis Henriques
2015-12-09  9:38 ` [PATCH 3.16.y-ckt 126/126] FS-Cache: Handle a write to the page immediately beyond the EOF marker 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=1449653896-5236-71-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=fdmanana@suse.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®