{"push_id":960803060,"size":134,"distinct_size":134,"ref":"refs/heads/precise","head":"d74f7056cb98561869202c95900121387598adda","before":"c6e992b244f2cd395c8616bdfd8fcd1b3a22b9ae","commits":[{"sha":"740a1baf1fe973ef7d1dc7d6a78b6b8fdbaba781","author":{"email":"4e624af203c18e164acadf5da06f2c9f36828cb4@canonical.com","name":"Luis Henriques"},"message":"UBUNTU: Start new release\n\nIgnore: yes\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/740a1baf1fe973ef7d1dc7d6a78b6b8fdbaba781"},{"sha":"8a2daf1a1f6b4c2e2821ea1523fb427c816d2bf8","author":{"email":"7469de9b95ba379e2656fa9677689657c47a7690@redhat.com","name":"Alex Williamson"},"message":"PCI: Fix devfn for VPD access through function 0\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 9d9240756e63dd87d6cbf5da8b98ceb8f8192b55 upstream.\n\nCommit 932c435caba8 (\"PCI: Add dev_flags bit to access VPD through function\n0\") passes PCI_SLOT(devfn) for the devfn parameter of pci_get_slot().\nGenerally this works because we're fairly well guaranteed that a PCIe\ndevice is at slot address 0, but for the general case, including\nconventional PCI, it's incorrect.  We need to get the slot and then convert\nit back into a devfn.\n\nFixes: 932c435caba8 (\"PCI: Add dev_flags bit to access VPD through function 0\")\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>\nSigned-off-by: Bjorn Helgaas <helgaas@kernel.org>\nAcked-by: Myron Stowe <myron.stowe@redhat.com>\nAcked-by: Mark Rustad <mark.d.rustad@intel.com>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/8a2daf1a1f6b4c2e2821ea1523fb427c816d2bf8"},{"sha":"472e8ed34b71668ce6efe936ec67a0e8b266f9eb","author":{"email":"7469de9b95ba379e2656fa9677689657c47a7690@redhat.com","name":"Alex Williamson"},"message":"PCI: Use function 0 VPD for identical functions, regular VPD for others\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit da2d03ea27f6ed9d2005a67b20dd021ddacf1e4d upstream.\n\n932c435caba8 (\"PCI: Add dev_flags bit to access VPD through function 0\")\nadded PCI_DEV_FLAGS_VPD_REF_F0.  Previously, we set the flag on every\nnon-zero function of quirked devices.  If a function turned out to be\ndifferent from function 0, i.e., it had a different class, vendor ID, or\ndevice ID, the flag remained set but we didn't make VPD accessible at all.\n\nFlip this around so we only set PCI_DEV_FLAGS_VPD_REF_F0 for functions that\nare identical to function 0, and allow regular VPD access for any other\nfunctions.\n\n[bhelgaas: changelog, stable tag]\nFixes: 932c435caba8 (\"PCI: Add dev_flags bit to access VPD through function 0\")\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>\nSigned-off-by: Bjorn Helgaas <helgaas@kernel.org>\nAcked-by: Myron Stowe <myron.stowe@redhat.com>\nAcked-by: Mark Rustad <mark.d.rustad@intel.com>\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/472e8ed34b71668ce6efe936ec67a0e8b266f9eb"},{"sha":"01a4e02f4955dc9b70bd4ad03a4ae6ac67ce0af3","author":{"email":"bff32994ff0f8d048f262a8388145a71b6071bfe@intel.com","name":"Johannes Berg"},"message":"mac80211: fix driver RSSI event calculations\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 8ec6d97871f37e4743678ea4a455bd59580aa0f4 upstream.\n\nThe ifmgd->ave_beacon_signal value cannot be taken as is for\ncomparisons, it must be divided by since it's represented\nlike that for better accuracy of the EWMA calculations. This\nwould lead to invalid driver RSSI events. Fix the used value.\n\nFixes: 615f7b9bb1f8 (\"mac80211: add driver RSSI threshold events\")\nSigned-off-by: Johannes Berg <johannes.berg@intel.com>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/01a4e02f4955dc9b70bd4ad03a4ae6ac67ce0af3"},{"sha":"410e49614fb56f2ad0f9ec8161d6b2091d53fba9","author":{"email":"3b7a1db6efedd40440bc6443bf377195011524e5@linuxfoundation.org","name":"Richard Purdie"},"message":"HID: core: Avoid uninitialized buffer access\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 79b568b9d0c7c5d81932f4486d50b38efdd6da6d upstream.\n\nhid_connect adds various strings to the buffer but they're all\nconditional. You can find circumstances where nothing would be written\nto it but the kernel will still print the supposedly empty buffer with\nprintk. This leads to corruption on the console/in the logs.\n\nEnsure buf is initialized to an empty string.\n\nSigned-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>\n[dvhart: Initialize string to \"\" rather than assign buf[0] = NULL;]\nCc: Jiri Kosina <jikos@kernel.org>\nCc: linux-input@vger.kernel.org\nSigned-off-by: Darren Hart <dvhart@linux.intel.com>\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/410e49614fb56f2ad0f9ec8161d6b2091d53fba9"},{"sha":"0b940f1f344d719159b48f424ca8952f715ca14d","author":{"email":"d484ff0dce8fd014bfe319bab334c357ca5afaee@gmail.com","name":"Valentin Rothberg"},"message":"wm831x_power: Use IRQF_ONESHOT to request threaded IRQs\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 90adf98d9530054b8e665ba5a928de4307231d84 upstream.\n\nSince commit 1c6c69525b40 (\"genirq: Reject bogus threaded irq requests\")\nthreaded IRQs without a primary handler need to be requested with\nIRQF_ONESHOT, otherwise the request will fail.\n\nscripts/coccinelle/misc/irqf_oneshot.cocci detected this issue.\n\nFixes: b5874f33bbaf (\"wm831x_power: Use genirq\")\nSigned-off-by: Valentin Rothberg <valentinrothberg@gmail.com>\nSigned-off-by: Sebastian Reichel <sre@kernel.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/0b940f1f344d719159b48f424ca8952f715ca14d"},{"sha":"d41b372a4334ad30e47b5440dfae6d17b637a0f2","author":{"email":"ff341aa343d564f9e53e9dcb6996be8c04859a66@oracle.com","name":"Dan Carpenter"},"message":"mwifiex: fix mwifiex_rdeeprom_read()\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 1f9c6e1bc1ba5f8a10fcd6e99d170954d7c6d382 upstream.\n\nThere were several bugs here.\n\n1)  The done label was in the wrong place so we didn't copy any\n    information out when there was no command given.\n\n2)  We were using PAGE_SIZE as the size of the buffer instead of\n    \"PAGE_SIZE - pos\".\n\n3)  snprintf() returns the number of characters that would have been\n    printed if there were enough space.  If there was not enough space\n    (and we had fixed the memory corruption bug #2) then it would result\n    in an information leak when we do simple_read_from_buffer().  I've\n    changed it to use scnprintf() instead.\n\nI also removed the initialization at the start of the function, because\nI thought it made the code a little more clear.\n\nFixes: 5e6e3a92b9a4 ('wireless: mwifiex: initial commit for Marvell mwifiex driver')\nSigned-off-by: Dan Carpenter <dan.carpenter@oracle.com>\nAcked-by: Amitkumar Karwar <akarwar@marvell.com>\nSigned-off-by: Kalle Valo <kvalo@codeaurora.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/d41b372a4334ad30e47b5440dfae6d17b637a0f2"},{"sha":"d111162749b0114f62231c28dee0e7f2f1065caf","author":{"email":"4e91513d4f418754031d3d36b3fc73980c40a38c@free-electrons.com","name":"Boris BREZILLON"},"message":"mtd: mtdpart: fix add_mtd_partitions error path\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit e5bae86797141e4a95e42d825f737cb36d7b8c37 upstream.\n\nIf we fail to allocate a partition structure in the middle of the partition\ncreation process, the already allocated partitions are never removed, which\nmeans they are still present in the partition list and their resources are\nnever freed.\n\nSigned-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>\nSigned-off-by: Brian Norris <computersforpeace@gmail.com>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/d111162749b0114f62231c28dee0e7f2f1065caf"},{"sha":"1bad14c58b961eda93fc39e5f0422edabaef15ee","author":{"email":"ff341aa343d564f9e53e9dcb6996be8c04859a66@oracle.com","name":"Dan Carpenter"},"message":"devres: fix a for loop bounds check\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 1f35d04a02a652f14566f875aef3a6f2af4cb77b upstream.\n\nThe iomap[] array has PCIM_IOMAP_MAX (6) elements and not\nDEVICE_COUNT_RESOURCE (16).  This bug was found using a static checker.\nIt may be that the \"if (!(mask & (1 << i)))\" check means we never\nactually go past the end of the array in real life.\n\nFixes: ec04b075843d ('iomap: implement pcim_iounmap_regions()')\nSigned-off-by: Dan Carpenter <dan.carpenter@oracle.com>\nAcked-by: Tejun Heo <tj@kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/1bad14c58b961eda93fc39e5f0422edabaef15ee"},{"sha":"bc87a6fbd3e48cbe498cab1568152dce88551514","author":{"email":"312c7d941f03386814be517ffdb3e0eb6624e275@google.com","name":"Eric Dumazet"},"message":"packet: fix match_fanout_group()\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 161642e24fee40fba2c5bc2ceacc00d118a22d65 upstream.\n\nRecent TCP listener patches exposed a prior af_packet bug :\nmatch_fanout_group() blindly assumes it is always safe\nto cast sk to a packet socket to compare fanout with af_packet_priv\n\nBut SYNACK packets can be sent while attached to request_sock, which\nare smaller than a \"struct sock\".\n\nWe can read non existent memory and crash.\n\nFixes: c0de08d04215 (\"af_packet: don't emit packet on orig fanout group\")\nFixes: ca6fb0651883 (\"tcp: attach SYNACK messages to request sockets instead of listener\")\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nCc: Willem de Bruijn <willemb@google.com>\nCc: Eric Leblond <eric@regit.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/bc87a6fbd3e48cbe498cab1568152dce88551514"},{"sha":"93ea55778393a2787174a07e3d1ad62d5f312b3a","author":{"email":"4f71970d0506cd4341522b2fa877abc3c9925755@jan-o-sch.net","name":"Jan Schmidt"},"message":"Btrfs: added helper btrfs_next_item()\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit c7d22a3c3cdb73d8a0151e2ccc8cf4a48c48310b upstream.\n\nbtrfs_next_item() makes the btrfs path point to the next item, crossing leaf\nboundaries if needed.\n\nSigned-off-by: Arne Jansen <sensille@gmx.net>\nSigned-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>\n[bwh: Dependency of the following fix]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/93ea55778393a2787174a07e3d1ad62d5f312b3a"},{"sha":"2095809884008632c017ce5da855ef67064947d3","author":{"email":"e0fcd583df77ec6c08e6d1257619cc1216ddc994@suse.com","name":"Filipe Manana"},"message":"Btrfs: fix file corruption and data loss after cloning inline extents\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 8039d87d9e473aeb740d4fdbd59b9d2f89b2ced9 upstream.\n\nCurrently the clone ioctl allows to clone an inline extent from one file\nto another that already has other (non-inlined) extents. This is a problem\nbecause btrfs is not designed to deal with files having inline and regular\nextents, if a file has an inline extent then it must be the only extent\nin the file and must start at file offset 0. Having a file with an inline\nextent followed by regular extents results in EIO errors when doing reads\nor writes against the first 4K of the file.\n\nAlso, the clone ioctl allows one to lose data if the source file consists\nof a single inline extent, with a size of N bytes, and the destination\nfile consists of a single inline extent with a size of M bytes, where we\nhave M > N. In this case the clone operation removes the inline extent\nfrom the destination file and then copies the inline extent from the\nsource file into the destination file - we lose the M - N bytes from the\ndestination file, a read operation will get the value 0x00 for any bytes\nin the the range [N, M] (the destination inode's i_size remained as M,\nthat's why we can read past N bytes).\n\nSo fix this by not allowing such destructive operations to happen and\nreturn errno EOPNOTSUPP to user space.\n\nCurrently the fstest btrfs/035 tests the data loss case but it totally\nignores this - i.e. expects the operation to succeed and does not check\nthe we got data loss.\n\nThe following test case for fstests exercises all these cases that result\nin file corruption and data loss:\n\n  seq=`basename $0`\n  seqres=$RESULT_DIR/$seq\n  echo \"QA output created by $seq\"\n  tmp=/tmp/$$\n  status=1\t# failure is the default!\n  trap \"_cleanup; exit \\$status\" 0 1 2 3 15\n\n  _cleanup()\n  {\n      rm -f $tmp.*\n  }\n\n  # get standard environment, filters and checks\n  . ./common/rc\n  . ./common/filter\n\n  # real QA test starts here\n  _need_to_be_root\n  _supported_fs btrfs\n  _supported_os Linux\n  _require_scratch\n  _require_cloner\n  _require_btrfs_fs_feature \"no_holes\"\n  _require_btrfs_mkfs_feature \"no-holes\"\n\n  rm -f $seqres.full\n\n  test_cloning_inline_extents()\n  {\n      local mkfs_opts=$1\n      local mount_opts=$2\n\n      _scratch_mkfs $mkfs_opts >>$seqres.full 2>&1\n      _scratch_mount $mount_opts\n\n      # File bar, the source for all the following clone operations, consists\n      # of a single inline extent (50 bytes).\n      $XFS_IO_PROG -f -c \"pwrite -S 0xbb 0 50\" $SCRATCH_MNT/bar \\\n          | _filter_xfs_io\n\n      # Test cloning into a file with an extent (non-inlined) where the\n      # destination offset overlaps that extent. It should not be possible to\n      # clone the inline extent from file bar into this file.\n      $XFS_IO_PROG -f -c \"pwrite -S 0xaa 0K 16K\" $SCRATCH_MNT/foo \\\n          | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo\n\n      # Doing IO against any range in the first 4K of the file should work.\n      # Due to a past clone ioctl bug which allowed cloning the inline extent,\n      # these operations resulted in EIO errors.\n      echo \"File foo data after clone operation:\"\n      # All bytes should have the value 0xaa (clone operation failed and did\n      # not modify our file).\n      od -t x1 $SCRATCH_MNT/foo\n      $XFS_IO_PROG -c \"pwrite -S 0xcc 0 100\" $SCRATCH_MNT/foo | _filter_xfs_io\n\n      # Test cloning the inline extent against a file which has a hole in its\n      # first 4K followed by a non-inlined extent. It should not be possible\n      # as well to clone the inline extent from file bar into this file.\n      $XFS_IO_PROG -f -c \"pwrite -S 0xdd 4K 12K\" $SCRATCH_MNT/foo2 \\\n          | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo2\n\n      # Doing IO against any range in the first 4K of the file should work.\n      # Due to a past clone ioctl bug which allowed cloning the inline extent,\n      # these operations resulted in EIO errors.\n      echo \"File foo2 data after clone operation:\"\n      # All bytes should have the value 0x00 (clone operation failed and did\n      # not modify our file).\n      od -t x1 $SCRATCH_MNT/foo2\n      $XFS_IO_PROG -c \"pwrite -S 0xee 0 90\" $SCRATCH_MNT/foo2 | _filter_xfs_io\n\n      # Test cloning the inline extent against a file which has a size of zero\n      # but has a prealloc extent. It should not be possible as well to clone\n      # the inline extent from file bar into this file.\n      $XFS_IO_PROG -f -c \"falloc -k 0 1M\" $SCRATCH_MNT/foo3 | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo3\n\n      # Doing IO against any range in the first 4K of the file should work.\n      # Due to a past clone ioctl bug which allowed cloning the inline extent,\n      # these operations resulted in EIO errors.\n      echo \"First 50 bytes of foo3 after clone operation:\"\n      # Should not be able to read any bytes, file has 0 bytes i_size (the\n      # clone operation failed and did not modify our file).\n      od -t x1 $SCRATCH_MNT/foo3\n      $XFS_IO_PROG -c \"pwrite -S 0xff 0 90\" $SCRATCH_MNT/foo3 | _filter_xfs_io\n\n      # Test cloning the inline extent against a file which consists of a\n      # single inline extent that has a size not greater than the size of\n      # bar's inline extent (40 < 50).\n      # It should be possible to do the extent cloning from bar to this file.\n      $XFS_IO_PROG -f -c \"pwrite -S 0x01 0 40\" $SCRATCH_MNT/foo4 \\\n          | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo4\n\n      # Doing IO against any range in the first 4K of the file should work.\n      echo \"File foo4 data after clone operation:\"\n      # Must match file bar's content.\n      od -t x1 $SCRATCH_MNT/foo4\n      $XFS_IO_PROG -c \"pwrite -S 0x02 0 90\" $SCRATCH_MNT/foo4 | _filter_xfs_io\n\n      # Test cloning the inline extent against a file which consists of a\n      # single inline extent that has a size greater than the size of bar's\n      # inline extent (60 > 50).\n      # It should not be possible to clone the inline extent from file bar\n      # into this file.\n      $XFS_IO_PROG -f -c \"pwrite -S 0x03 0 60\" $SCRATCH_MNT/foo5 \\\n          | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo5\n\n      # Reading the file should not fail.\n      echo \"File foo5 data after clone operation:\"\n      # Must have a size of 60 bytes, with all bytes having a value of 0x03\n      # (the clone operation failed and did not modify our file).\n      od -t x1 $SCRATCH_MNT/foo5\n\n      # Test cloning the inline extent against a file which has no extents but\n      # has a size greater than bar's inline extent (16K > 50).\n      # It should not be possible to clone the inline extent from file bar\n      # into this file.\n      $XFS_IO_PROG -f -c \"truncate 16K\" $SCRATCH_MNT/foo6 | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo6\n\n      # Reading the file should not fail.\n      echo \"File foo6 data after clone operation:\"\n      # Must have a size of 16K, with all bytes having a value of 0x00 (the\n      # clone operation failed and did not modify our file).\n      od -t x1 $SCRATCH_MNT/foo6\n\n      # Test cloning the inline extent against a file which has no extents but\n      # has a size not greater than bar's inline extent (30 < 50).\n      # It should be possible to clone the inline extent from file bar into\n      # this file.\n      $XFS_IO_PROG -f -c \"truncate 30\" $SCRATCH_MNT/foo7 | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo7\n\n      # Reading the file should not fail.\n      echo \"File foo7 data after clone operation:\"\n      # Must have a size of 50 bytes, with all bytes having a value of 0xbb.\n      od -t x1 $SCRATCH_MNT/foo7\n\n      # Test cloning the inline extent against a file which has a size not\n      # greater than the size of bar's inline extent (20 < 50) but has\n      # a prealloc extent that goes beyond the file's size. It should not be\n      # possible to clone the inline extent from bar into this file.\n      $XFS_IO_PROG -f -c \"falloc -k 0 1M\" \\\n                      -c \"pwrite -S 0x88 0 20\" \\\n                      $SCRATCH_MNT/foo8 | _filter_xfs_io\n      $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/bar $SCRATCH_MNT/foo8\n\n      echo \"File foo8 data after clone operation:\"\n      # Must have a size of 20 bytes, with all bytes having a value of 0x88\n      # (the clone operation did not modify our file).\n      od -t x1 $SCRATCH_MNT/foo8\n\n      _scratch_unmount\n  }\n\n  echo -e \"\\nTesting without compression and without the no-holes feature...\\n\"\n  test_cloning_inline_extents\n\n  echo -e \"\\nTesting with compression and without the no-holes feature...\\n\"\n  test_cloning_inline_extents \"\" \"-o compress\"\n\n  echo -e \"\\nTesting without compression and with the no-holes feature...\\n\"\n  test_cloning_inline_extents \"-O no-holes\" \"\"\n\n  echo -e \"\\nTesting with compression and with the no-holes feature...\\n\"\n  test_cloning_inline_extents \"-O no-holes\" \"-o compress\"\n\n  status=0\n  exit\n\nSigned-off-by: Filipe Manana <fdmanana@suse.com>\n[bwh: Backported to 3.2:\n - Adjust parameters to btrfs_drop_extents()\n - Drop use of ASSERT()\n - Keep using BUG_ON() for other error cases, as there is no\n   btrfs_abort_transaction()\n - Adjust context]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/2095809884008632c017ce5da855ef67064947d3"},{"sha":"1468a5b90cea0af8587c7d281b3970cf82e9fb95","author":{"email":"b460d66aaf00c296a3db1c1d9eeafc081d5f7d70@intel.com","name":"David Woodhouse"},"message":"iommu/vt-d: Fix ATSR handling for Root-Complex integrated endpoints\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit d14053b3c714178525f22660e6aaf41263d00056 upstream.\n\nThe VT-d specification says that \"Software must enable ATS on endpoint\ndevices behind a Root Port only if the Root Port is reported as\nsupporting ATS transactions.\"\n\nWe walk up the tree to find a Root Port, but for integrated devices we\ndon't find one — we get to the host bridge. In that case we *should*\nallow ATS. Currently we don't, which means that we are incorrectly\nfailing to use ATS for the integrated graphics. Fix that.\n\nWe should never break out of this loop \"naturally\" with bus==NULL,\nsince we'll always find bridge==NULL in that case (and now return 1).\n\nSo remove the check for (!bridge) after the loop, since it can never\nhappen. If it did, it would be worthy of a BUG_ON(!bridge). But since\nit'll oops anyway in that case, that'll do just as well.\n\nSigned-off-by: David Woodhouse <David.Woodhouse@intel.com>\n[bwh: Backported to 3.2:\n - Adjust context\n - There's no (!bridge) check to remove]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/1468a5b90cea0af8587c7d281b3970cf82e9fb95"},{"sha":"541ef33f2047efd2406642cd4bde6bcea53b29e2","author":{"email":"f2c659f01951776204a6c5b902787d9019fbeebd@arndb.de","name":"Arnd Bergmann"},"message":"ARM: pxa: remove incorrect __init annotation on pxa27x_set_pwrmode\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 54c09889bff6d99c8733eed4a26c9391b177c88b upstream.\n\nThe z2 machine calls pxa27x_set_pwrmode() in order to power off\nthe machine, but this function gets discarded early at boot because\nit is marked __init, as pointed out by kbuild:\n\nWARNING: vmlinux.o(.text+0x145c4): Section mismatch in reference from the function z2_power_off() to the function .init.text:pxa27x_set_pwrmode()\nThe function z2_power_off() references\nthe function __init pxa27x_set_pwrmode().\nThis is often because z2_power_off lacks a __init\nannotation or the annotation of pxa27x_set_pwrmode is wrong.\n\nThis removes the __init section modifier to fix rebooting and the\nbuild error.\n\nSigned-off-by: Arnd Bergmann <arnd@arndb.de>\nFixes: ba4a90a6d86a (\"ARM: pxa/z2: fix building error of pxa27x_cpu_suspend() no longer available\")\nSigned-off-by: Robert Jarzmik <robert.jarzmik@free.fr>\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/541ef33f2047efd2406642cd4bde6bcea53b29e2"},{"sha":"5905051a1e62baa6314835bcec5c183a8faffd4d","author":{"email":"e2e8c5702d8ed5f565988a1cf5bb35c9ce199e5e@fb.com","name":"Chris Mason"},"message":"Btrfs: don't use ram_bytes for uncompressed inline items\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 514ac8ad8793a097c0c9d89202c642479d6dfa34 upstream.\n\nIf we truncate an uncompressed inline item, ram_bytes isn't updated to reflect\nthe new size.  The fixe uses the size directly from the item header when\nreading uncompressed inlines, and also fixes truncate to update the\nsize as it goes.\n\nReported-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: Chris Mason <clm@fb.com>\n[bwh: Backported to 3.2:\n - Don't use btrfs_map_token API\n - There are fewer callers of btrfs_file_extent_inline_len() to change\n - Adjust context]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/5905051a1e62baa6314835bcec5c183a8faffd4d"},{"sha":"55d647d97b593290612943a3699252edb254931d","author":{"email":"e0fcd583df77ec6c08e6d1257619cc1216ddc994@suse.com","name":"Filipe Manana"},"message":"Btrfs: fix truncation of compressed and inlined extents\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 0305cd5f7fca85dae392b9ba85b116896eb7c1c7 upstream.\n\nWhen truncating a file to a smaller size which consists of an inline\nextent that is compressed, we did not discard (or made unusable) the\ndata between the new file size and the old file size, wasting metadata\nspace and allowing for the truncated data to be leaked and the data\ncorruption/loss mentioned below.\nWe were also not correctly decrementing the number of bytes used by the\ninode, we were setting it to zero, giving a wrong report for callers of\nthe stat(2) syscall. The fsck tool also reported an error about a mismatch\nbetween the nbytes of the file versus the real space used by the file.\n\nNow because we weren't discarding the truncated region of the file, it\nwas possible for a caller of the clone ioctl to actually read the data\nthat was truncated, allowing for a security breach without requiring root\naccess to the system, using only standard filesystem operations. The\nscenario is the following:\n\n   1) User A creates a file which consists of an inline and compressed\n      extent with a size of 2000 bytes - the file is not accessible to\n      any other users (no read, write or execution permission for anyone\n      else);\n\n   2) The user truncates the file to a size of 1000 bytes;\n\n   3) User A makes the file world readable;\n\n   4) User B creates a file consisting of an inline extent of 2000 bytes;\n\n   5) User B issues a clone operation from user A's file into its own\n      file (using a length argument of 0, clone the whole range);\n\n   6) User B now gets to see the 1000 bytes that user A truncated from\n      its file before it made its file world readbale. User B also lost\n      the bytes in the range [1000, 2000[ bytes from its own file, but\n      that might be ok if his/her intention was reading stale data from\n      user A that was never supposed to be public.\n\nNote that this contrasts with the case where we truncate a file from 2000\nbytes to 1000 bytes and then truncate it back from 1000 to 2000 bytes. In\nthis case reading any byte from the range [1000, 2000[ will return a value\nof 0x00, instead of the original data.\n\nThis problem exists since the clone ioctl was added and happens both with\nand without my recent data loss and file corruption fixes for the clone\nioctl (patch \"Btrfs: fix file corruption and data loss after cloning\ninline extents\").\n\nSo fix this by truncating the compressed inline extents as we do for the\nnon-compressed case, which involves decompressing, if the data isn't already\nin the page cache, compressing the truncated version of the extent, writing\nthe compressed content into the inline extent and then truncate it.\n\nThe following test case for fstests reproduces the problem. In order for\nthe test to pass both this fix and my previous fix for the clone ioctl\nthat forbids cloning a smaller inline extent into a larger one,\nwhich is titled \"Btrfs: fix file corruption and data loss after cloning\ninline extents\", are needed. Without that other fix the test fails in a\ndifferent way that does not leak the truncated data, instead part of\ndestination file gets replaced with zeroes (because the destination file\nhas a larger inline extent than the source).\n\n  seq=`basename $0`\n  seqres=$RESULT_DIR/$seq\n  echo \"QA output created by $seq\"\n  tmp=/tmp/$$\n  status=1\t# failure is the default!\n  trap \"_cleanup; exit \\$status\" 0 1 2 3 15\n\n  _cleanup()\n  {\n      rm -f $tmp.*\n  }\n\n  # get standard environment, filters and checks\n  . ./common/rc\n  . ./common/filter\n\n  # real QA test starts here\n  _need_to_be_root\n  _supported_fs btrfs\n  _supported_os Linux\n  _require_scratch\n  _require_cloner\n\n  rm -f $seqres.full\n\n  _scratch_mkfs >>$seqres.full 2>&1\n  _scratch_mount \"-o compress\"\n\n  # Create our test files. File foo is going to be the source of a clone operation\n  # and consists of a single inline extent with an uncompressed size of 512 bytes,\n  # while file bar consists of a single inline extent with an uncompressed size of\n  # 256 bytes. For our test's purpose, it's important that file bar has an inline\n  # extent with a size smaller than foo's inline extent.\n  $XFS_IO_PROG -f -c \"pwrite -S 0xa1 0 128\"   \\\n          -c \"pwrite -S 0x2a 128 384\" \\\n          $SCRATCH_MNT/foo | _filter_xfs_io\n  $XFS_IO_PROG -f -c \"pwrite -S 0xbb 0 256\" $SCRATCH_MNT/bar | _filter_xfs_io\n\n  # Now durably persist all metadata and data. We do this to make sure that we get\n  # on disk an inline extent with a size of 512 bytes for file foo.\n  sync\n\n  # Now truncate our file foo to a smaller size. Because it consists of a\n  # compressed and inline extent, btrfs did not shrink the inline extent to the\n  # new size (if the extent was not compressed, btrfs would shrink it to 128\n  # bytes), it only updates the inode's i_size to 128 bytes.\n  $XFS_IO_PROG -c \"truncate 128\" $SCRATCH_MNT/foo\n\n  # Now clone foo's inline extent into bar.\n  # This clone operation should fail with errno EOPNOTSUPP because the source\n  # file consists only of an inline extent and the file's size is smaller than\n  # the inline extent of the destination (128 bytes < 256 bytes). However the\n  # clone ioctl was not prepared to deal with a file that has a size smaller\n  # than the size of its inline extent (something that happens only for compressed\n  # inline extents), resulting in copying the full inline extent from the source\n  # file into the destination file.\n  #\n  # Note that btrfs' clone operation for inline extents consists of removing the\n  # inline extent from the destination inode and copy the inline extent from the\n  # source inode into the destination inode, meaning that if the destination\n  # inode's inline extent is larger (N bytes) than the source inode's inline\n  # extent (M bytes), some bytes (N - M bytes) will be lost from the destination\n  # file. Btrfs could copy the source inline extent's data into the destination's\n  # inline extent so that we would not lose any data, but that's currently not\n  # done due to the complexity that would be needed to deal with such cases\n  # (specially when one or both extents are compressed), returning EOPNOTSUPP, as\n  # it's normally not a very common case to clone very small files (only case\n  # where we get inline extents) and copying inline extents does not save any\n  # space (unlike for normal, non-inlined extents).\n  $CLONER_PROG -s 0 -d 0 -l 0 $SCRATCH_MNT/foo $SCRATCH_MNT/bar\n\n  # Now because the above clone operation used to succeed, and due to foo's inline\n  # extent not being shinked by the truncate operation, our file bar got the whole\n  # inline extent copied from foo, making us lose the last 128 bytes from bar\n  # which got replaced by the bytes in range [128, 256[ from foo before foo was\n  # truncated - in other words, data loss from bar and being able to read old and\n  # stale data from foo that should not be possible to read anymore through normal\n  # filesystem operations. Contrast with the case where we truncate a file from a\n  # size N to a smaller size M, truncate it back to size N and then read the range\n  # [M, N[, we should always get the value 0x00 for all the bytes in that range.\n\n  # We expected the clone operation to fail with errno EOPNOTSUPP and therefore\n  # not modify our file's bar data/metadata. So its content should be 256 bytes\n  # long with all bytes having the value 0xbb.\n  #\n  # Without the btrfs bug fix, the clone operation succeeded and resulted in\n  # leaking truncated data from foo, the bytes that belonged to its range\n  # [128, 256[, and losing data from bar in that same range. So reading the\n  # file gave us the following content:\n  #\n  # 0000000 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1\n  # *\n  # 0000200 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a\n  # *\n  # 0000400\n  echo \"File bar's content after the clone operation:\"\n  od -t x1 $SCRATCH_MNT/bar\n\n  # Also because the foo's inline extent was not shrunk by the truncate\n  # operation, btrfs' fsck, which is run by the fstests framework everytime a\n  # test completes, failed reporting the following error:\n  #\n  #  root 5 inode 257 errors 400, nbytes wrong\n\n  status=0\n  exit\n\nSigned-off-by: Filipe Manana <fdmanana@suse.com>\n[bwh: Backported to 3.2:\n - Adjust parameters to btrfs_truncate_page() and btrfs_truncate_item()\n - Pass transaction pointer into truncate_inline_extent()\n - Add prototype of btrfs_truncate_page()\n - s/test_bit(BTRFS_ROOT_REF_COWS, &root->state)/root->ref_cows/\n - Keep using BUG_ON() for other error cases, as there is no\n   btrfs_abort_transaction()\n - Adjust context]\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/55d647d97b593290612943a3699252edb254931d"},{"sha":"94828c4f36ea4bb31c6051cccaebcdf524ce2247","author":{"email":"068897f4e35cdd1b08552b22a756bada73f5ea54@samsung.com","name":"Daeho Jeong"},"message":"ext4, jbd2: ensure entering into panic after recording an error in superblock\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 4327ba52afd03fc4b5afa0ee1d774c9c5b0e85c5 upstream.\n\nIf a EXT4 filesystem utilizes JBD2 journaling and an error occurs, the\njournaling will be aborted first and the error number will be recorded\ninto JBD2 superblock and, finally, the system will enter into the\npanic state in \"errors=panic\" option.  But, in the rare case, this\nsequence is little twisted like the below figure and it will happen\nthat the system enters into panic state, which means the system reset\nin mobile environment, before completion of recording an error in the\njournal superblock. In this case, e2fsck cannot recognize that the\nfilesystem failure occurred in the previous run and the corruption\nwouldn't be fixed.\n\nTask A                        Task B\next4_handle_error()\n-> jbd2_journal_abort()\n  -> __journal_abort_soft()\n    -> __jbd2_journal_abort_hard()\n    | -> journal->j_flags |= JBD2_ABORT;\n    |\n    |                         __ext4_abort()\n    |                         -> jbd2_journal_abort()\n    |                         | -> __journal_abort_soft()\n    |                         |   -> if (journal->j_flags & JBD2_ABORT)\n    |                         |           return;\n    |                         -> panic()\n    |\n    -> jbd2_journal_update_sb_errno()\n\nTested-by: Hobin Woo <hobin.woo@samsung.com>\nSigned-off-by: Daeho Jeong <daeho.jeong@samsung.com>\nSigned-off-by: Theodore Ts'o <tytso@mit.edu>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/94828c4f36ea4bb31c6051cccaebcdf524ce2247"},{"sha":"6ead522373c2fe3c73f292162b0cea258b760b31","author":{"email":"0d9d62b6946df53600b61f071e2018034c546d7b@gmail.com","name":"Dmitry Tunin"},"message":"Bluetooth: ath3k: Add new AR3012 0930:021c id\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit cd355ff071cd37e7197eccf9216770b2b29369f7 upstream.\n\nThis adapter works with the existing linux-firmware.\n\nT:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  3 Spd=12  MxCh= 0\nD:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1\nP:  Vendor=0930 ProdID=021c Rev=00.01\nC:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA\nI:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb\nI:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb\n\nBugLink: https://bugs.launchpad.net/bugs/1502781\n\nSigned-off-by: Dmitry Tunin <hanipouspilot@gmail.com>\nSigned-off-by: Marcel Holtmann <marcel@holtmann.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/6ead522373c2fe3c73f292162b0cea258b760b31"},{"sha":"213681fda8e478479ee964ab89ed653ed780ace4","author":{"email":"0d9d62b6946df53600b61f071e2018034c546d7b@gmail.com","name":"Dmitry Tunin"},"message":"Bluetooth: ath3k: Add support of AR3012 0cf3:817b device\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 18e0afab8ce3f1230ce3fef52b2e73374fd9c0e7 upstream.\n\nT: Bus=04 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0\nD: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1\nP: Vendor=0cf3 ProdID=817b Rev=00.02\nC: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA\nI: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb\nI: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb\n\nBugLink: https://bugs.launchpad.net/bugs/1506615\n\nSigned-off-by: Dmitry Tunin <hanipouspilot@gmail.com>\nSigned-off-by: Marcel Holtmann <marcel@holtmann.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/213681fda8e478479ee964ab89ed653ed780ace4"},{"sha":"ade9ac6509a77c3ab6aee2ee2e6af8ad3ec05482","author":{"email":"ed0f1d78b8c21b2970494a178da4bdfa8beba2a7@lwfinger.net","name":"Larry Finger"},"message":"staging: rtl8712: Add device ID for Sitecom WLA2100\n\nBugLink: http://bugs.launchpad.net/bugs/1524292\n\ncommit 1e6e63283691a2a9048a35d9c6c59cf0abd342e4 upstream.\n\nThis adds the USB ID for the Sitecom WLA2100. The Windows 10 inf file\nwas checked to verify that the addition is correct.\n\nReported-by: Frans van de Wiel <fvdw@fvdw.eu>\nSigned-off-by: Larry Finger <Larry.Finger@lwfinger.net>\nCc: Frans van de Wiel <fvdw@fvdw.eu>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Ben Hutchings <ben@decadent.org.uk>\nSigned-off-by: Luis Henriques <luis.henriques@canonical.com>","distinct":true,"url":"https://api.github.com/repos/mschlaeffer/ubuntu-kernel-with-tuxonice/commits/ade9ac6509a77c3ab6aee2ee2e6af8ad3ec05482"}]}