All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	"Maciej S. Szmigiero" <mail@maciej.szmigiero.name>,
	Evgeniy Polyakov <zbr@ioremap.net>
Subject: [PATCH 4.4 64/91] w1: ds2490: USB transfer buffers need to be DMAable
Date: Fri, 10 Mar 2017 10:09:03 +0100	[thread overview]
Message-ID: <20170310083903.975678246@linuxfoundation.org> (raw)
In-Reply-To: <20170310083900.730556986@linuxfoundation.org>

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

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

From: Maciej S. Szmigiero <mail@maciej.szmigiero.name>

commit 61cd1b4cd1e8f7f7642ab64529d9bd52e8374641 upstream.

ds2490 driver was doing USB transfers from / to buffers on a stack.
This is not permitted and made the driver non-working with vmapped stacks.

Since all these transfers are done under the same bus_mutex lock we can
simply use shared buffers in a device private structure for two most common
of them.

While we are at it, let's also fix a comparison between int and size_t in
ds9490r_search() which made the driver spin in this function if state
register get requests were failing.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/w1/masters/ds2490.c |  142 ++++++++++++++++++++++++++------------------
 1 file changed, 84 insertions(+), 58 deletions(-)

--- a/drivers/w1/masters/ds2490.c
+++ b/drivers/w1/masters/ds2490.c
@@ -153,6 +153,9 @@ struct ds_device
 	 */
 	u16			spu_bit;
 
+	u8			st_buf[ST_SIZE];
+	u8			byte_buf;
+
 	struct w1_bus_master	master;
 };
 
@@ -174,7 +177,6 @@ struct ds_status
 	u8			data_in_buffer_status;
 	u8			reserved1;
 	u8			reserved2;
