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, Kevin Hao <haokexin@gmail.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 085/191] watchdog: Fix the race between the release of watchdog_core_data and cdev
Date: Thu,  2 Jan 2020 23:06:07 +0100	[thread overview]
Message-ID: <20200102215839.049236795@linuxfoundation.org> (raw)
In-Reply-To: <20200102215829.911231638@linuxfoundation.org>

From: Kevin Hao <haokexin@gmail.com>

[ Upstream commit 72139dfa2464e43957d330266994740bb7be2535 ]

The struct cdev is embedded in the struct watchdog_core_data. In the
current code, we manage the watchdog_core_data with a kref, but the
cdev is manged by a kobject. There is no any relationship between
this kref and kobject. So it is possible that the watchdog_core_data is
freed before the cdev is entirely released. We can easily get the
following call trace with CONFIG_DEBUG_KOBJECT_RELEASE and
CONFIG_DEBUG_OBJECTS_TIMERS enabled.
  ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x38
  WARNING: CPU: 23 PID: 1028 at lib/debugobjects.c:481 debug_print_object+0xb0/0xf0
  Modules linked in: softdog(-) deflate ctr twofish_generic twofish_common camellia_generic serpent_generic blowfish_generic blowfish_common cast5_generic cast_common cmac xcbc af_key sch_fq_codel openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4
  CPU: 23 PID: 1028 Comm: modprobe Not tainted 5.3.0-next-20190924-yoctodev-standard+ #180
  Hardware name: Marvell OcteonTX CN96XX board (DT)
  pstate: 00400009 (nzcv daif +PAN -UAO)
  pc : debug_print_object+0xb0/0xf0
  lr : debug_print_object+0xb0/0xf0
  sp : ffff80001cbcfc70
  x29: ffff80001cbcfc70 x28: ffff800010ea2128
  x27: ffff800010bad000 x26: 0000000000000000
  x25: ffff80001103c640 x24: ffff80001107b268
  x23: ffff800010bad9e8 x22: ffff800010ea2128
  x21: ffff000bc2c62af8 x20: ffff80001103c600
  x19: ffff800010e867d8 x18: 0000000000000060
  x17: 0000000000000000 x16: 0000000000000000
  x15: ffff000bd7240470 x14: 6e6968207473696c
  x13: 5f72656d6974203a x12: 6570797420746365
  x11: 6a626f2029302065 x10: 7461747320657669
  x9 : 7463612820657669 x8 : 3378302f3078302b
  x7 : 0000000000001d7a x6 : ffff800010fd5889
  x5 : 0000000000000000 x4 : 0000000000000000
  x3 : 0000000000000000 x2 : ffff000bff948548
  x1 : 276a1c9e1edc2300 x0 : 0000000000000000
  Call trace:
   debug_print_object+0xb0/0xf0
   debug_check_no_obj_freed+0x1e8/0x210
   kfree+0x1b8/0x368
   watchdog_cdev_unregister+0x88/0xc8
   watchdog_dev_unregister+0x38/0x48
   watchdog_unregister_device+0xa8/0x100
   softdog_exit+0x18/0xfec4 [softdog]
   __arm64_sys_delete_module+0x174/0x200
   el0_svc_handler+0xd0/0x1c8
   el0_svc+0x8/0xc

