stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: lizf@kernel.org
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Mitko Haralanov <mitko.haralanov@intel.com>,
	Mike Marciniszyn <mike.marciniszyn@intel.com>,
	Roland Dreier <roland@purestorage.com>,
	Zefan Li <lizefan@huawei.com>
Subject: [PATCH 3.4 042/172] IB/qib: Do not write EEPROM
Date: Tue, 16 Jun 2015 16:34:56 +0800	[thread overview]
Message-ID: <1434443826-4929-42-git-send-email-lizf@kernel.org> (raw)
In-Reply-To: <1434443587-4599-1-git-send-email-lizf@kernel.org>

From: Mitko Haralanov <mitko.haralanov@intel.com>

3.4.108-rc1 review patch.  If anyone has any objections, please let me know.

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


commit 18c0b82a3e4501511b08d0e8676fb08ac08734a3 upstream.

This changeset removes all the code that allows the driver to write to
the EEPROM and update the recorded error counters and power on hours.

These two stats are unused and writing them exposes a timing risk
which could leave the EEPROM in a bad state preventing further normal
operation of the HCA.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
[lizf: Backported to 3.4: adjust context]
Signed-off-by: Zefan Li <lizefan@huawei.com>
---
 drivers/infiniband/hw/qib/qib.h         |   9 +-
 drivers/infiniband/hw/qib/qib_eeprom.c  | 181 --------------------------------
 drivers/infiniband/hw/qib/qib_iba6120.c |   2 -
 drivers/infiniband/hw/qib/qib_iba7220.c |   2 -
 drivers/infiniband/hw/qib/qib_iba7322.c |   2 -
 drivers/infiniband/hw/qib/qib_init.c    |   1 -
 drivers/infiniband/hw/qib/qib_sysfs.c   |  24 -----
 7 files changed, 1 insertion(+), 220 deletions(-)

diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
index 6b811e3..c7d4ef1 100644
--- a/drivers/infiniband/hw/qib/qib.h
+++ b/drivers/infiniband/hw/qib/qib.h
@@ -1013,12 +1013,6 @@ struct qib_devdata {
 	/* control high-level access to EEPROM */
 	struct mutex eep_lock;
 	uint64_t traffic_wds;
-	/* active time is kept in seconds, but logged in hours */
-	atomic_t active_time;
-	/* Below are nominal shadow of EEPROM, new since last EEPROM update */
-	uint8_t eep_st_errs[QIB_EEP_LOG_CNT];
-	uint8_t eep_st_new_errs[QIB_EEP_LOG_CNT];
-	uint16_t eep_hrs;
 	/*
 	 * masks for which bits of errs, hwerrs that cause
 	 * each of the counters to increment.
@@ -1235,8 +1229,7 @@ int qib_twsi_blk_rd(struct qib_devdata *dd, int dev, int addr, void *buffer,
 int qib_twsi_blk_wr(struct qib_devdata *dd, int dev, int addr,
 		    const void *buffer, int len);
 void qib_get_eeprom_info(struct qib_devdata *);
-int qib_update_eeprom_log(struct qib_devdata *dd);
-void qib_inc_eeprom_err(struct qib_devdata *dd, u32 eidx, u32 incr);
+#define qib_inc_eeprom_err(dd, eidx, incr)
 void qib_dump_lookup_output_queue(struct qib_devdata *);
 void qib_force_pio_avail_update(struct qib_devdata *);
 void qib_clear_symerror_on_linkup(unsigned long opaque);
diff --git a/drivers/infiniband/hw/qib/qib_eeprom.c b/drivers/infiniband/hw/qib/qib_eeprom.c
index 92d9cfe..161ef71 100644
--- a/drivers/infiniband/hw/qib/qib_eeprom.c
+++ b/drivers/infiniband/hw/qib/qib_eeprom.c
@@ -263,189 +263,8 @@ void qib_get_eeprom_info(struct qib_devdata *dd)
 		qib_dev_err(dd, "Board SN %s did not pass functional "
 			    "test: %s\n", dd->serial, ifp->if_comment);
 
-	memcpy(&dd->eep_st_errs, &ifp->if_errcntp, QIB_EEP_LOG_CNT);
-	/*
-	 * Power-on (actually "active") hours are kept as little-endian value
-	 * in EEPROM, but as seconds in a (possibly as small as 24-bit)
-	 * atomic_t while running.
-	 */
-	atomic_set(&dd->active_time, 0);
-	dd->eep_hrs = ifp->if_powerhour[0] | (ifp->if_powerhour[1] << 8);
-
 done:
 	vfree(buf);
 
 bail:;
 }
