Update to 3.10.7

svn path=/dists/sid/linux/; revision=20496
This commit is contained in:
Ben Hutchings 2013-08-15 17:39:48 +00:00
parent cc3748ad46
commit 751bd8474e
6 changed files with 65 additions and 216 deletions

66
debian/changelog vendored
View File

@ -1,4 +1,68 @@
linux (3.10.5-2) UNRELEASED; urgency=low
linux (3.10.7-1) UNRELEASED; urgency=low
* New upstream stable update:
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.6
- [arm] Modify vectors page to defend against ROP buffer overflow attacks
- [armel] 7790/1: Fix deferred mm switch on VIVT processors
- [armel] 7791/1: a.out: remove partial a.out support
- [powerpc] VPHN topology change updates all siblings
- hwmon: (max6697) fix MAX6581 ideality
- USB: mos7840: fix race in register handling
- USB: mos7840: fix race in led handling
- mac80211: fix duplicate retransmission detection
- mac80211: fix ethtool stats for non-station interfaces
- ixgbe: Fix Tx Hang issue with lldpad on 82598EB
- Bluetooth: ath3k: don't use stack memory for DMA
- Bluetooth: fix wrong use of PTR_ERR() in btusb
- svcrpc: fix gss-proxy xdr decoding oops
- svcrpc: fix gss_rpc_upcall create error
- svcrpc: fix kfree oops in gss-proxy code
- zram: avoid invalid memory access in zram_exit()
- zram: use zram->lock to protect zram_free_page() in swap free notify path
- zram: avoid double free in function zram_bvec_write()
- zram: avoid access beyond the zram device
- zram: protect sysfs handler from invalid memory access
- Revert "cpuidle: Quickly notice prediction failure in general case"
- cpufreq: Fix cpufreq driver module refcount balance after suspend/resume
- Revert "cpuidle: Quickly notice prediction failure for repeat mode"
- drm/radeon: Disable dma rings for bo moves on r6xx
- xen-blkfront: use a different scatterlist for each request
- drm/radeon: never unpin UVD bo v3
- Btrfs: fix crash regarding to ulist_add_merge
- [s390] bitops: fix find_next_bit_left
- ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup
- usbnet: do not pretend to support SG/TSO
- net_sched: Fix stack info leak in cbq_dump_wrr().
- af_key: more info leaks in pfkey messages
- net_sched: info leak in atm_tc_dump_class()
- 8139cp: Add dma_mapping_error checking
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.7
- [powerpc] Save the TAR register earlier
- [powerpc] tm: Fix context switching TAR, PPR and DSCR SPRs
- ext4: make sure group number is bumped after a inode allocation race
- regmap: cache: Make sure to sync the last register in a block
- hwmon: (adt7470) Fix incorrect return code check
- media: em28xx: fix assignment of the eeprom data
- ACPI / PM: Walk physical_node_list under physical_node_lock
- ALSA: 6fire: fix DMA issues with URB transfer_buffer usage
- Btrfs: release both paths before logging dir/changed extents
- LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs
- SUNRPC: Don't auto-disconnect from the local rpcbind socket
- SUNRPC: If the rpcbind channel is disconnected, fail the call to
unregister
- virtio/console: Quit from splice_write if pipe->nrbufs is 0
- virtio/console: Add pipe_lock/unlock for splice_write
- virtio: console: fix race with port unplug and open/close
- virtio: console: fix race in port_fops_open() and port unplug
- virtio: console: clean up port data immediately at time of unplug
- virtio: console: fix raising SIGIO after port unplug
- virtio: console: return -ENODEV on all read operations after unplug
- drm/radeon: stop sending invalid UVD destroy msg
- ext4: flush the extent status cache during EXT4_IOC_SWAP_BOOT
- cifs: extend the buffer length enought for sprintf() using
- zram: allow request end to coincide with disksize
- reiserfs: fix deadlock in umount
- [x86] drm/i915: initialize gt_lock early with other spin locks
[ Ben Hutchings ]
* [x86] Enable ASUS_OLED as module (Closes: #680016)

View File

@ -1,33 +0,0 @@
From: "Martin K. Petersen" <martin.petersen@oracle.com>
Date: Tue, 30 Jul 2013 22:58:34 -0400
Subject: [SCSI] Don't attempt to send extended INQUIRY command if
skip_vpd_pages is set
Origin: https://git.kernel.org/cgit/linux/kernel/git/jejb/scsi.git/commit?id=7562523e84ddc742fe1f9db8bd76b01acca89f6b
Bug-Debian: http://bugs.debian.org/719002
If a device has the skip_vpd_pages flag set we should simply fail the
scsi_get_vpd_page() call.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Stuart Foster <smf.linux@ntlworld.com>
Cc: stable@vger.kernel.org
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
---
drivers/scsi/scsi.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 3b1ea34..eaa808e 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -1031,6 +1031,9 @@ int scsi_get_vpd_page(struct scsi_device *sdev, u8 page, unsigned char *buf,
{
int i, result;
+ if (sdev->skip_vpd_pages)
+ goto fail;
+
/* Ask for all the pages supported by this device */
result = scsi_vpd_inquiry(sdev, buf, 0, buf_len);
if (result)

View File

@ -1,131 +0,0 @@
From: Eric Dumazet <edumazet@google.com>
Date: Mon, 29 Jul 2013 10:24:04 -0700
Subject: atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
Origin: https://git.kernel.org/linus/7b70176421993866e616f1cbc4d0dd4054f1bf78
On Mon, 2013-07-29 at 08:30 -0700, Eric Dumazet wrote:
> On Mon, 2013-07-29 at 13:09 +0100, Luis Henriques wrote:
>
> >
> > I confirm that I can't reproduce the issue using this patch.
> >
>
> Thanks, I'll send a polished patch, as this one had an error if
> build_skb() returns NULL (in case sk_buff allocation fails)
Please try the following patch : It should use 2K frags instead of 4K
for normal 1500 mtu
Thanks !
[PATCH] atl1c: use custom skb allocator
We had reports ( https://bugzilla.kernel.org/show_bug.cgi?id=54021 )
that using high order pages for skb allocations is problematic for atl1c
We do not know exactly what the problem is, but we suspect that crossing
4K pages is not well supported by this hardware.
Use a custom allocator, using page allocator and 2K fragments for
optimal stack behavior. We might make this allocator generic
in future kernels.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Luis Henriques <luis.henriques@canonical.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/ethernet/atheros/atl1c/atl1c.h | 3 ++
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 40 ++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c.h b/drivers/net/ethernet/atheros/atl1c/atl1c.h
index b2bf324..0f05565 100644
--- a/drivers/net/ethernet/atheros/atl1c/atl1c.h
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c.h
@@ -520,6 +520,9 @@ struct atl1c_adapter {
struct net_device *netdev;
struct pci_dev *pdev;
struct napi_struct napi;
+ struct page *rx_page;
+ unsigned int rx_page_offset;
+ unsigned int rx_frag_size;
struct atl1c_hw hw;
struct atl1c_hw_stats hw_stats;
struct mii_if_info mii; /* MII interface info */
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
index 786a874..a36a760 100644
--- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
@@ -481,10 +481,15 @@ static int atl1c_set_mac_addr(struct net_device *netdev, void *p)
static void atl1c_set_rxbufsize(struct atl1c_adapter *adapter,
struct net_device *dev)
{
+ unsigned int head_size;
int mtu = dev->mtu;
adapter->rx_buffer_len = mtu > AT_RX_BUF_SIZE ?
roundup(mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN, 8) : AT_RX_BUF_SIZE;
+
+ head_size = SKB_DATA_ALIGN(adapter->rx_buffer_len + NET_SKB_PAD) +
+ SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
+ adapter->rx_frag_size = roundup_pow_of_two(head_size);
}
static netdev_features_t atl1c_fix_features(struct net_device *netdev,
@@ -952,6 +957,10 @@ static void atl1c_free_ring_resources(struct atl1c_adapter *adapter)
kfree(adapter->tpd_ring[0].buffer_info);
adapter->tpd_ring[0].buffer_info = NULL;
}
+ if (adapter->rx_page) {
+ put_page(adapter->rx_page);
+ adapter->rx_page = NULL;
+ }
}
/**
@@ -1639,6 +1648,35 @@ static inline void atl1c_rx_checksum(struct atl1c_adapter *adapter,
skb_checksum_none_assert(skb);
}
+static struct sk_buff *atl1c_alloc_skb(struct atl1c_adapter *adapter)
+{
+ struct sk_buff *skb;
+ struct page *page;
+
+ if (adapter->rx_frag_size > PAGE_SIZE)
+ return netdev_alloc_skb(adapter->netdev,
+ adapter->rx_buffer_len);
+
+ page = adapter->rx_page;
+ if (!page) {
+ adapter->rx_page = page = alloc_page(GFP_ATOMIC);
+ if (unlikely(!page))
+ return NULL;
+ adapter->rx_page_offset = 0;
+ }
+
+ skb = build_skb(page_address(page) + adapter->rx_page_offset,
+ adapter->rx_frag_size);
+ if (likely(skb)) {
+ adapter->rx_page_offset += adapter->rx_frag_size;
+ if (adapter->rx_page_offset >= PAGE_SIZE)
+ adapter->rx_page = NULL;
+ else
+ get_page(page);
+ }
+ return skb;
+}
+
static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter)
{
struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring;
@@ -1660,7 +1698,7 @@ static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter)
while (next_info->flags & ATL1C_BUFFER_FREE) {
rfd_desc = ATL1C_RFD_DESC(rfd_ring, rfd_next_to_use);
- skb = netdev_alloc_skb(adapter->netdev, adapter->rx_buffer_len);
+ skb = atl1c_alloc_skb(adapter);
if (unlikely(!skb)) {
if (netif_msg_rx_err(adapter))
dev_warn(&pdev->dev, "alloc rx buffer failed\n");

View File

@ -1,21 +0,0 @@
From: Theodore Ts'o <tytso@mit.edu>
Date: Mon, 29 Jul 2013 16:12:56 +0000
Subject: ext4: fix retry handling in ext4_ext_truncate()
Origin: https://git.kernel.org/cgit/linux/kernel/git/tytso/ext4.git/commit/?id=94eec0fc3520c759831763d866421b4d60b599b4
We tested for ENOMEM instead of -ENOMEM. Oops.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@vger.kernel.org
---
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4389,7 +4389,7 @@ void ext4_ext_truncate(handle_t *handle,
retry:
err = ext4_es_remove_extent(inode, last_block,
EXT_MAX_BLOCKS - last_block);
- if (err == ENOMEM) {
+ if (err == -ENOMEM) {
cond_resched();
congestion_wait(BLK_RW_ASYNC, HZ/50);
goto retry;

View File

@ -1,26 +0,0 @@
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Wed, 19 Jun 2013 10:05:29 +1000
Subject: fanotify: info leak in copy_event_to_user()
Origin: http://www.ozlabs.org/~akpm/mmotm/broken-out/fanotify-info-leak-in-copy_event_to_user.patch
The ->reserverd field isn't cleared so we leak one byte of stack
information to userspace.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/notify/fanotify/fanotify_user.c | 1 +
1 file changed, 1 insertion(+)
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -121,6 +121,7 @@ static int fill_event_metadata(struct fs
metadata->event_len = FAN_EVENT_METADATA_LEN;
metadata->metadata_len = FAN_EVENT_METADATA_LEN;
metadata->vers = FANOTIFY_METADATA_VERSION;
+ metadata->reserved = 0;
metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
metadata->pid = pid_vnr(event->tgid);
if (unlikely(event->mask & FAN_Q_OVERFLOW))

View File

@ -70,7 +70,6 @@ bugfix/all/ath6kl-do-not-use-virt_addr_valid.patch
features/all/cpu-devices/Partially-revert-cpufreq-Add-support-for-x86-cpuinfo.patch
bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
bugfix/all/fanotify-info-leak-in-copy_event_to_user.patch
# ARM hardware support
features/arm/ARM-dts-imx-add-imx5x-usbmisc-entries.patch
@ -111,9 +110,6 @@ features/all/iwlwifi-bump-required-firmware-API-version-for-3160-.patch
bugfix/m68k/ethernat-kconfig.patch
bugfix/all/nl80211-fix-another-nl80211_fam-attrbuf-race.patch
bugfix/all/ext4-fix-retry-handling-in-ext4_ext_truncate.patch
bugfix/all/atl1c-Fix-misuse-of-netdev_alloc_skb-in-refilling-rx.patch
bugfix/all/SCSI-Don-t-attempt-to-send-extended-INQUIRY-command-.patch
# m68k IRQ bugfix
bugfix/m68k/atari-irqs.patch