This is a common issue when using cdev embedded in a struct.
Fortunately, we already have a mechanism to solve this kind of issue.
Please see commit 233ed09d7fda ("chardev: add helper function to
register char devs with a struct device") for more detail.

In this patch, we choose to embed the struct device into the
watchdog_core_data, and use the API provided by the commit 233ed09d7fda
to make sure that the release of watchdog_core_data and cdev are
in sequence.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20191008112934.29669-1-haokexin@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/watchdog/watchdog_dev.c | 70 +++++++++++++++------------------
 1 file changed, 32 insertions(+), 38 deletions(-)

diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
index d3acc0a7256c..62483a99105c 100644
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -34,7 +34,6 @@
 #include <linux/init.h>		/* For __init/__exit/... */
 #include <linux/hrtimer.h>	/* For hrtimers */
 #include <linux/kernel.h>	/* For printk/panic/... */
-#include <linux/kref.h>		/* For data references */
 #include <linux/kthread.h>	/* For kthread_work */
 #include <linux/miscdevice.h>	/* For handling misc devices */
 #include <linux/module.h>	/* For module stuff/... */
@@ -52,14 +51,14 @@
 
 /*
  * struct watchdog_core_data - watchdog core internal data
- * @kref:	Reference count.
+ * @dev:	The watchdog's internal device
  * @cdev:	The watchdog's Character device.
  * @wdd:	Pointer to watchdog device.
  * @lock:	Lock for watchdog core.
  * @status:	Watchdog core internal status bits.
  */
 struct watchdog_core_data {
-	struct kref kref;
+	struct device dev;
 	struct cdev cdev;
 	struct watchdog_device *wdd;
 	struct mutex lock;
@@ -840,7 +839,7 @@ static int watchdog_open(struct inode *inode, struct file *file)
 	file->private_data = wd_data;
 
 	if (!hw_running)
-		kref_get(&wd_data->kref);
+		get_device(&wd_data->dev);
 
 	/*
 	 * open_timeout only applies for the first open from
@@ -861,11 +860,11 @@ out_clear:
 	return err;
 }
 
-static void watchdog_core_data_release(struct kref *kref)
+static void watchdog_core_data_release(struct device *dev)
 {
 	struct watchdog_core_data *wd_data;
 
-	wd_data = container_of(kref, struct watchdog_core_data, kref);
+	wd_data = container_of(dev, struct watchdog_core_data, dev);
 
 	kfree(wd_data);
 }
@@ -925,7 +924,7 @@ done:
 	 */
 	if (!running) {
 		module_put(wd_data->cdev.owner);
-		kref_put(&wd_data->kref, watchdog_core_data_release);
+		put_device(&wd_data->dev);
 	}
 	return 0;
 }
@@ -944,17 +943,22 @@ static struct miscdevice watchdog_miscdev = {
 	.fops		= &watchdog_fops,
 };
 
+static struct class watchdog_class = {
+	.name =		"watchdog",
+	.owner =	THIS_MODULE,
+	.dev_groups =	wdt_groups,
+};
+
 /*
  *	watchdog_cdev_register: register watchdog character device
  *	@wdd: watchdog device
- *	@devno: character device number
  *
  *	Register a watchdog character device including handling the legacy
  *	/dev/watchdog node. /dev/watchdog is actually a miscdevice and
  *	thus we set it up like that.
  */
 
-static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t devno)
+static int watchdog_cdev_register(struct watchdog_device *wdd)
 {
 	struct watchdog_core_data *wd_data;
 	int err;
@@ -962,7 +966,6 @@ static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t devno)
 	wd_data = kzalloc(sizeof(struct watchdog_core_data), GFP_KERNEL);
 	if (!wd_data)
 		return -ENOMEM;
-	kref_init(&wd_data->kref);
 	mutex_init(&wd_data->lock);
 
 	wd_data->wdd = wdd;
@@ -991,23 +994,33 @@ static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t devno)
 		}
 	}
 
+	device_initialize(&wd_data->dev);
+	wd_data->dev.devt = MKDEV(MAJOR(watchdog_devt), wdd->id);
+	wd_data->dev.class = &watchdog_class;
+	wd_data->dev.parent = wdd->parent;
+	wd_data->dev.groups = wdd->groups;
+	wd_data->dev.release = watchdog_core_data_release;
+	dev_set_drvdata(&wd_data->dev, wdd);
+	dev_set_name(&wd_data->dev, "watchdog%d", wdd->id);
+
 	/* Fill in the data structures */
 	cdev_init(&wd_data->cdev, &watchdog_fops);
-	wd_data->cdev.owner = wdd->ops->owner;
 
 	/* Add the device */
-	err = cdev_add(&wd_data->cdev, devno, 1);
+	err = cdev_device_add(&wd_data->cdev, &wd_data->dev);
 	if (err) {
 		pr_err("watchdog%d unable to add device %d:%d\n",
 			wdd->id,  MAJOR(watchdog_devt), wdd->id);
 		if (wdd->id == 0) {
 			misc_deregister(&watchdog_miscdev);
 			old_wd_data = NULL;
-			kref_put(&wd_data->kref, watchdog_core_data_release);
+			put_device(&wd_data->dev);
 		}
 		return err;
 	}
 