-
-/**
- * qib_update_eeprom_log - copy active-time and error counters to eeprom
- * @dd: the qlogic_ib device
- *
- * Although the time is kept as seconds in the qib_devdata struct, it is
- * rounded to hours for re-write, as we have only 16 bits in EEPROM.
- * First-cut code reads whole (expected) struct qib_flash, modifies,
- * re-writes. Future direction: read/write only what we need, assuming
- * that the EEPROM had to have been "good enough" for driver init, and
- * if not, we aren't making it worse.
- *
- */
-int qib_update_eeprom_log(struct qib_devdata *dd)
-{
-	void *buf;
-	struct qib_flash *ifp;
-	int len, hi_water;
-	uint32_t new_time, new_hrs;
-	u8 csum;
-	int ret, idx;
-	unsigned long flags;
-
-	/* first, check if we actually need to do anything. */
-	ret = 0;
-	for (idx = 0; idx < QIB_EEP_LOG_CNT; ++idx) {
-		if (dd->eep_st_new_errs[idx]) {
-			ret = 1;
-			break;
-		}
-	}
-	new_time = atomic_read(&dd->active_time);
-
-	if (ret == 0 && new_time < 3600)
-		goto bail;
-
-	/*
-	 * The quick-check above determined that there is something worthy
-	 * of logging, so get current contents and do a more detailed idea.
-	 * read full flash, not just currently used part, since it may have
-	 * been written with a newer definition
-	 */
-	len = sizeof(struct qib_flash);
-	buf = vmalloc(len);
-	ret = 1;
-	if (!buf) {
-		qib_dev_err(dd, "Couldn't allocate memory to read %u "
-			    "bytes from eeprom for logging\n", len);
-		goto bail;
-	}
-
-	/* Grab semaphore and read current EEPROM. If we get an
-	 * error, let go, but if not, keep it until we finish write.
-	 */
-	ret = mutex_lock_interruptible(&dd->eep_lock);
-	if (ret) {
-		qib_dev_err(dd, "Unable to acquire EEPROM for logging\n");
-		goto free_bail;
-	}
-	ret = qib_twsi_blk_rd(dd, dd->twsi_eeprom_dev, 0, buf, len);
-	if (ret) {
-		mutex_unlock(&dd->eep_lock);
-		qib_dev_err(dd, "Unable read EEPROM for logging\n");
-		goto free_bail;
-	}
-	ifp = (struct qib_flash *)buf;
-
-	csum = flash_csum(ifp, 0);
-	if (csum != ifp->if_csum) {
-		mutex_unlock(&dd->eep_lock);
-		qib_dev_err(dd, "EEPROM cks err (0x%02X, S/B 0x%02X)\n",
-			    csum, ifp->if_csum);
-		ret = 1;
-		goto free_bail;
-	}
-	hi_water = 0;
-	spin_lock_irqsave(&dd->eep_st_lock, flags);
-	for (idx = 0; idx < QIB_EEP_LOG_CNT; ++idx) {
-		int new_val = dd->eep_st_new_errs[idx];
-		if (new_val) {
-			/*
-			 * If we have seen any errors, add to EEPROM values
-			 * We need to saturate at 0xFF (255) and we also
-			 * would need to adjust the checksum if we were
-			 * trying to minimize EEPROM traffic
-			 * Note that we add to actual current count in EEPROM,
-			 * in case it was altered while we were running.
-			 */
-			new_val += ifp->if_errcntp[idx];
-			if (new_val > 0xFF)
-				new_val = 0xFF;
-			if (ifp->if_errcntp[idx] != new_val) {
-				ifp->if_errcntp[idx] = new_val;
-				hi_water = offsetof(struct qib_flash,
-						    if_errcntp) + idx;
-			}
-			/*
-			 * update our shadow (used to minimize EEPROM
-			 * traffic), to match what we are about to write.
-			 */
-			dd->eep_st_errs[idx] = new_val;
-			dd->eep_st_new_errs[idx] = 0;
-		}
-	}
-	/*
-	 * Now update active-time. We would like to round to the nearest hour
-	 * but unless atomic_t are sure to be proper signed ints we cannot,
-	 * because we need to account for what we "transfer" to EEPROM and
-	 * if we log an hour at 31 minutes, then we would need to set
-	 * active_time to -29 to accurately count the _next_ hour.
-	 */
-	if (new_time >= 3600) {
-		new_hrs = new_time / 3600;
-		atomic_sub((new_hrs * 3600), &dd->active_time);
-		new_hrs += dd->eep_hrs;
-		if (new_hrs > 0xFFFF)
-			new_hrs = 0xFFFF;
-		dd->eep_hrs = new_hrs;
-		if ((new_hrs & 0xFF) != ifp->if_powerhour[0]) {
-			ifp->if_powerhour[0] = new_hrs & 0xFF;
-			hi_water = offsetof(struct qib_flash, if_powerhour);
-		}
-		if ((new_hrs >> 8) != ifp->if_powerhour[1]) {
-			ifp->if_powerhour[1] = new_hrs >> 8;
-			hi_water = offsetof(struct qib_flash, if_powerhour) + 1;
-		}
-	}
-	/*
-	 * There is a tiny possibility that we could somehow fail to write
-	 * the EEPROM after updating our shadows, but problems from holding
-	 * the spinlock too long are a much bigger issue.
-	 */
-	spin_unlock_irqrestore(&dd->eep_st_lock, flags);
-	if (hi_water) {
-		/* we made some change to the data, uopdate cksum and write */
-		csum = flash_csum(ifp, 1);
-		ret = eeprom_write_with_enable(dd, 0, buf, hi_water + 1);
-	}
-	mutex_unlock(&dd->eep_lock);
-	if (ret)
-		qib_dev_err(dd, "Failed updating EEPROM\n");
-
-free_bail:
-	vfree(buf);
-bail:
-	return ret;
-}
-
-/**
- * qib_inc_eeprom_err - increment one of the four error counters
- * that are logged to EEPROM.
- * @dd: the qlogic_ib device
- * @eidx: 0..3, the counter to increment
- * @incr: how much to add
- *
- * Each counter is 8-bits, and saturates at 255 (0xFF). They
- * are copied to the EEPROM (aka flash) whenever qib_update_eeprom_log()
- * is called, but it can only be called in a context that allows sleep.
- * This function can be called even at interrupt level.
- */
-void qib_inc_eeprom_err(struct qib_devdata *dd, u32 eidx, u32 incr)
-{
-	uint new_val;
-	unsigned long flags;
-
-	spin_lock_irqsave(&dd->eep_st_lock, flags);
-	new_val = dd->eep_st_new_errs[eidx] + incr;
-	if (new_val > 255)
-		new_val = 255;
-	dd->eep_st_new_errs[eidx] = new_val;
-	spin_unlock_irqrestore(&dd->eep_st_lock, flags);
-}
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c
index d0c64d5..eb60abd 100644
--- a/drivers/infiniband/hw/qib/qib_iba6120.c
+++ b/drivers/infiniband/hw/qib/qib_iba6120.c
@@ -2674,8 +2674,6 @@ static void qib_get_6120_faststats(unsigned long opaque)
 	spin_lock_irqsave(&dd->eep_st_lock, flags);
 	traffic_wds -= dd->traffic_wds;
 	dd->traffic_wds += traffic_wds;