-
 };
 
 static struct usb_device_id ds_id_table [] = {
@@ -244,28 +246,6 @@ static int ds_send_control(struct ds_dev
 	return err;
 }
 
-static int ds_recv_status_nodump(struct ds_device *dev, struct ds_status *st,
-				 unsigned char *buf, int size)
-{
-	int count, err;
-
-	memset(st, 0, sizeof(*st));
-
-	count = 0;
-	err = usb_interrupt_msg(dev->udev, usb_rcvintpipe(dev->udev,
-		dev->ep[EP_STATUS]), buf, size, &count, 1000);
-	if (err < 0) {
-		pr_err("Failed to read 1-wire data from 0x%x: err=%d.\n",
-		       dev->ep[EP_STATUS], err);
-		return err;
-	}
-
-	if (count >= sizeof(*st))
-		memcpy(st, buf, sizeof(*st));
-
-	return count;
-}
-
 static inline void ds_print_msg(unsigned char *buf, unsigned char *str, int off)
 {
 	pr_info("%45s: %8x\n", str, buf[off]);
@@ -324,6 +304,35 @@ static void ds_dump_status(struct ds_dev
 	}
 }
 
+static int ds_recv_status(struct ds_device *dev, struct ds_status *st,
+			  bool dump)
+{
+	int count, err;
+
+	if (st)
+		memset(st, 0, sizeof(*st));
+
+	count = 0;
+	err = usb_interrupt_msg(dev->udev,
+				usb_rcvintpipe(dev->udev,
+					       dev->ep[EP_STATUS]),
+				dev->st_buf, sizeof(dev->st_buf),
+				&count, 1000);
+	if (err < 0) {
+		pr_err("Failed to read 1-wire data from 0x%x: err=%d.\n",
+		       dev->ep[EP_STATUS], err);
+		return err;
+	}
+
+	if (dump)
+		ds_dump_status(dev, dev->st_buf, count);
+
+	if (st && count >= sizeof(*st))
+		memcpy(st, dev->st_buf, sizeof(*st));
+
+	return count;
+}
+
 static void ds_reset_device(struct ds_device *dev)
 {
 	ds_send_control_cmd(dev, CTL_RESET_DEVICE, 0);
@@ -344,7 +353,6 @@ static void ds_reset_device(struct ds_de
 static int ds_recv_data(struct ds_device *dev, unsigned char *buf, int size)
 {
 	int count, err;
-	struct ds_status st;
 
 	/* Careful on size.  If size is less than what is available in
 	 * the input buffer, the device fails the bulk transfer and
@@ -359,14 +367,9 @@ static int ds_recv_data(struct ds_device
 	err = usb_bulk_msg(dev->udev, usb_rcvbulkpipe(dev->udev, dev->ep[EP_DATA_IN]),
 				buf, size, &count, 1000);
 	if (err < 0) {
-		u8 buf[ST_SIZE];
-		int count;
-
 		pr_info("Clearing ep0x%x.\n", dev->ep[EP_DATA_IN]);
 		usb_clear_halt(dev->udev, usb_rcvbulkpipe(dev->udev, dev->ep[EP_DATA_IN]));
-
-		count = ds_recv_status_nodump(dev, &st, buf, sizeof(buf));
-		ds_dump_status(dev, buf, count);
+		ds_recv_status(dev, NULL, true);
 		return err;
 	}
 
@@ -404,7 +407,6 @@ int ds_stop_pulse(struct ds_device *dev,
 {
 	struct ds_status st;
 	int count = 0, err = 0;
-	u8 buf[ST_SIZE];
 
 	do {
 		err = ds_send_control(dev, CTL_HALT_EXE_IDLE, 0);
@@ -413,7 +415,7 @@ int ds_stop_pulse(struct ds_device *dev,
 		err = ds_send_control(dev, CTL_RESUME_EXE, 0);
 		if (err)
 			break;
-		err = ds_recv_status_nodump(dev, &st, buf, sizeof(buf));
+		err = ds_recv_status(dev, &st, false);
 		if (err)
 			break;
 
@@ -456,18 +458,17 @@ int ds_detect(struct ds_device *dev, str
 
 static int ds_wait_status(struct ds_device *dev, struct ds_status *st)
 {
-	u8 buf[ST_SIZE];
 	int err, count = 0;
 
 	do {
 		st->status = 0;
-		err = ds_recv_status_nodump(dev, st, buf, sizeof(buf));
+		err = ds_recv_status(dev, st, false);
 #if 0
 		if (err >= 0) {
 			int i;
 			printk("0x%x: count=%d, status: ", dev->ep[EP_STATUS], err);
 			for (i=0; i<err; ++i)
-				printk("%02x ", buf[i]);
+				printk("%02x ", dev->st_buf[i]);
 			printk("\n");
 		}
 #endif
@@ -485,7 +486,7 @@ static int ds_wait_status(struct ds_devi
 	 * can do something with it).
 	 */
 	if (err > 16 || count >= 100 || err < 0)
-		ds_dump_status(dev, buf, err);
+		ds_dump_status(dev, dev->st_buf, err);
 
 	/* Extended data isn't an error.  Well, a short is, but the dump
 	 * would have already told the user that and we can't do anything
@@ -608,7 +609,6 @@ static int ds_write_byte(struct ds_devic
 {
 	int err;
 	struct ds_status st;
-	u8 rbyte;
 
 	err = ds_send_control(dev, COMM_BYTE_IO | COMM_IM | dev->spu_bit, byte);
 	if (err)
@@ -621,11 +621,11 @@ static int ds_write_byte(struct ds_devic
 	if (err)
 		return err;
 
-	err = ds_recv_data(dev, &rbyte, sizeof(rbyte));
+	err = ds_recv_data(dev, &dev->byte_buf, 1);
 	if (err < 0)
 		return err;
 
-	return !(byte == rbyte);
+	return !(byte == dev->byte_buf);
 }
 
 static int ds_read_byte(struct ds_device *dev, u8 *byte)
@@ -712,7 +712,6 @@ static void ds9490r_search(void *data, s
 	int err;
 	u16 value, index;
 	struct ds_status st;
-	u8 st_buf[ST_SIZE];
 	int search_limit;
 	int found = 0;
 	int i;
@@ -724,7 +723,12 @@ static void ds9490r_search(void *data, s
 	/* FIFO 128 bytes, bulk packet size 64, read a multiple of the
 	 * packet size.
 	 */
-	u64 buf[2*64/8];
+	const size_t bufsize = 2 * 64;
+	u64 *buf;
+
+	buf = kmalloc(bufsize, GFP_KERNEL);
+	if (!buf)
+		return;
 
 	mutex_lock(&master->bus_mutex);
 
@@ -745,10 +749,9 @@ static void ds9490r_search(void *data, s
 	do {
 		schedule_timeout(jtime);
 
-		if (ds_recv_status_nodump(dev, &st, st_buf, sizeof(st_buf)) <
-			sizeof(st)) {
+		err = ds_recv_status(dev, &st, false);
+		if (err < 0 || err < sizeof(st))
 			break;
-		}
 
 		if (st.data_in_buffer_status) {
 			/* Bulk in can receive partial ids, but when it does
@@ -758,7 +761,7 @@ static void ds9490r_search(void *data, s
 			 * bulk without first checking if status says there
 			 * is data to read.
 			 */
-			err = ds_recv_data(dev, (u8 *)buf, sizeof(buf));
+			err = ds_recv_data(dev, (u8 *)buf, bufsize);
 			if (err < 0)
 				break;
 			for (i = 0; i < err/8; ++i) {
@@ -794,9 +797,14 @@ static void ds9490r_search(void *data, s
 	}
 search_out:
 	mutex_unlock(&master->bus_mutex);
+	kfree(buf);
 }
 
 #if 0
+/*
+ * FIXME: if this disabled code is ever used in the future all ds_send_data()
+ * calls must be changed to use a DMAable buffer.
+ */
 static int ds_match_access(struct ds_device *dev, u64 init)
 {
 	int err;
@@ -845,13 +853,12 @@ static int ds_set_path(struct ds_device
 
 static u8 ds9490r_touch_bit(void *data, u8 bit)
 {
-	u8 ret;
 	struct ds_device *dev = data;
 
-	if (ds_touch_bit(dev, bit, &ret))
+	if (ds_touch_bit(dev, bit, &dev->byte_buf))
 		return 0;
 
-	return ret;
+	return dev->byte_buf;
 }
 
 #if 0
@@ -866,13 +873,12 @@ static u8 ds9490r_read_bit(void *data)
 {
 	struct ds_device *dev = data;
 	int err;
-	u8 bit = 0;
 
-	err = ds_touch_bit(dev, 1, &bit);
+	err = ds_touch_bit(dev, 1, &dev->byte_buf);
 	if (err)
 		return 0;
 
-	return bit & 1;
+	return dev->byte_buf & 1;
 }
 #endif
 
@@ -887,32 +893,52 @@ static u8 ds9490r_read_byte(void *data)
 {
 	struct ds_device *dev = data;
 	int err;
-	u8 byte = 0;
 
-	err = ds_read_byte(dev, &byte);
+	err = ds_read_byte(dev, &dev->byte_buf);
 	if (err)
 		return 0;
 
-	return byte;
+	return dev->byte_buf;
 }
 
 static void ds9490r_write_block(void *data, const u8 *buf, int len)
 {
 	struct ds_device *dev = data;
+	u8 *tbuf;
+
+	if (len <= 0)
+		return;
+
+	tbuf = kmalloc(len, GFP_KERNEL);
+	if (!tbuf)
+		return;
+
+	memcpy(tbuf, buf, len);
+	ds_write_block(dev, tbuf, len);
 
-	ds_write_block(dev, (u8 *)buf, len);
+	kfree(tbuf);
 }
 
 static u8 ds9490r_read_block(void *data, u8 *buf, int len)
 {
 	struct ds_device *dev = data;
 	int err;
+	u8 *tbuf;
 
-	err = ds_read_block(dev, buf, len);
-	if (err < 0)
+	if (len <= 0)
+		return 0;
+
+	tbuf = kmalloc(len, GFP_KERNEL);
+	if (!tbuf)
 		return 0;
 
-	return len;
+	err = ds_read_block(dev, tbuf, len);
+	if (err >= 0)
+		memcpy(buf, tbuf, len);
+
+	kfree(tbuf);
+
+	return err >= 0 ? len : 0;
 }
 
 static u8 ds9490r_reset(void *data)

  parent reply	other threads:[~2017-03-10 11:38 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-10  9:07 [PATCH 4.4 00/91] 4.4.53-stable review Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 01/91] MIPS: Fix special case in 64 bit IP checksumming Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 02/91] MIPS: BCM47XX: Fix button inversion for Asus WL-500W Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 03/91] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 04/91] MIPS: Lantiq: Keep ethernet enabled during boot Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 05/91] MIPS: Clear ISA bit correctly in get_frame_info() Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 06/91] MIPS: Prevent unaligned accesses during stack unwinding Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 07/91] MIPS: Fix get_frame_info() handling of microMIPS function size Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 08/91] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 09/91] MIPS: Calculate microMIPS ra properly when unwinding the stack Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 10/91] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 11/91] [media] am437x-vpfe: always assign bpp variable Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 12/91] [media] uvcvideo: Fix a wrong macro Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 13/91] [media] media: fix dm1105.c build error Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 14/91] ARM: at91: define LPDDR types Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 15/91] ARM: dts: at91: Enable DMA on sama5d4_xplained console Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 16/91] ARM: dts: at91: Enable DMA on sama5d2_xplained console Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 17/91] ALSA: hda/realtek - Cannot adjust speakers volume on a Dell AIO Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 18/91] ALSA: hda - fix Lewisburg audio issue Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 19/91] ALSA: timer: Reject user params with too small ticks Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 20/91] ALSA: ctxfi: Fallback DMA mask to 32bit Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 21/91] ALSA: seq: Fix link corruption by event error handling Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 22/91] ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 23/91] ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 24/91] staging: rtl: fix possible NULL pointer dereference Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 25/91] regulator: Fix regulator_summary for deviceless consumers Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 26/91] iommu/vt-d: Fix some macros that are incorrectly specified in intel-iommu Greg Kroah-Hartman
