Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9796ea8f authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 4.4.67 into android-4.4



Changes in 4.4.67:
	timerfd: Protect the might cancel mechanism proper
	Handle mismatched open calls
	ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
	ALSA: ppc/awacs: shut up maybe-uninitialized warning
	drbd: avoid redefinition of BITS_PER_PAGE
	mtd: avoid stack overflow in MTD CFI code
	net: tg3: avoid uninitialized variable warning
	scsi: cxlflash: Scan host only after the port is ready for I/O
	scsi: cxlflash: Fix to avoid EEH and host reset collisions
	scsi: cxlflash: Improve EEH recovery time
	8250_pci: Fix potential use-after-free in error path
	netlink: Allow direct reclaim for fallback allocation
	IB/qib: rename BITS_PER_PAGE to RVT_BITS_PER_PAGE
	IB/ehca: fix maybe-uninitialized warnings
	ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY
	ext4 crypto: revalidate dentry after adding or removing the key
	ext4 crypto: use dget_parent() in ext4_d_revalidate()
	ext4/fscrypto: avoid RCU lookup in d_revalidate
	nfsd4: minor NFSv2/v3 write decoding cleanup
	nfsd: stricter decoding of write-like NFSv2/v3 ops
	dm ioctl: prevent stack leak in dm ioctl call
	Linux 4.4.67

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents cc756e68 dec1dc2a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 66
SUBLEVEL = 67
EXTRAVERSION =
NAME = Blurry Fish Butt

+6 −0
Original line number Diff line number Diff line
@@ -479,8 +479,14 @@ void drbd_bm_cleanup(struct drbd_device *device)
 * this masks out the remaining bits.
 * Returns the number of bits cleared.
 */
#ifndef BITS_PER_PAGE
#define BITS_PER_PAGE		(1UL << (PAGE_SHIFT + 3))
#define BITS_PER_PAGE_MASK	(BITS_PER_PAGE - 1)
#else
# if BITS_PER_PAGE != (1UL << (PAGE_SHIFT + 3))
#  error "ambiguous BITS_PER_PAGE"
# endif
#endif
#define BITS_PER_LONG_MASK	(BITS_PER_LONG - 1)
static int bm_clear_surplus(struct drbd_bitmap *b)
{
+9 −9
Original line number Diff line number Diff line
@@ -41,13 +41,13 @@

#include "qib.h"

#define BITS_PER_PAGE           (PAGE_SIZE*BITS_PER_BYTE)
#define BITS_PER_PAGE_MASK      (BITS_PER_PAGE-1)
#define RVT_BITS_PER_PAGE           (PAGE_SIZE*BITS_PER_BYTE)
#define RVT_BITS_PER_PAGE_MASK      (RVT_BITS_PER_PAGE-1)

static inline unsigned mk_qpn(struct qib_qpn_table *qpt,
			      struct qpn_map *map, unsigned off)
{
	return (map - qpt->map) * BITS_PER_PAGE + off;
	return (map - qpt->map) * RVT_BITS_PER_PAGE + off;
}

static inline unsigned find_next_offset(struct qib_qpn_table *qpt,
@@ -59,7 +59,7 @@ static inline unsigned find_next_offset(struct qib_qpn_table *qpt,
		if (((off & qpt->mask) >> 1) >= n)
			off = (off | qpt->mask) + 2;
	} else
		off = find_next_zero_bit(map->page, BITS_PER_PAGE, off);
		off = find_next_zero_bit(map->page, RVT_BITS_PER_PAGE, off);
	return off;
}

@@ -147,8 +147,8 @@ static int alloc_qpn(struct qib_devdata *dd, struct qib_qpn_table *qpt,
		qpn = 2;
	if (qpt->mask && ((qpn & qpt->mask) >> 1) >= dd->n_krcv_queues)
		qpn = (qpn | qpt->mask) + 2;
	offset = qpn & BITS_PER_PAGE_MASK;
	map = &qpt->map[qpn / BITS_PER_PAGE];
	offset = qpn & RVT_BITS_PER_PAGE_MASK;
	map = &qpt->map[qpn / RVT_BITS_PER_PAGE];
	max_scan = qpt->nmaps - !offset;
	for (i = 0;;) {
		if (unlikely(!map->page)) {
@@ -173,7 +173,7 @@ static int alloc_qpn(struct qib_devdata *dd, struct qib_qpn_table *qpt,
			 * We just need to be sure we don't loop
			 * forever.
			 */
		} while (offset < BITS_PER_PAGE && qpn < QPN_MAX);
		} while (offset < RVT_BITS_PER_PAGE && qpn < QPN_MAX);
		/*
		 * In order to keep the number of pages allocated to a
		 * minimum, we scan the all existing pages before increasing
@@ -204,9 +204,9 @@ static void free_qpn(struct qib_qpn_table *qpt, u32 qpn)
{
	struct qpn_map *map;

	map = qpt->map + qpn / BITS_PER_PAGE;
	map = qpt->map + qpn / RVT_BITS_PER_PAGE;
	if (map->page)
		clear_bit(qpn & BITS_PER_PAGE_MASK, map->page);
		clear_bit(qpn & RVT_BITS_PER_PAGE_MASK, map->page);
}

static inline unsigned qpn_hash(struct qib_ibdev *dev, u32 qpn)
+1 −1
Original line number Diff line number Diff line
@@ -1843,7 +1843,7 @@ static int ctl_ioctl(uint command, struct dm_ioctl __user *user)
	if (r)
		goto out;

	param->data_size = sizeof(*param);
	param->data_size = offsetof(struct dm_ioctl, data);
	r = fn(param, input_param_size);

	if (unlikely(param->flags & DM_BUFFER_FULL_FLAG) &&
+1 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ config MTD_MAP_BANK_WIDTH_16

config MTD_MAP_BANK_WIDTH_32
	bool "Support 256-bit buswidth" if MTD_CFI_GEOMETRY
	select MTD_COMPLEX_MAPPINGS if HAS_IOMEM
	default n
	help
	  If you wish to support CFI devices on a physical bus which is
Loading