-	if (traffic_wds  >= QIB_TRAFFIC_ACTIVE_THRESHOLD)
-		atomic_add(5, &dd->active_time); /* S/B #define */
 	spin_unlock_irqrestore(&dd->eep_st_lock, flags);
 
 	qib_chk_6120_errormask(dd);
diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c
index 3c722f7..b62c7f2 100644
--- a/drivers/infiniband/hw/qib/qib_iba7220.c
+++ b/drivers/infiniband/hw/qib/qib_iba7220.c
@@ -3292,8 +3292,6 @@ static void qib_get_7220_faststats(unsigned long opaque)
 	spin_lock_irqsave(&dd->eep_st_lock, flags);
 	traffic_wds -= dd->traffic_wds;
 	dd->traffic_wds += traffic_wds;
-	if (traffic_wds  >= QIB_TRAFFIC_ACTIVE_THRESHOLD)
-		atomic_add(5, &dd->active_time); /* S/B #define */
 	spin_unlock_irqrestore(&dd->eep_st_lock, flags);
 done:
 	mod_timer(&dd->stats_timer, jiffies + HZ * ACTIVITY_TIMER);
diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c
index d252053..0d8e348 100644
--- a/drivers/infiniband/hw/qib/qib_iba7322.c
+++ b/drivers/infiniband/hw/qib/qib_iba7322.c
@@ -4841,8 +4841,6 @@ static void qib_get_7322_faststats(unsigned long opaque)
 		spin_lock_irqsave(&ppd->dd->eep_st_lock, flags);
 		traffic_wds -= ppd->dd->traffic_wds;
 		ppd->dd->traffic_wds += traffic_wds;
-		if (traffic_wds >= QIB_TRAFFIC_ACTIVE_THRESHOLD)
-			atomic_add(ACTIVITY_TIMER, &ppd->dd->active_time);
 		spin_unlock_irqrestore(&ppd->dd->eep_st_lock, flags);
 		if (ppd->cpspec->qdr_dfe_on && (ppd->link_speed_active &
 						QIB_IB_QDR) &&
diff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c
index cf0cd30..0776dd0 100644
--- a/drivers/infiniband/hw/qib/qib_init.c
+++ b/drivers/infiniband/hw/qib/qib_init.c
@@ -765,7 +765,6 @@ static void qib_shutdown_device(struct qib_devdata *dd)
 		dd->f_quiet_serdes(ppd);
 	}
 