2017-03-10  9:08   ` Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 27/91] iommu/vt-d: Tylersburg isoch identity map check is done too late Greg Kroah-Hartman
2017-03-10  9:08   ` Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 28/91] mm/page_alloc: fix nodes for reclaim in fast path Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 29/91] mm: vmpressure: fix sending wrong events on underflow Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 30/91] mm: do not access page->mapping directly on page_endio Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 31/91] ipc/shm: Fix shmat mmap nil-page protection Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 32/91] dm cache: fix corruption seen when using cache > 2TB Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 33/91] dm stats: fix a leaked s->histogram_boundaries array Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 34/91] scsi: storvsc: use tagged SRB requests if supported by the device Greg Kroah-Hartman
2017-03-10 14:56   ` Ben Hutchings
2017-03-10 15:21     ` Greg Kroah-Hartman
2017-03-10 15:21       ` Greg Kroah-Hartman
2017-03-10 15:29       ` KY Srinivasan
2017-03-10  9:08 ` [PATCH 4.4 35/91] scsi: storvsc: properly handle SRB_ERROR when sense message is present Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 36/91] scsi: storvsc: properly set residual data length on errors Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 37/91] scsi: aacraid: Reorder Adapter status check Greg Kroah-Hartman
2017-03-10  9:08   ` Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 38/91] scsi: use scsi_device_from_queue() for scsi_dh Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 39/91] sd: get disk reference in sd_check_events() Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 40/91] Fix: Disable sys_membarrier when nohz_full is enabled Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 41/91] jbd2: dont leak modified metadata buffers on an aborted journal Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 42/91] block/loop: fix race between I/O and set_status Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 43/91] loop: fix LO_FLAGS_PARTSCAN hang Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 44/91] ext4: Include forgotten start block on fallocate insert range Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 45/91] ext4: do not polute the extents cache while shifting extents Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 46/91] ext4: trim allocation requests to group size Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 47/91] ext4: fix data corruption in data=journal mode Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 48/91] ext4: fix inline data error paths Greg Kroah-Hartman
2017-03-10 16:48   ` Ben Hutchings
2017-03-12  5:22     ` Greg Kroah-Hartman
2017-03-12  5:22       ` Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 49/91] ext4: preserve the needs_recovery flag when the journal is aborted Greg Kroah-Hartman
2017-03-10 16:58   ` Ben Hutchings
2017-03-10 20:14     ` Theodore Ts'o
2017-03-10 20:14       ` Theodore Ts'o
2017-03-11  5:27       ` Ben Hutchings
2017-03-10  9:08 ` [PATCH 4.4 50/91] ext4: return EROFS if device is r/o and journal replay is needed Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 52/91] target: Obtain se_node_acl->acl_kref during get_initiator_node_acl Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 53/91] target: Fix multi-session dynamic se_node_acl double free OOPs Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 54/91] ath5k: drop bogus warning on drv_set_key with unsupported cipher Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 55/91] ath9k: fix race condition in enabling/disabling IRQs Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 56/91] ath9k: use correct OTP register offsets for the AR9340 and AR9550 Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 57/91] crypto: testmgr - Pad aes_ccm_enc_tv_template vector Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 58/91] fuse: add missing FR_FORCE Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 59/91] arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2 Greg Kroah-Hartman
2017-03-10  9:08 ` [PATCH 4.4 60/91] iio: pressure: mpl115: do not rely on structure field ordering Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 61/91] iio: pressure: mpl3115: " Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 62/91] can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 63/91] w1: dont leak refcount on slave attach failure in w1_attach_slave_device() Greg Kroah-Hartman
2017-03-10  9:09 ` Greg Kroah-Hartman [this message]
2017-03-10  9:09 ` [PATCH 4.4 65/91] usb: musb: da8xx: Remove CPPI 3.0 quirk and methods Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 66/91] usb: host: xhci: plat: check hcc_params after add hcd Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 67/91] usb: gadget: udc: fsl: Add missing complete function Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 68/91] hv: allocate synic pages for all present CPUs Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 69/91] hv: init percpu_list in hv_synic_alloc() Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 70/91] Drivers: hv: util: kvp: Fix a rescind processing issue Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 71/91] Drivers: hv: util: Fcopy: " Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 72/91] Drivers: hv: util: Backup: " Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 73/91] RDMA/core: Fix incorrect structure packing for booleans Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 74/91] rdma_cm: fail iwarp accepts w/o connection params Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 75/91] gfs2: Add missing rcu locking for glock lookup Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 76/91] rtlwifi: Fix alignment issues Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 77/91] rtlwifi: rtl8192c-common: Fix "BUG: KASAN: Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 78/91] nfsd: minor nfsd_setattr cleanup Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 79/91] nfsd: special case truncates some more Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 80/91] NFSv4: Fix memory and state leak in _nfs4_open_and_get_state Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 81/91] NFSv4: fix getacl head length estimation Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 82/91] NFSv4: fix getacl ERANGE for some ACL buffer sizes Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 83/91] rtc: sun6i: Add some locking Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 84/91] rtc: sun6i: Switch to the external oscillator Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 85/91] md linear: fix a race between linear_add() and linear_congested() Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 87/91] dmaengine: ipu: Make sure the interrupt routine checks all interrupts Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 88/91] powerpc/xmon: Fix data-breakpoint Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 89/91] MIPS: IP22: Reformat inline assembler code to modern standards Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 90/91] MIPS: IP22: Fix build error due to binutils 2.25 uselessnes Greg Kroah-Hartman
2017-03-10  9:09 ` [PATCH 4.4 91/91] scsi: lpfc: Correct WQ creation for pagesize Greg Kroah-Hartman
2017-03-10 18:35 ` [PATCH 4.4 00/91] 4.4.53-stable review Guenter Roeck
2017-03-10 19:15 ` Shuah Khan
     [not found] ` <58c2d01c.cdd8190a.421eb.b1d4@mx.google.com>
     [not found]   ` <m2pohoes9u.fsf@baylibre.com>
2017-03-13  8:56     ` Thomas Petazzoni
2017-03-14 17:08       ` Kevin Hilman

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=20170310083903.975678246@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mail@maciej.szmigiero.name \
    --cc=stable@vger.kernel.org \
    --cc=zbr@ioremap.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.