+	wd_data->cdev.owner = wdd->ops->owner;
+
 	/* Record time of most recent heartbeat as 'just before now'. */
 	wd_data->last_hw_keepalive = ktime_sub(ktime_get(), 1);
 	watchdog_set_open_deadline(wd_data);
@@ -1018,7 +1031,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t devno)
 	 */
 	if (watchdog_hw_running(wdd)) {
 		__module_get(wdd->ops->owner);
-		kref_get(&wd_data->kref);
+		get_device(&wd_data->dev);
 		if (handle_boot_enabled)
 			hrtimer_start(&wd_data->timer, 0,
 				      HRTIMER_MODE_REL_HARD);
@@ -1042,7 +1055,7 @@ static void watchdog_cdev_unregister(struct watchdog_device *wdd)
 {
 	struct watchdog_core_data *wd_data = wdd->wd_data;
 
-	cdev_del(&wd_data->cdev);
+	cdev_device_del(&wd_data->cdev, &wd_data->dev);
 	if (wdd->id == 0) {
 		misc_deregister(&watchdog_miscdev);
 		old_wd_data = NULL;
@@ -1061,15 +1074,9 @@ static void watchdog_cdev_unregister(struct watchdog_device *wdd)
 	hrtimer_cancel(&wd_data->timer);
 	kthread_cancel_work_sync(&wd_data->work);
 
-	kref_put(&wd_data->kref, watchdog_core_data_release);
+	put_device(&wd_data->dev);
 }
 
-static struct class watchdog_class = {
-	.name =		"watchdog",
-	.owner =	THIS_MODULE,
-	.dev_groups =	wdt_groups,
-};
-
 static int watchdog_reboot_notifier(struct notifier_block *nb,
 				    unsigned long code, void *data)
 {
@@ -1100,27 +1107,14 @@ static int watchdog_reboot_notifier(struct notifier_block *nb,
 
 int watchdog_dev_register(struct watchdog_device *wdd)
 {
-	struct device *dev;
-	dev_t devno;
 	int ret;
 
-	devno = MKDEV(MAJOR(watchdog_devt), wdd->id);
-
-	ret = watchdog_cdev_register(wdd, devno);
+	ret = watchdog_cdev_register(wdd);
 	if (ret)
 		return ret;
 
-	dev = device_create_with_groups(&watchdog_class, wdd->parent,
-					devno, wdd, wdd->groups,
-					"watchdog%d", wdd->id);
-	if (IS_ERR(dev)) {
-		watchdog_cdev_unregister(wdd);
-		return PTR_ERR(dev);
-	}
-
 	ret = watchdog_register_pretimeout(wdd);
 	if (ret) {
-		device_destroy(&watchdog_class, devno);
 		watchdog_cdev_unregister(wdd);
 		return ret;
 	}
@@ -1128,7 +1122,8 @@ int watchdog_dev_register(struct watchdog_device *wdd)
 	if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status)) {
 		wdd->reboot_nb.notifier_call = watchdog_reboot_notifier;
 
-		ret = devm_register_reboot_notifier(dev, &wdd->reboot_nb);
+		ret = devm_register_reboot_notifier(&wdd->wd_data->dev,
+						    &wdd->reboot_nb);
 		if (ret) {
 			pr_err("watchdog%d: Cannot register reboot notifier (%d)\n",
 			       wdd->id, ret);
@@ -1150,7 +1145,6 @@ int watchdog_dev_register(struct watchdog_device *wdd)
 void watchdog_dev_unregister(struct watchdog_device *wdd)
 {
 	watchdog_unregister_pretimeout(wdd);
-	device_destroy(&watchdog_class, wdd->wd_data->cdev.dev);
 	watchdog_cdev_unregister(wdd);
 }
 
-- 
2.20.1




  parent reply	other threads:[~2020-01-02 22:15 UTC|newest]

Thread overview: 231+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-02 22:04 [PATCH 5.4 000/191] 5.4.8-stable review Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 001/191] Revert "MIPS: futex: Restore \n after sync instructions" Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 002/191] Revert "MIPS: futex: Emit Loongson3 sync workarounds within asm" Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 003/191] scsi: lpfc: Fix spinlock_irq issues in lpfc_els_flush_cmd() Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 004/191] scsi: lpfc: Fix discovery failures when target device connectivity bounces Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 005/191] scsi: mpt3sas: Fix clear pending bit in ioctl status Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 006/191] scsi: lpfc: Fix locking on mailbox command completion Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 007/191] scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 008/191] gpio: mxc: Only get the second IRQ when there is more than one IRQ Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 009/191] scsi: lpfc: Fix list corruption in lpfc_sli_get_iocbq Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 010/191] Input: atmel_mxt_ts - disable IRQ across suspend Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 011/191] f2fs: fix to update time in lazytime mode Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 012/191] powerpc/papr_scm: Fix an off-by-one check in papr_scm_meta_{get, set} Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 013/191] tools/power/x86/intel-speed-select: Remove warning for unused result Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 014/191] platform/x86: peaq-wmi: switch to using polled mode of input devices Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 015/191] iommu: rockchip: Free domain on .domain_free Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 016/191] iommu/tegra-smmu: Fix page tables in > 4 GiB memory Greg Kroah-Hartman
2020-01-02 22:04 ` [PATCH 5.4 017/191] dmaengine: xilinx_dma: Clear desc_pendingcount in xilinx_dma_reset Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 018/191] scsi: target: compare full CHAP_A Algorithm strings Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 019/191] scsi: lpfc: Fix hardlockup in lpfc_abort_handler Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 020/191] scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 021/191] scsi: csiostor: Dont enable IRQs too early Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 022/191] scsi: hisi_sas: Replace in_softirq() check in hisi_sas_task_exec() Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 023/191] scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the probe fails Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 024/191] powerpc/pseries: Mark accumulate_stolen_time() as notrace Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 025/191] powerpc/pseries: Dont fail hash page table insert for bolted mapping Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 026/191] Input: st1232 - do not reset the chip too early Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 027/191] selftests/powerpc: Fixup clobbers for TM tests Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 028/191] powerpc/tools: Dont quote $objdump in scripts Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 029/191] dma-debug: add a schedule point in debug_dma_dump_mappings() Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 030/191] dma-mapping: Add vmap checks to dma_map_single() Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 031/191] dma-mapping: fix handling of dma-ranges for reserved memory (again) Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 032/191] dmaengine: fsl-qdma: Handle invalid qdma-queue0 IRQ Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 033/191] leds: lm3692x: Handle failure to probe the regulator Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 034/191] leds: an30259a: add a check for devm_regmap_init_i2c Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 035/191] leds: trigger: netdev: fix handling on interface rename Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 036/191] clocksource/drivers/asm9260: Add a check for of_clk_get Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 037/191] clocksource/drivers/timer-of: Use unique device name instead of timer Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 038/191] dtc: Use pkg-config to locate libyaml Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 039/191] selftests/powerpc: Skip tm-signal-sigreturn-nt if TM not available Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 040/191] powerpc/security/book3s64: Report L1TF status in sysfs Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 041/191] powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 042/191] ext4: update direct I/O read lock pattern for IOCB_NOWAIT Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 043/191] ext4: iomap that extends beyond EOF should be marked dirty Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 044/191] jbd2: Fix statistics for the number of logged blocks Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 045/191] scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6) Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 046/191] scsi: lpfc: Fix unexpected error messages during RSCN handling Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 047/191] scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 048/191] f2fs: fix to update dirs i_pino during cross_rename Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 049/191] clk: qcom: smd: Add missing pnoc clock Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 050/191] clk: qcom: Allow constant ratio freq tables for rcg Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 051/191] clk: clk-gpio: propagate rate change to parent Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 052/191] irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 053/191] irqchip: ingenic: Error out if IRQ domain creation failed Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 054/191] dma-direct: check for overflows on 32 bit DMA addresses Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 055/191] mfd: mfd-core: Honour Device Trees request to disable a child-device Greg Kroah-Hartman
2020-01-03 10:23   ` Stephan Gerhold
2020-01-04 12:31     ` Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 056/191] fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 057/191] iommu/arm-smmu-v3: Dont display an error when IRQ lines are missing Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 058/191] i2c: stm32f7: fix & reorder remove & probe error handling Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 059/191] iomap: fix return value of iomap_dio_bio_actor on 32bit systems Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 060/191] Input: ili210x - handle errors from input_mt_init_slots() Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 061/191] scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 062/191] scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on Fastlane) Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 063/191] PCI: rpaphp: Fix up pointer to first drc-info entry Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 064/191] scsi: ufs: fix potential bug which ends in system hang Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 065/191] powerpc/pseries/cmm: Implement release() function for sysfs device Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 066/191] PCI: rpaphp: Dont rely on firmware feature to imply drc-info support Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 067/191] PCI: rpaphp: Annotate and correctly byte swap DRC properties Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 068/191] PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name when using drc-info Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 069/191] powerpc/security: Fix wrong message when RFI Flush is disable Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 070/191] powerpc/eeh: differentiate duplicate detection message Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 071/191] powerpc/book3s/mm: Update Oops message to print the correct translation in use Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 072/191] scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 073/191] clk: pxa: fix one of the pxa RTC clocks Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 074/191] bcache: at least try to shrink 1 node in bch_mca_scan() Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 075/191] HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 076/191] dt-bindings: Improve validation build error handling Greg Kroah-Hartman
2020-01-02 22:05 ` [PATCH 5.4 077/191] HID: logitech-hidpp: Silence intermittent get_battery_capacity errors Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 078/191] HID: i2c-hid: fix no irq after reset on raydium 3118 Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 079/191] ARM: 8937/1: spectre-v2: remove Brahma-B53 from hardening Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 080/191] libnvdimm/btt: fix variable rc set but not used Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 081/191] HID: Improve Windows Precision Touchpad detection Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 082/191] HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI transport device Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 083/191] watchdog: imx7ulp: Fix reboot hang Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 084/191] watchdog: prevent deferral of watchdogd wakeup on RT Greg Kroah-Hartman
2020-01-02 22:06 ` Greg Kroah-Hartman [this message]
2020-01-02 22:06 ` [PATCH 5.4 086/191] powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt() Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 087/191] scsi: pm80xx: Fix for SATA device discovery Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 088/191] scsi: ufs: Fix error handing during hibern8 enter Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 089/191] scsi: scsi_debug: num_tgts must be >= 0 Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 090/191] scsi: NCR5380: Add disconnect_mask module parameter Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 091/191] scsi: target: core: Release SPC-2 reservations when closing a session Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 092/191] scsi: ufs: Fix up auto hibern8 enablement Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 093/191] scsi: iscsi: Dont send data to unbound connection Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 094/191] scsi: target: iscsi: Wait for all commands to finish before freeing a session Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 095/191] f2fs: Fix deadlock in f2fs_gc() context during atomic files handling Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 096/191] habanalabs: skip VA block list update in reset flow Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 097/191] gpio/mpc8xxx: fix qoriq GPIO reading Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 098/191] platform/x86: intel_pmc_core: Fix the SoC naming inconsistency Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 099/191] platform/x86: intel_pmc_core: Add Comet Lake (CML) platform support to intel_pmc_core driver Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 100/191] gpio: mpc8xxx: Dont overwrite default irq_set_type callback Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 101/191] gpio: lynxpoint: Setup correct IRQ handlers Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 102/191] tools/power/x86/intel-speed-select: Ignore missing config level Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 103/191] Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 104/191] apparmor: fix unsigned len comparison with less than zero Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 105/191] drm/amdgpu: Call find_vma under mmap_sem Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 106/191] scripts/kallsyms: fix definitely-lost memory leak Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 107/191] powerpc: Dont add -mabi= flags when building with Clang Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 108/191] f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project() Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 109/191] cifs: Fix use-after-free bug in cifs_reconnect() Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 110/191] um: virtio: Keep reading on -EAGAIN Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 111/191] io_uring: io_allocate_scq_urings() should return a sane state Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 112/191] of: unittest: fix memory leak in attach_node_and_children Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 113/191] cdrom: respect device capabilities during opening action Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 114/191] cifs: move cifsFileInfo_put logic into a work-queue Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 115/191] perf diff: Use llabs() with 64-bit values Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 116/191] perf script: Fix brstackinsn for AUXTRACE Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 117/191] perf regs: Make perf_reg_name() return "unknown" instead of NULL Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 118/191] s390/zcrypt: handle new reply code FILTERED_BY_HYPERVISOR Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 119/191] mailbox: imx: Clear the right interrupts at shutdown Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 120/191] libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 121/191] s390/unwind: filter out unreliable bogus %r14 Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 122/191] s390/cpum_sf: Check for SDBT and SDB consistency Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 123/191] ocfs2: fix passing zero to PTR_ERR warning Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 124/191] mailbox: imx: Fix Tx doorbell shutdown path Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 125/191] s390: disable preemption when switching to nodat stack with CALL_ON_STACK Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 126/191] selftests: vm: add fragment CONFIG_TEST_VMALLOC Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 127/191] mm/hugetlbfs: fix error handling when setting up mounts Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 128/191] kernel: sysctl: make drop_caches write-only Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 129/191] userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 130/191] Revert "powerpc/vcpu: Assume dedicated processors as non-preempt" Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 131/191] sctp: fix err handling of stream initialization Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 132/191] md: make sure desc_nr less than MD_SB_DISKS Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 133/191] Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection" Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 134/191] netfilter: ebtables: compat: reject all padding in matches/watchers Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 135/191] 6pack,mkiss: fix possible deadlock Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 136/191] powerpc: Fix __clear_user() with KUAP enabled Greg Kroah-Hartman
2020-01-02 22:06 ` [PATCH 5.4 137/191] net/smc: add fallback check to connect() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 138/191] netfilter: bridge: make sure to pull arp header in br_nf_forward_arp() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 139/191] inetpeer: fix data-race in inet_putpeer / inet_putpeer Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 140/191] net: add a READ_ONCE() in skb_peek_tail() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 141/191] net: icmp: fix data-race in cmp_global_allow() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 142/191] hrtimer: Annotate lockless access to timer->state Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 143/191] tomoyo: Dont use nifty names on sockets Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 144/191] uaccess: disallow > INT_MAX copy sizes Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 145/191] drm: limit to INT_MAX in create_blob ioctl Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 146/191] xfs: fix mount failure crash on invalid iclog memory access Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 147/191] cxgb4/cxgb4vf: fix flow control display for auto negotiation Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 148/191] net: dsa: bcm_sf2: Fix IP fragment location and behavior Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 149/191] net/mlxfw: Fix out-of-memory error in mfa2 flash burning Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 150/191] net: phy: aquantia: add suspend / resume ops for AQR105 Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 151/191] net/sched: act_mirred: Pull mac prior redir to non mac_header_xmit device Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 152/191] net/sched: add delete_empty() to filters and use it in cls_flower Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 153/191] net_sched: sch_fq: properly set sk->sk_pacing_status Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 154/191] net: stmmac: dwmac-meson8b: Fix the RGMII TX delay on Meson8b/8m2 SoCs Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 155/191] ptp: fix the race between the release of ptp_clock and cdev Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 156/191] tcp: Fix highest_sack and highest_sack_seq Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 157/191] udp: fix integer overflow while computing available space in sk_rcvbuf Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 158/191] bnxt_en: Fix MSIX request logic for RDMA driver Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 159/191] bnxt_en: Free context memory in the open path if firmware has been reset Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 160/191] bnxt_en: Return error if FW returns more data than dump length Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 161/191] bnxt_en: Fix bp->fw_health allocation and free logic Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 162/191] bnxt_en: Remove unnecessary NULL checks for fw_health Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 163/191] bnxt_en: Fix the logic that creates the health reporters Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 164/191] bnxt_en: Add missing devlink health reporters for VFs Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 165/191] mlxsw: spectrum_router: Skip loopback RIFs during MAC validation Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 166/191] mlxsw: spectrum: Use dedicated policer for VRRP packets Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 167/191] net: add bool confirm_neigh parameter for dst_ops.update_pmtu Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 168/191] ip6_gre: do not confirm neighbor when do pmtu update Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 169/191] gtp: " Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 170/191] net/dst: add new function skb_dst_update_pmtu_no_confirm Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 171/191] tunnel: do not confirm neighbor when do pmtu update Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 172/191] vti: " Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 173/191] sit: " Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 174/191] net/dst: do not confirm neighbor for vxlan and geneve " Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 175/191] net: dsa: sja1105: Reconcile the meaning of TPID and TPID2 for E/T and P/Q/R/S Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 176/191] net: marvell: mvpp2: phylink requires the link interrupt Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 177/191] gtp: fix wrong condition in gtp_genl_dump_pdp() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 178/191] gtp: avoid zero size hashtable Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 179/191] bonding: fix active-backup transition after link failure Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 180/191] tcp: do not send empty skb from tcp_write_xmit() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 181/191] tcp/dccp: fix possible race __inet_lookup_established() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 182/191] hv_netvsc: Fix tx_table init in rndis_set_subchannel() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 183/191] gtp: fix an use-after-free in ipv4_pdp_find() Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 184/191] gtp: do not allow adding duplicate tid and ms_addr pdp context Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 185/191] bnxt: apply computed clamp value for coalece parameter Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 186/191] ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is set Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 187/191] net: phylink: fix interface passed to mac_link_up Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 188/191] net: ena: fix napi handler misbehavior when the napi budget is zero Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 189/191] vhost/vsock: accept only packets with the right dst_cid Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 190/191] mmc: sdhci-of-esdhc: fix up erratum A-008171 workaround Greg Kroah-Hartman
2020-01-02 22:07 ` [PATCH 5.4 191/191] mmc: sdhci-of-esdhc: re-implement erratum A-009204 workaround Greg Kroah-Hartman
2020-01-03 13:29 ` [PATCH 5.4 000/191] 5.4.8-stable review Jeffrin Jose
2020-01-03 14:21 ` Guenter Roeck
2020-01-03 15:03 ` Naresh Kamboju
2020-01-03 15:03   ` [LTP] " Naresh Kamboju
2020-01-03 15:25   ` Arnd Bergmann
2020-01-03 15:25     ` [LTP] " Arnd Bergmann
2020-01-03 15:29     ` Arnd Bergmann
2020-01-03 15:29       ` [LTP] " Arnd Bergmann
2020-01-03 15:45       ` Greg Kroah-Hartman
2020-01-03 15:45         ` [LTP] " Greg Kroah-Hartman
2020-01-03 15:56         ` Arnd Bergmann
2020-01-03 15:56           ` [LTP] " Arnd Bergmann
2020-01-03 17:33           ` Mike Kravetz
2020-01-03 17:33             ` [LTP] " Mike Kravetz
2020-01-03 17:56             ` Mike Kravetz
2020-01-03 17:56               ` [LTP] " Mike Kravetz
2020-01-03 18:40               ` Linus Torvalds
2020-01-03 18:40                 ` [LTP] " Linus Torvalds
2020-01-03 19:11                 ` Thomas Backlund
2020-01-03 19:11                   ` [LTP] " Thomas Backlund
2020-01-03 19:23                   ` Linus Torvalds
2020-01-03 19:23                     ` [LTP] " Linus Torvalds
2020-01-03 22:15                     ` Thomas Backlund
2020-01-03 22:15                       ` [LTP] " Thomas Backlund
2020-01-06  9:03                 ` Naresh Kamboju
2020-01-06  9:03                   ` [LTP] " Naresh Kamboju
2020-01-04  9:06               ` Greg Kroah-Hartman
2020-01-04  9:06                 ` [LTP] " Greg Kroah-Hartman
2020-01-03 15:48       ` Guenter Roeck
2020-01-03 15:48         ` [LTP] " Guenter Roeck
2020-01-03 16:30         ` Greg Kroah-Hartman
2020-01-03 16:30           ` [LTP] " Greg Kroah-Hartman
2020-01-03 17:51 ` Jon Hunter
2020-01-03 17:51   ` Jon Hunter
2020-01-04  9:21   ` Greg Kroah-Hartman
2020-01-03 21:48 ` shuah
2020-01-04  9:20   ` Greg Kroah-Hartman

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=20200102215839.049236795@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=haokexin@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=wim@linux-watchdog.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 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.