-	qib_update_eeprom_log(dd);
 }
 
 /**
diff --git a/drivers/infiniband/hw/qib/qib_sysfs.c b/drivers/infiniband/hw/qib/qib_sysfs.c
index dae5160..c01cb11 100644
--- a/drivers/infiniband/hw/qib/qib_sysfs.c
+++ b/drivers/infiniband/hw/qib/qib_sysfs.c
@@ -550,28 +550,6 @@ bail:
 	return ret < 0 ? ret : count;
 }
 
-static ssize_t show_logged_errs(struct device *device,
-				struct device_attribute *attr, char *buf)
-{
-	struct qib_ibdev *dev =
-		container_of(device, struct qib_ibdev, ibdev.dev);
-	struct qib_devdata *dd = dd_from_dev(dev);
-	int idx, count;
-
-	/* force consistency with actual EEPROM */
-	if (qib_update_eeprom_log(dd) != 0)
-		return -ENXIO;
-
-	count = 0;
-	for (idx = 0; idx < QIB_EEP_LOG_CNT; ++idx) {
-		count += scnprintf(buf + count, PAGE_SIZE - count, "%d%c",
-				   dd->eep_st_errs[idx],
-				   idx == (QIB_EEP_LOG_CNT - 1) ? '\n' : ' ');
-	}
-
-	return count;
-}
-
 /*
  * Dump tempsense regs. in decimal, to ease shell-scripts.
  */
@@ -618,7 +596,6 @@ static DEVICE_ATTR(nctxts, S_IRUGO, show_nctxts, NULL);
 static DEVICE_ATTR(nfreectxts, S_IRUGO, show_nfreectxts, NULL);
 static DEVICE_ATTR(serial, S_IRUGO, show_serial, NULL);
 static DEVICE_ATTR(boardversion, S_IRUGO, show_boardversion, NULL);
-static DEVICE_ATTR(logged_errors, S_IRUGO, show_logged_errs, NULL);
 static DEVICE_ATTR(tempsense, S_IRUGO, show_tempsense, NULL);
 static DEVICE_ATTR(localbus_info, S_IRUGO, show_localbus_info, NULL);
 static DEVICE_ATTR(chip_reset, S_IWUSR, NULL, store_chip_reset);
