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

Commit 11512ed5 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 3.18.26 into android-3.18



Changes in 3.18.26:
	gre6: allow to update all parameters via rtnl
	atl1c: Improve driver not to do order 4 GFP_ATOMIC allocation
	sctp: use the same clock as if sock source timestamps were on
	sctp: update the netstamp_needed counter when copying sockets
	sctp: also copy sk_tsflags when copying the socket
	net: qca_spi: fix transmit queue timeout handling
	ipv6: sctp: clone options to avoid use after free
	net: add validation for the socket syscall protocol argument
	sh_eth: fix kernel oops in skb_put()
	net: fix IP early demux races
	vlan: Fix untag operations of stacked vlans with REORDER_HEADER off
	skbuff: Fix offset error in skb_reorder_vlan_header
	pptp: verify sockaddr_len in pptp_bind() and pptp_connect()
	bluetooth: Validate socket address length in sco_sock_bind().
	fou: clean up socket with kfree_rcu
	af_unix: Revert 'lock_interruptible' in stream receive code
	unix: avoid use-after-free in ep_remove_wait_queue
	RDS: fix race condition when sending a message on unbound socket
	Btrfs: fix file corruption and data loss after cloning inline extents
	Btrfs: fix race leading to incorrect item deletion when dropping extents
	Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow
	Btrfs: fix race when listing an inode's xattrs
	rbd: don't put snap_context twice in rbd_queue_workfn()
	ext4, jbd2: ensure entering into panic after recording an error in superblock
	firewire: ohci: fix JMicron JMB38x IT context discovery
	nfsd: serialize state seqid morphing operations
	nfs4: start callback_ident at idr 1
	nfs: if we have no valid attrs, then don't declare the attribute cache valid
	ocfs2: fix umask ignored issue
	ceph: fix message length computation
	ALSA: hda/hdmi - apply Skylake fix-ups to Broxton display codec
	iwlwifi: 7000: fix reported firmware name for 7265D
	iwlwifi: bump firmware API for mvm devices to 12
	RDS: verify the underlying transport exists before creating a connection
	rbd: don't leak parent_spec in rbd_dev_probe_parent()
	USB: cdc_acm: Ignore Infineon Flash Loader utility
	USB: serial: Another Infineon flash loader USB ID
	USB: cp210x: Remove CP2110 ID from compatibility list
	USB: add quirk for devices with broken LPM
	USB: whci-hcd: add check for dma mapping error
	usb: gadget: pxa27x: fix suspend callback
	usb: musb: USB_TI_CPPI41_DMA requires dmaengine support
	usb: core : hub: Fix BOS 'NULL pointer' kernel panic
	usb: Use the USB_SS_MULT() macro to decode burst multiplier for log message
	net: check both type and procotol for tcp sockets
	KEYS: Fix race between read and revoke
	KEYS: Fix keyring ref leak in join_session_keyring()
	Revert "workqueue: make sure delayed work run in local cpu"
	Linux 3.18.26

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 55d282b3 707e840c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 25
SUBLEVEL = 26
EXTRAVERSION =
NAME = Shuffling Zombie Juror

+16 −20
Original line number Diff line number Diff line
@@ -3394,6 +3394,7 @@ static void rbd_handle_request(struct rbd_device *rbd_dev, struct request *rq)
		goto err_rq;
	}
	img_request->rq = rq;
	snapc = NULL; /* img_request consumes a ref */

	if (op_type == OBJ_OP_DISCARD)
		result = rbd_img_request_fill(img_request, OBJ_REQUEST_NODATA,
@@ -5172,41 +5173,36 @@ out_err:
static int rbd_dev_probe_parent(struct rbd_device *rbd_dev)
{
	struct rbd_device *parent = NULL;
	struct rbd_spec *parent_spec;
	struct rbd_client *rbdc;
	int ret;

	if (!rbd_dev->parent_spec)
		return 0;
	/*
	 * We need to pass a reference to the client and the parent
	 * spec when creating the parent rbd_dev.  Images related by
	 * parent/child relationships always share both.
	 */
	parent_spec = rbd_spec_get(rbd_dev->parent_spec);
	rbdc = __rbd_get_client(rbd_dev->rbd_client);

	parent = rbd_dev_create(rbd_dev->rbd_client, rbd_dev->parent_spec);
	if (!parent) {
		ret = -ENOMEM;
	parent = rbd_dev_create(rbdc, parent_spec);
	if (!parent)
		goto out_err;
	}

	/*
	 * Images related by parent/child relationships always share
	 * rbd_client and spec/parent_spec, so bump their refcounts.
	 */
	__rbd_get_client(rbd_dev->rbd_client);
	rbd_spec_get(rbd_dev->parent_spec);

	ret = rbd_dev_image_probe(parent, false);
	if (ret < 0)
		goto out_err;

	rbd_dev->parent = parent;
	atomic_set(&rbd_dev->parent_ref, 1);

	return 0;

out_err:
	if (parent) {
	rbd_dev_unparent(rbd_dev);
	if (parent)
		rbd_dev_destroy(parent);
	} else {
		rbd_put_client(rbdc);
		rbd_spec_put(parent_spec);
	}

	return ret;
}

+5 −0
Original line number Diff line number Diff line
@@ -3682,6 +3682,11 @@ static int pci_probe(struct pci_dev *dev,

	reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0);
	ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet);
	/* JMicron JMB38x often shows 0 at first read, just ignore it */
	if (!ohci->it_context_support) {
		ohci_notice(ohci, "overriding IsoXmitIntMask\n");
		ohci->it_context_support = 0xf;
	}
	reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0);
	ohci->it_context_mask = ohci->it_context_support;
	ohci->n_it = hweight32(ohci->it_context_mask);
+3 −4
Original line number Diff line number Diff line
@@ -1014,13 +1014,12 @@ static int atl1c_setup_ring_resources(struct atl1c_adapter *adapter)
		sizeof(struct atl1c_recv_ret_status) * rx_desc_count +
		8 * 4;

	ring_header->desc = pci_alloc_consistent(pdev, ring_header->size,
				&ring_header->dma);
	ring_header->desc = dma_zalloc_coherent(&pdev->dev, ring_header->size,
						&ring_header->dma, GFP_KERNEL);
	if (unlikely(!ring_header->desc)) {
		dev_err(&pdev->dev, "pci_alloc_consistend failed\n");
		dev_err(&pdev->dev, "could not get memory for DMA buffer\n");
		goto err_nomem;
	}
	memset(ring_header->desc, 0, ring_header->size);
	/* init TPD ring */

	tpd_ring[0].dma = roundup(ring_header->dma, 8);
+2 −3
Original line number Diff line number Diff line
@@ -737,9 +737,8 @@ qcaspi_netdev_tx_timeout(struct net_device *dev)
	netdev_info(qca->net_dev, "Transmit timeout at %ld, latency %ld\n",
		    jiffies, jiffies - dev->trans_start);
	qca->net_dev->stats.tx_errors++;
	/* wake the queue if there is room */
	if (qcaspi_tx_ring_has_space(&qca->txr))
		netif_wake_queue(dev);
	/* Trigger tx queue flush and QCA7000 reset */
	qca->sync = QCASPI_SYNC_UNKNOWN;
}

static int
Loading