@@ -632,7 +609,6 @@ static struct device_attribute *qib_attributes[] = {
 	&dev_attr_nfreectxts,
 	&dev_attr_serial,
 	&dev_attr_boardversion,
-	&dev_attr_logged_errors,
 	&dev_attr_tempsense,
 	&dev_attr_localbus_info,
 	&dev_attr_chip_reset,
-- 
1.9.1


  parent reply	other threads:[~2015-06-16  8:42 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-16  8:33 [PATCH 3.4 000/172] 3.4.108-rc1 review lizf
2015-06-16  8:34 ` [PATCH 3.4 001/172] ARM: pxa: add regulator_has_full_constraints to corgi board file lizf
2015-06-16  8:34 ` [PATCH 3.4 002/172] ARM: pxa: add regulator_has_full_constraints to poodle " lizf
2015-06-16  8:34 ` [PATCH 3.4 003/172] ARM: pxa: add regulator_has_full_constraints to spitz " lizf
2015-06-16  8:34 ` [PATCH 3.4 004/172] hx4700: regulator: declare full constraints lizf
2015-06-16  8:34 ` [PATCH 3.4 005/172] PCI: Generate uppercase hex for modalias var in uevent lizf
2015-06-16  8:34 ` [PATCH 3.4 006/172] usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN lizf
2015-06-16  8:34 ` [PATCH 3.4 007/172] axonram: Fix bug in direct_access lizf
2015-06-16  8:34 ` [PATCH 3.4 008/172] Bluetooth: ath3k: Add support of AR3012 bluetooth 13d3:3423 device lizf
2015-06-16  8:34 ` [PATCH 3.4 009/172] smack: fix possible use after frees in task_security() callers lizf
2015-06-16  8:34 ` [PATCH 3.4 010/172] KVM: s390: base hrtimer on a monotonic clock lizf
2015-06-16  8:34 ` [PATCH 3.4 011/172] PCI: Fix infinite loop with ROM image of size 0 lizf
2015-06-16  8:34 ` [PATCH 3.4 012/172] USB: cp210x: add ID for RUGGEDCOM USB Serial Console lizf
2015-06-16  8:34 ` [PATCH 3.4 013/172] staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back lizf
2015-06-16  8:34 ` [PATCH 3.4 014/172] ARM: 8284/1: sa1100: clear RCSR_SMR on resume lizf
2015-06-16  8:34 ` [PATCH 3.4 015/172] xprtrdma: Free the pd if ib_query_qp() fails lizf
2015-06-16  8:34 ` [PATCH 3.4 016/172] cdc-acm: add sanity checks lizf
2015-06-16  8:34 ` [PATCH 3.4 017/172] USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd) lizf
2015-06-16  8:34 ` [PATCH 3.4 018/172] USB: fix use-after-free bug in usb_hcd_unlink_urb() lizf
2015-06-16  8:34 ` [PATCH 3.4 019/172] vt: provide notifications on selection changes lizf
2015-06-16  8:34 ` [PATCH 3.4 020/172] tty: Prevent untrappable signals from malicious program lizf
2015-06-16  8:34 ` [PATCH 3.4 021/172] ath5k: fix spontaneus AR5312 freezes lizf
2015-06-16  8:34 ` [PATCH 3.4 022/172] rtnetlink: ifla_vf_policy: fix misuses of NLA_BINARY lizf
2015-06-16  8:34 ` [PATCH 3.4 023/172] ALSA: off by one bug in snd_riptide_joystick_probe() lizf
2015-06-16  8:34 ` [PATCH 3.4 024/172] fsnotify: fix handling of renames in audit lizf
2015-06-16  8:34 ` [PATCH 3.4 025/172] NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args lizf
2015-06-16  8:34 ` [PATCH 3.4 026/172] cpufreq: speedstep-smi: enable interrupts when waiting lizf
2015-06-16  8:34 ` [PATCH 3.4 027/172] mm/hugetlb: fix getting refcount 0 page in hugetlb_fault() lizf
2015-06-16  8:34 ` [PATCH 3.4 028/172] mm/hugetlb: add migration/hwpoisoned entry check in hugetlb_change_protection lizf
2015-06-16  8:34 ` [PATCH 3.4 029/172] mm/hugetlb: add migration entry check in __unmap_hugepage_range lizf
2015-06-16  8:34 ` [PATCH 3.4 030/172] mm/mmap.c: fix arithmetic overflow in __vm_enough_memory() lizf
2015-06-16  8:34 ` [PATCH 3.4 031/172] mm/nommu.c: " lizf
2015-06-16  8:34 ` [PATCH 3.4 032/172] iscsi-target: Drop problematic active_ts_list usage lizf
2015-06-16  8:34 ` [PATCH 3.4 033/172] mm/memory.c: actually remap enough memory lizf
2015-06-16  8:34 ` [PATCH 3.4 034/172] drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary lizf
2015-06-16  8:34 ` [PATCH 3.4 035/172] ALSA: hdspm - Constrain periods to 2 on older cards lizf
2015-06-16  9:45   ` Adrian Knoth
2015-06-18  3:18     ` Zefan Li
2015-06-16  8:34 ` [PATCH 3.4 036/172] jffs2: fix handling of corrupted summary length lizf
2015-06-16  8:34 ` [PATCH 3.4 037/172] dm mirror: do not degrade the mirror on discard error lizf
2015-06-16  8:34 ` [PATCH 3.4 038/172] dm io: reject unsupported DISCARD requests with EOPNOTSUPP lizf
2015-06-16  8:34 ` [PATCH 3.4 039/172] ipv6: fix ipv6_cow_metrics for non DST_HOST case lizf
2015-06-16  8:34 ` [PATCH 3.4 040/172] fixed invalid assignment of 64bit mask to host dma_boundary for scatter gather segment boundary limit lizf
2015-06-16  8:34 ` [PATCH 3.4 041/172] sg: fix read() error reporting lizf
2015-06-16  8:34 ` lizf [this message]
2015-06-16  8:34 ` [PATCH 3.4 043/172] dm: fix a race condition in dm_get_md lizf
2015-06-16  8:34 ` [PATCH 3.4 044/172] dm snapshot: fix a possible invalid memory access on unload lizf
2015-06-16  8:34 ` [PATCH 3.4 045/172] kdb: fix incorrect counts in KDB summary command output lizf
2015-06-16  8:35 ` [PATCH 3.4 046/172] debugfs: leave freeing a symlink body until inode eviction lizf
2015-06-16  8:35 ` [PATCH 3.4 047/172] autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation lizf
2015-06-16  8:35 ` [PATCH 3.4 048/172] gpio: tps65912: fix wrong container_of arguments lizf
2015-06-16  8:35 ` [PATCH 3.4 049/172] ALSA: pcm: Don't leave PREPARED state after draining lizf
2015-06-16  8:35 ` [PATCH 3.4 050/172] nilfs2: fix potential memory overrun on inode lizf
2015-06-16  8:35 ` [PATCH 3.4 051/172] netfilter: xt_socket: fix a stack corruption bug lizf
2015-06-16 10:23   ` Pablo Neira Ayuso
2015-06-16  8:35 ` [PATCH 3.4 052/172] team: fix possible null pointer dereference in team_handle_frame lizf
2015-06-16  8:35 ` [PATCH 3.4 053/172] KVM: emulate: fix CMPXCHG8B on 32-bit hosts lizf
2015-06-16  8:35 ` [PATCH 3.4 054/172] xhci: Allocate correct amount of scratchpad buffers lizf
2015-06-16  8:35 ` [PATCH 3.4 055/172] USB: usbfs: don't leak kernel data in siginfo lizf
2015-06-16  8:35 ` [PATCH 3.4 056/172] USB: ftdi_sio: add PIDs for Actisense USB devices lizf
2015-06-16  8:35 ` [PATCH 3.4 057/172] USB: serial: fix potential use-after-free after failed probe lizf
2015-06-16  8:35 ` [PATCH 3.4 058/172] USB: serial: fix tty-device error handling at probe lizf
2015-06-16  8:35 ` [PATCH 3.4 059/172] mac80211: Send EAPOL frames at lowest rate lizf
2015-06-16  8:35 ` [PATCH 3.4 060/172] USB: serial: cp210x: Adding Seletek device id's lizf
2015-06-16  8:35 ` [PATCH 3.4 061/172] NFSv4: Don't call put_rpccred() under the rcu_read_lock() lizf
2015-06-16  8:35 ` [PATCH 3.4 062/172] usb: ftdi_sio: Add jtag quirk support for Cyber Cortex AV boards lizf
2015-06-16  8:35 ` [PATCH 3.4 063/172] eCryptfs: don't pass fs-specific ioctl commands through lizf
2015-06-16  8:35 ` [PATCH 3.4 064/172] drm/radeon: do a posting read in r100_set_irq lizf
2015-06-16  8:35 ` [PATCH 3.4 065/172] drm/radeon: do a posting read in rs600_set_irq lizf
2015-06-16  8:35 ` [PATCH 3.4 066/172] drm/radeon: do a posting read in r600_set_irq lizf
2015-06-16  8:35 ` [PATCH 3.4 067/172] drm/radeon: do a posting read in evergreen_set_irq lizf
2015-06-16  8:35 ` [PATCH 3.4 068/172] drm/radeon: do a posting read in si_set_irq lizf
2015-06-16  8:35 ` [PATCH 3.4 069/172] drm/radeon: fix DRM_IOCTL_RADEON_CS oops lizf
2015-06-16  8:35 ` [PATCH 3.4 070/172] ACPI / video: Load the module even if ACPI is disabled lizf
2015-06-16  8:35 ` [PATCH 3.4 071/172] ASoC: omap-pcm: Correct dma mask lizf
2015-06-16  8:35 ` [PATCH 3.4 072/172] x86/asm/entry/64: Remove a bogus 'ret_from_fork' optimization lizf
2015-06-16  8:35 ` [PATCH 3.4 073/172] xhci: fix reporting of 0-sized URBs in control endpoint lizf
2015-06-16  8:35 ` [PATCH 3.4 074/172] xhci: Workaround for PME stuck issues in Intel xhci lizf
2015-06-16  8:35 ` [PATCH 3.4 075/172] Change email address for 8250_pci lizf
2015-06-16  8:35 ` [PATCH 3.4 076/172] tty: fix up atime/mtime mess, take four lizf
2015-06-16  8:35 ` [PATCH 3.4 077/172] console: Fix console name size mismatch lizf
2015-06-16  8:35 ` [PATCH 3.4 078/172] net: irda: fix wait_until_sent poll timeout lizf
2015-06-16  8:35 ` [PATCH 3.4 079/172] TTY: fix tty_wait_until_sent on 64-bit machines lizf
2015-06-16  8:35 ` [PATCH 3.4 080/172] sunrpc: fix braino in ->poll() lizf
2015-06-16  8:35 ` [PATCH 3.4 081/172] gadgetfs: use-after-free in ->aio_read() lizf
2015-06-16  8:35 ` [PATCH 3.4 082/172] ipvs: add missing ip_vs_pe_put in sync code lizf
2015-06-16  8:35 ` [PATCH 3.4 083/172] ARM: at91: pm: fix at91rm9200 standby lizf
2015-06-16  8:35 ` [PATCH 3.4 084/172] bnx2x: Force fundamental reset for EEH recovery lizf
2015-06-16  8:35 ` [PATCH 3.4 085/172] libsas: Fix Kernel Crash in smp_execute_task lizf
2015-06-16  8:35 ` [PATCH 3.4 086/172] can: add missing initialisations in CAN related skbuffs lizf
2015-06-16  8:35 ` [PATCH 3.4 087/172] ftrace: Fix en(dis)able graph caller when en(dis)abling record via sysctl lizf
2015-06-16  8:35 ` [PATCH 3.4 088/172] ftrace: Fix ftrace enable ordering of sysctl ftrace_enabled lizf
2015-06-16  8:35 ` [PATCH 3.4 089/172] xen-pciback: limit guest control of command register lizf
2015-06-16  8:35 ` [PATCH 3.4 090/172] drm/vmwgfx: Reorder device takedown somewhat lizf
2015-06-16  8:35 ` [PATCH 3.4 091/172] ALSA: control: Add sanity checks for user ctl id name string lizf
2015-06-16  8:35 ` [PATCH 3.4 092/172] ALSA: snd-usb: add quirks for Roland UA-22 lizf
2015-06-16  8:35 ` [PATCH 3.4 093/172] fuse: notify: don't move pages lizf
2015-06-16  8:35 ` [PATCH 3.4 094/172] fuse: set stolen page uptodate lizf
2015-06-16  8:35 ` [PATCH 3.4 095/172] dm: hold suspend_lock while suspending device during device deletion lizf
2015-06-16  8:35 ` [PATCH 3.4 096/172] dm io: deal with wandering queue limits when handling REQ_DISCARD and REQ_WRITE_SAME lizf
2015-06-16  8:35 ` [PATCH 3.4 097/172] mac80211: drop unencrypted frames in mesh fwding lizf
2015-06-16  8:35 ` [PATCH 3.4 098/172] mac80211: set only VO as a U-APSD enabled AC lizf
2015-06-16  8:35 ` [PATCH 3.4 099/172] mac80211: disable u-APSD queues by default lizf
2015-06-16  8:35 ` [PATCH 3.4 100/172] virtio_console: init work unconditionally lizf
2015-06-16  8:35 ` [PATCH 3.4 101/172] virtio_console: avoid config access from irq lizf
2015-06-16  8:35 ` [PATCH 3.4 102/172] x86/vdso: Fix the build on GCC5 lizf
2015-06-16  8:35 ` [PATCH 3.4 103/172] ASoC: sgtl5000: remove useless register write clearing CHRGPUMP_POWERUP lizf
2015-06-16  8:35 ` [PATCH 3.4 104/172] Input: synaptics - query min dimensions for fw v8.1 lizf
2015-06-16  8:35 ` [PATCH 3.4 105/172] Input: synaptics - fix middle button on Lenovo 2015 products lizf
2015-06-16  8:36 ` [PATCH 3.4 106/172] Input: synaptics - handle spurious release of trackstick buttons lizf
2015-06-16  8:36 ` [PATCH 3.4 107/172] vt6655: RFbSetPower fix missing rate RATE_12M lizf
2015-06-16  8:36 ` [PATCH 3.4 108/172] x86/asm/entry/32: Fix user_mode() misuses lizf
2015-06-16  8:36 ` [PATCH 3.4 109/172] ASoC: adav80x: Fix wrong value references for boolean kctl lizf
2015-06-16  8:36 ` [PATCH 3.4 110/172] ASoC: ak4641: " lizf
2015-06-16  8:36 ` [PATCH 3.4 111/172] ASoC: cs4271: " lizf
2015-06-16  8:36 ` [PATCH 3.4 112/172] ASoC: wm2000: " lizf
2015-06-16  8:36 ` [PATCH 3.4 113/172] ASoC: wm8731: " lizf
2015-06-16  8:36 ` [PATCH 3.4 114/172] ASoC: wm8903: " lizf
2015-06-16  8:36 ` [PATCH 3.4 115/172] ASoC: wm8904: " lizf
2015-06-16  8:36 ` [PATCH 3.4 116/172] ASoC: wm8955: " lizf
2015-06-16  8:36 ` [PATCH 3.4 117/172] ASoC: wm8960: " lizf
2015-06-16  8:36 ` [PATCH 3.4 118/172] crypto: aesni - fix memory usage in GCM decryption lizf
2015-06-16  8:36 ` [PATCH 3.4 119/172] nl80211: ignore HT/VHT capabilities without QoS/WMM lizf
2015-06-16  8:36 ` [PATCH 3.4 120/172] IB/mlx4: Saturate RoCE port PMA counters in case of overflow lizf
2015-06-16  8:36 ` [PATCH 3.4 121/172] tcm_fc: missing curly braces in ft_invl_hw_context() lizf
2015-06-16  8:36 ` [PATCH 3.4 122/172] target/pscsi: Fix NULL pointer dereference in get_device_type lizf
2015-06-16  8:36 ` [PATCH 3.4 123/172] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth() lizf
2015-06-16  8:36 ` [PATCH 3.4 124/172] nbd: fix possible memory leak lizf
2015-06-16  8:36 ` [PATCH 3.4 125/172] net: ethernet: pcnet32: Setup the SRAM and NOUFLO on Am79C97{3, 5} lizf
2015-06-16  8:36 ` [PATCH 3.4 126/172] perf: Fix irq_work 'tail' recursion lizf
2015-06-16  8:36 ` [PATCH 3.4 127/172] sched: Fix RLIMIT_RTTIME when PI-boosting to RT lizf
2015-06-16  8:36 ` [PATCH 3.4 128/172] writeback: fix possible underflow in write bandwidth calculation lizf
2015-06-16  8:36 ` [PATCH 3.4 129/172] selinux: fix sel_write_enforce broken return value lizf
2015-06-16  8:36 ` [PATCH 3.4 130/172] hfsplus: fix B-tree corruption after insertion at position 0 lizf
2015-06-16  8:36 ` [PATCH 3.4 131/172] ALSA: hda - Add one more node in the EAPD supporting candidate list lizf
2015-06-16  8:36 ` [PATCH 3.4 132/172] USB: ftdi_sio: Added custom PID for Synapse Wireless product lizf
2015-06-16  8:36 ` [PATCH 3.4 133/172] cifs: fix use-after-free bug in find_writable_file lizf
2015-06-16  8:36 ` [PATCH 3.4 134/172] usb: xhci: handle Config Error Change (CEC) in xhci driver lizf
2015-06-16  8:36 ` [PATCH 3.4 135/172] usb: xhci: apply XHCI_AVOID_BEI quirk to all Intel xHCI controllers lizf
2015-06-16  8:36 ` [PATCH 3.4 136/172] net: use for_each_netdev_safe() in rtnl_group_changelink() lizf
2015-06-16  8:36 ` [PATCH 3.4 137/172] USB: ftdi_sio: Use jtag quirk for SNAP Connect E10 lizf
2015-06-16  8:36 ` [PATCH 3.4 138/172] radeon: Do not directly dereference pointers to BIOS area lizf
2015-06-16  8:36 ` [PATCH 3.4 139/172] x86/reboot: Add ASRock Q1900DC-ITX mainboard reboot quirk lizf
2015-06-16  8:36 ` [PATCH 3.4 140/172] mac80211: fix RX A-MPDU session reorder timer deletion lizf
2015-06-16  8:36 ` [PATCH 3.4 141/172] IB/uverbs: Prevent integer overflow in ib_umem_get address arithmetic lizf
2015-06-16  8:36 ` [PATCH 3.4 142/172] be2iscsi: Fix kernel panic when device initialization fails lizf
2015-06-16  8:36 ` [PATCH 3.4 143/172] Defer processing of REQ_PREEMPT requests for blocked devices lizf
2015-06-16  8:36 ` [PATCH 3.4 144/172] ocfs2: _really_ sync the right range lizf
2015-06-16  8:36 ` [PATCH 3.4 145/172] ALSA: usb - Creative USB X-Fi Pro SB1095 volume knob support lizf
2015-06-16  8:36 ` [PATCH 3.4 146/172] x86/reboot: Fix a warning message triggered by stop_other_cpus() lizf
2015-06-16  8:36 ` [PATCH 3.4 147/172] softirq: reduce latencies lizf
2015-06-16  8:36 ` [PATCH 3.4 148/172] Fix lockup related to stop_machine being stuck in __do_softirq lizf
2015-06-16  8:36 ` [PATCH 3.4 149/172] splice: Apply generic position and size checks to each write lizf
2015-06-16  8:36 ` [PATCH 3.4 150/172] powerpc/mpc85xx: Add ranges to etsec2 nodes lizf
2015-06-16  8:36 ` [PATCH 3.4 151/172] sb_edac: Fix erroneous bytes->gigabytes conversion lizf
2015-06-16  8:36 ` [PATCH 3.4 152/172] spi: spidev: fix possible arithmetic overflow for multi-transfer message lizf
2015-06-16  8:36 ` [PATCH 3.4 153/172] IB/core: Avoid leakage from kernel to user space lizf
2015-06-16  8:36 ` [PATCH 3.4 154/172] hpsa: refine the pci enable/disable handling lizf
2015-06-16  8:36 ` [PATCH 3.4 155/172] hpsa: add missing pci_set_master in kdump path lizf
2015-06-16  8:36 ` [PATCH 3.4 156/172] hpsa: turn off interrupts when kdump starts lizf
2015-06-16  8:36 ` [PATCH 3.4 157/172] hpsa: fix memory leak in kdump hard reset lizf
2015-06-16  8:36 ` [PATCH 3.4 158/172] fs: take i_mutex during prepare_binprm for set[ug]id executables lizf
2015-06-16  8:36 ` [PATCH 3.4 159/172] openvswitch: Check currect return value from skb_gso_segment() lizf
2015-06-16  8:36 ` [PATCH 3.4 160/172] net: make skb_gso_segment error handling more robust lizf
2015-06-16  8:36 ` [PATCH 3.4 161/172] ipvs: uninitialized data with IP_VS_IPV6 lizf
2015-06-16  8:36 ` [PATCH 3.4 162/172] autofs4: check dev ioctl size before allocating lizf
2015-06-16  8:36 ` [PATCH 3.4 163/172] UBI: fix soft lockup in ubi_check_volume() lizf
2015-06-16  8:36 ` [PATCH 3.4 164/172] perf tools: Fix build with perl 5.18 lizf
2015-06-16  8:36 ` [PATCH 3.4 165/172] config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected lizf
2015-06-16  8:37 ` [PATCH 3.4 166/172] PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev lizf
2015-06-16  8:37 ` [PATCH 3.4 167/172] don't bugger nd->seq on set_root_rcu() from follow_dotdot_rcu() lizf
2015-06-16  8:37 ` [PATCH 3.4 168/172] cdc-acm: prevent infinite loop when parsing CDC headers lizf
2015-06-16  8:37 ` [PATCH 3.4 169/172] IB/core: don't disallow registering region starting at 0x0 lizf
2015-06-16  8:37 ` [PATCH 3.4 170/172] writeback: use |1 instead of +1 to protect against div by zero lizf
2015-06-16  8:37 ` [PATCH 3.4 171/172] xen-pciback: Add name prefix to global 'permissive' variable lizf
2015-06-16  8:37 ` [PATCH 3.4 172/172] slub: refactoring unfreeze_partials() lizf
2015-06-16  8:49 ` [PATCH 3.4 000/172] 3.4.108-rc1 review Guenter Roeck
2015-06-18  3:16   ` Zefan Li
2015-06-16  8:58 ` lizf
2015-06-16 15:13 ` Ian Campbell
2015-06-18  3:19   ` Zefan Li
2015-06-18  8:34     ` Ian Campbell

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=1434443826-4929-42-git-send-email-lizf@kernel.org \
    --to=lizf@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=mike.marciniszyn@intel.com \
    --cc=mitko.haralanov@intel.com \
    --cc=roland@purestorage.com \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).