From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Krzysztof Kozlowski <k.kozlowski@samsung.com>,
Sebastian Reichel <sre@kernel.org>
Subject: [PATCH 3.17 095/141] power: charger-manager: Fix accessing invalidated power supply after fuel gauge unbind
Date: Wed, 19 Nov 2014 12:51:58 -0800 [thread overview]
Message-ID: <20141119205153.760350911@linuxfoundation.org> (raw)
In-Reply-To: <20141119205150.700188369@linuxfoundation.org>
3.17-stable review patch. If anyone has any objections, please let me know.
------------------
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
commit bdbe81445407644492b9ac69a24d35e3202d773b upstream.
The charger manager obtained reference to fuel gauge power supply in probe
with power_supply_get_by_name() for later usage. However if fuel gauge
driver was removed and re-added then this reference would point to old
power supply (from driver which was removed).
This lead to accessing old (and probably invalid) memory which could be
observed with:
$ echo "12-0036" > /sys/bus/i2c/drivers/max17042/unbind
$ echo "12-0036" > /sys/bus/i2c/drivers/max17042/bind
$ cat /sys/devices/virtual/power_supply/battery/capacity
[ 240.480084] INFO: task cat:1393 blocked for more than 120 seconds.
[ 240.484799] Not tainted 3.17.0-next-20141007-00028-ge60b6dd79570 #203
[ 240.491782] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 240.499589] cat D c0469530 0 1393 1 0x00000000
[ 240.505947] [<c0469530>] (__schedule) from [<c0469d3c>] (schedule_preempt_disabled+0x14/0x20)
[ 240.514449] [<c0469d3c>] (schedule_preempt_disabled) from [<c046af08>] (mutex_lock_nested+0x1bc/0x458)
[ 240.523736] [<c046af08>] (mutex_lock_nested) from [<c0287a98>] (regmap_read+0x30/0x60)
[ 240.531647] [<c0287a98>] (regmap_read) from [<c032238c>] (max17042_get_property+0x2e8/0x350)
[ 240.540055] [<c032238c>] (max17042_get_property) from [<c03247d8>] (charger_get_property+0x264/0x348)
[ 240.549252] [<c03247d8>] (charger_get_property) from [<c0320764>] (power_supply_show_property+0x48/0x1e0)
[ 240.558808] [<c0320764>] (power_supply_show_property) from [<c027308c>] (dev_attr_show+0x1c/0x48)
[ 240.567664] [<c027308c>] (dev_attr_show) from [<c0141fb0>] (sysfs_kf_seq_show+0x84/0x104)
[ 240.575814] [<c0141fb0>] (sysfs_kf_seq_show) from [<c0140b18>] (kernfs_seq_show+0x24/0x28)
[ 240.584061] [<c0140b18>] (kernfs_seq_show) from [<c0104574>] (seq_read+0x1b0/0x484)
[ 240.591702] [<c0104574>] (seq_read) from [<c00e1e24>] (vfs_read+0x88/0x144)
[ 240.598640] [<c00e1e24>] (vfs_read) from [<c00e1f20>] (SyS_read+0x40/0x8c)
[ 240.605507] [<c00e1f20>] (SyS_read) from [<c000e760>] (ret_fast_syscall+0x0/0x48)
[ 240.612952] 4 locks held by cat/1393:
[ 240.616589] #0: (&p->lock){+.+.+.}, at: [<c01043f4>] seq_read+0x30/0x484
[ 240.623414] #1: (&of->mutex){+.+.+.}, at: [<c01417dc>] kernfs_seq_start+0x1c/0x8c
[ 240.631086] #2: (s_active#31){++++.+}, at: [<c01417e4>] kernfs_seq_start+0x24/0x8c
[ 240.638777] #3: (&map->mutex){+.+...}, at: [<c0287a98>] regmap_read+0x30/0x60
The charger-manager should get reference to fuel gauge power supply on
each use of get_property callback. The thermal zone 'tzd' field of
power supply should not be used because of the same reason.
Additionally this change solves also the issue with nested
thermal_zone_get_temp() calls and related false lockdep positive for
deadlock for thermal zone's mutex [1]. When fuel gauge is used as source of
temperature then the charger manager forwards its get_temp calls to fuel
gauge thermal zone. So actually different mutexes are used (one for
charger manager thermal zone and second for fuel gauge thermal zone) but
for lockdep this is one class of mutex.
The recursion is removed by retrieving temperature through power
supply's get_property().
In case external thermal zone is used ('cm-thermal-zone' property is
present in DTS) the recursion does not exist. Charger manager simply
exports POWER_SUPPLY_PROP_TEMP_AMBIENT property (instead of
POWER_SUPPLY_PROP_TEMP) thus no thermal zone is created for this power
supply.
[1] https://lkml.org/lkml/2014/10/6/309
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: 3bb3dbbd56ea ("power_supply: Add initial Charger-Manager driver")
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/power/charger-manager.c | 99 ++++++++++++++++++++++++----------
include/linux/power/charger-manager.h | 1
2 files changed, 71 insertions(+), 29 deletions(-)
--- a/drivers/power/charger-manager.c
+++ b/drivers/power/charger-manager.c
@@ -97,6 +97,7 @@ static struct charger_global_desc *g_des
static bool is_batt_present(struct charger_manager *cm)
{
union power_supply_propval val;
+ struct power_supply *psy;
bool present = false;
int i, ret;
@@ -107,7 +108,11 @@ static bool is_batt_present(struct charg
case CM_NO_BATTERY:
break;
case CM_FUEL_GAUGE:
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ psy = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!psy)
+ break;
+
+ ret = psy->get_property(psy,
POWER_SUPPLY_PROP_PRESENT, &val);
if (ret == 0 && val.intval)
present = true;
@@ -167,12 +172,14 @@ static bool is_ext_pwr_online(struct cha
static int get_batt_uV(struct charger_manager *cm, int *uV)
{
union power_supply_propval val;
+ struct power_supply *fuel_gauge;
int ret;
- if (!cm->fuel_gauge)
+ fuel_gauge = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge)
return -ENODEV;
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_VOLTAGE_NOW, &val);
if (ret)
return ret;
@@ -248,6 +255,7 @@ static bool is_full_charged(struct charg
{
struct charger_desc *desc = cm->desc;
union power_supply_propval val;
+ struct power_supply *fuel_gauge;
int ret = 0;
int uV;
@@ -255,11 +263,15 @@ static bool is_full_charged(struct charg
if (!is_batt_present(cm))
return false;
- if (cm->fuel_gauge && desc->fullbatt_full_capacity > 0) {
+ fuel_gauge = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge)
+ return false;
+
+ if (desc->fullbatt_full_capacity > 0) {
val.intval = 0;
/* Not full if capacity of fuel gauge isn't full */
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CHARGE_FULL, &val);
if (!ret && val.intval > desc->fullbatt_full_capacity)
return true;
@@ -273,10 +285,10 @@ static bool is_full_charged(struct charg
}
/* Full, if the capacity is more than fullbatt_soc */
- if (cm->fuel_gauge && desc->fullbatt_soc > 0) {
+ if (desc->fullbatt_soc > 0) {
val.intval = 0;
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CAPACITY, &val);
if (!ret && val.intval >= desc->fullbatt_soc)
return true;
@@ -551,6 +563,20 @@ static int check_charging_duration(struc
return ret;
}
+static int cm_get_battery_temperature_by_psy(struct charger_manager *cm,
+ int *temp)
+{
+ struct power_supply *fuel_gauge;
+
+ fuel_gauge = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge)
+ return -ENODEV;
+
+ return fuel_gauge->get_property(fuel_gauge,
+ POWER_SUPPLY_PROP_TEMP,
+ (union power_supply_propval *)temp);
+}
+
static int cm_get_battery_temperature(struct charger_manager *cm,
int *temp)
{
@@ -560,15 +586,18 @@ static int cm_get_battery_temperature(st
return -ENODEV;
#ifdef CONFIG_THERMAL
- ret = thermal_zone_get_temp(cm->tzd_batt, (unsigned long *)temp);
- if (!ret)
- /* Calibrate temperature unit */
- *temp /= 100;
-#else
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
- POWER_SUPPLY_PROP_TEMP,
- (union power_supply_propval *)temp);
+ if (cm->tzd_batt) {
+ ret = thermal_zone_get_temp(cm->tzd_batt, (unsigned long *)temp);
+ if (!ret)
+ /* Calibrate temperature unit */
+ *temp /= 100;
+ } else
#endif
+ {
+ /* if-else continued from CONFIG_THERMAL */
+ ret = cm_get_battery_temperature_by_psy(cm, temp);
+ }
+
return ret;
}
@@ -827,6 +856,7 @@ static int charger_get_property(struct p
struct charger_manager *cm = container_of(psy,
struct charger_manager, charger_psy);
struct charger_desc *desc = cm->desc;
+ struct power_supply *fuel_gauge;
int ret = 0;
int uV;
@@ -857,14 +887,20 @@ static int charger_get_property(struct p
ret = get_batt_uV(cm, &val->intval);
break;
case POWER_SUPPLY_PROP_CURRENT_NOW:
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ fuel_gauge = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge) {
+ ret = -ENODEV;
+ break;
+ }
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CURRENT_NOW, val);
break;
case POWER_SUPPLY_PROP_TEMP:
case POWER_SUPPLY_PROP_TEMP_AMBIENT:
return cm_get_battery_temperature(cm, &val->intval);
case POWER_SUPPLY_PROP_CAPACITY:
- if (!cm->fuel_gauge) {
+ fuel_gauge = power_supply_get_by_name(cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge) {
ret = -ENODEV;
break;
}
@@ -875,7 +911,7 @@ static int charger_get_property(struct p
break;
}
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CAPACITY, val);
if (ret)
break;
@@ -924,7 +960,14 @@ static int charger_get_property(struct p
break;
case POWER_SUPPLY_PROP_CHARGE_NOW:
if (is_charging(cm)) {
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ fuel_gauge = power_supply_get_by_name(
+ cm->desc->psy_fuel_gauge);
+ if (!fuel_gauge) {
+ ret = -ENODEV;
+ break;
+ }
+
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CHARGE_NOW,
val);
if (ret) {
@@ -1485,14 +1528,15 @@ err:
return ret;
}
-static int cm_init_thermal_data(struct charger_manager *cm)
+static int cm_init_thermal_data(struct charger_manager *cm,
+ struct power_supply *fuel_gauge)
{
struct charger_desc *desc = cm->desc;
union power_supply_propval val;
int ret;
/* Verify whether fuel gauge provides battery temperature */
- ret = cm->fuel_gauge->get_property(cm->fuel_gauge,
+ ret = fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_TEMP, &val);
if (!ret) {
@@ -1502,8 +1546,6 @@ static int cm_init_thermal_data(struct c
cm->desc->measure_battery_temp = true;
}
#ifdef CONFIG_THERMAL
- cm->tzd_batt = cm->fuel_gauge->tzd;
-
if (ret && desc->thermal_zone) {
cm->tzd_batt =
thermal_zone_get_zone_by_name(desc->thermal_zone);
@@ -1666,6 +1708,7 @@ static int charger_manager_probe(struct
int ret = 0, i = 0;
int j = 0;
union power_supply_propval val;
+ struct power_supply *fuel_gauge;
if (g_desc && !rtc_dev && g_desc->rtc_name) {
rtc_dev = rtc_class_open(g_desc->rtc_name);
@@ -1744,8 +1787,8 @@ static int charger_manager_probe(struct
}
}
- cm->fuel_gauge = power_supply_get_by_name(desc->psy_fuel_gauge);
- if (!cm->fuel_gauge) {
+ fuel_gauge = power_supply_get_by_name(desc->psy_fuel_gauge);
+ if (!fuel_gauge) {
dev_err(&pdev->dev, "Cannot find power supply \"%s\"\n",
desc->psy_fuel_gauge);
return -ENODEV;
@@ -1788,13 +1831,13 @@ static int charger_manager_probe(struct
cm->charger_psy.num_properties = psy_default.num_properties;
/* Find which optional psy-properties are available */
- if (!cm->fuel_gauge->get_property(cm->fuel_gauge,
+ if (!fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CHARGE_NOW, &val)) {
cm->charger_psy.properties[cm->charger_psy.num_properties] =
POWER_SUPPLY_PROP_CHARGE_NOW;
cm->charger_psy.num_properties++;
}
- if (!cm->fuel_gauge->get_property(cm->fuel_gauge,
+ if (!fuel_gauge->get_property(fuel_gauge,
POWER_SUPPLY_PROP_CURRENT_NOW,
&val)) {
cm->charger_psy.properties[cm->charger_psy.num_properties] =
@@ -1802,7 +1845,7 @@ static int charger_manager_probe(struct
cm->charger_psy.num_properties++;
}
- ret = cm_init_thermal_data(cm);
+ ret = cm_init_thermal_data(cm, fuel_gauge);
if (ret) {
dev_err(&pdev->dev, "Failed to initialize thermal data\n");
cm->desc->measure_battery_temp = false;
--- a/include/linux/power/charger-manager.h
+++ b/include/linux/power/charger-manager.h
@@ -253,7 +253,6 @@ struct charger_manager {
struct device *dev;
struct charger_desc *desc;
- struct power_supply *fuel_gauge;
struct power_supply **charger_stat;
#ifdef CONFIG_THERMAL
next prev parent reply other threads:[~2014-11-19 20:51 UTC|newest]
Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-19 20:50 [PATCH 3.17 000/141] 3.17.4-stable review Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 001/141] x86/build: Add arch/x86/purgatory/ make generated files to gitignore Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 002/141] inet: frags: fix a race between inet_evict_bucket and inet_frag_kill Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 003/141] inet: frags: remove the WARN_ON from inet_evict_bucket Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 004/141] ip6_tunnel: Use ip6_tnl_dev_init as the ndo_init function Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 005/141] vti6: Use vti6_dev_init " Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 006/141] sit: Use ipip6_tunnel_init " Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 007/141] gre6: Move the setting of dev->iflink into the ndo_init functions Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 008/141] net: mv643xx_eth: reclaim TX skbs only when released by the HW Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 009/141] udptunnel: Add SKB_GSO_UDP_TUNNEL during gro_complete Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 010/141] vxlan: Do not reuse sockets for a different address family Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 011/141] net: ppp: Dont call bpf_prog_create() in ppp_lock Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 012/141] net: sctp: fix NULL pointer dereference in af->from_addr_param on malformed packet Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 013/141] net: sctp: fix memory leak in auth key management Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 014/141] ipv6: fix IPV6_PKTINFO with v4 mapped Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 015/141] net: ptp: fix time stamp matching logic for VLAN packets Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 016/141] netlink: Properly unbind in error conditions Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 017/141] smsc911x: power-up phydev before doing a software reset Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 018/141] sunvdc: add cdrom and v1.1 protocol support Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 019/141] sunvdc: compute vdisk geometry from capacity Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 020/141] sunvdc: limit each sg segment to a page Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 021/141] vio: fix reuse of vio_dring slot Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 022/141] sunvdc: dont call VD_OP_GET_VTOC Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 023/141] sparc64: Fix crashes in schizo_pcierr_intr_other() Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 024/141] sparc64: Do irq_{enter,exit}() around generic_smp_call_function*() Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 025/141] sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 026/141] zram: avoid kunmap_atomic() of a NULL pointer Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 027/141] mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 028/141] mm/page_alloc: add freepage on isolate pageblock to correct buddy list Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 029/141] mm/page_alloc: move freepage counting logic to __free_one_page() Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 030/141] mm/page_alloc: restrict max order of merging on isolated pageblock Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 031/141] crypto: caam - fix missing dma unmap on error path Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 032/141] crypto: qat - Prevent dma mapping zero length assoc data Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 033/141] crypto: qat - Enforce valid numa configuration Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 034/141] crypto: caam - remove duplicated sg copy functions Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 035/141] mfd: twl4030-power: Fix poweroff with PM configuration enabled Greg Kroah-Hartman
2014-11-19 20:50 ` [PATCH 3.17 036/141] mfd: max77693: Use proper regmap for handling MUIC interrupts Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 037/141] mfd: max77693: Fix always masked " Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 038/141] hwrng: pseries - port to new read API and fix stack corruption Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 039/141] mem-hotplug: reset node managed pages when hot-adding a new pgdat Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 040/141] mem-hotplug: reset node present " Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 041/141] KVM: x86: Fix uninitialized op->type for some immediate values Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 042/141] tun: Fix csum_start with VLAN acceleration Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 043/141] x86, x32, audit: Fix x32s AUDIT_ARCH wrt audit Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 044/141] audit: correct AUDIT_GET_FEATURE return message type Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 045/141] audit: AUDIT_FEATURE_CHANGE message format missing delimiting space Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 046/141] audit: keep inode pinned Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 047/141] tracing: Do not busy wait in buffer splice Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 048/141] param: fix crash on bad kernel arguments Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 049/141] ahci: Add Device IDs for Intel Sunrise Point PCH Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 050/141] ahci: fix AHCI parameters not taken into account Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 051/141] ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 052/141] ALSA: hda - Add mute LED control for Lenovo Ideapad Z560 Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 053/141] ALSA: usb-audio: Fix memory leak in FTU quirk Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 054/141] xtensa: re-wire umount syscall to sys_oldumount Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 055/141] libceph: do not crash on large auth tickets Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 056/141] macvtap: Fix csum_start when VLAN tags are present Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 057/141] mac80211_hwsim: release driver when ieee80211_register_hw fails Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 058/141] mac80211: properly flush delayed scan work on interface removal Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 059/141] mac80211: use secondary channel offset IE also beacons during CSA Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 060/141] mac80211: schedule the actual switch of the station before CSA count 0 Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 061/141] mac80211: fix use-after-free in defragmentation Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 062/141] drm/i915: safeguard against too high minimum brightness Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 063/141] drm/i915: Disable caches for Global GTT Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 065/141] drm/radeon: set correct CE ram size for CIK Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 066/141] drm/radeon: make sure mode init is complete in bandwidth_update Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 067/141] drm/radeon: use gart for DMA IB tests Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 068/141] drm/radeon: add missing crtc unlock when setting up the MC Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 069/141] drm/radeon: add locking around atombios scratch space usage Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 071/141] ARM: 8191/1: decompressor: ensure I-side picks up relocated code Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 072/141] ARM: dts: am335x-evm: Fix 5th NAND partitions name Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 073/141] ARM: mvebu: armada xp: Generalize use of i2c quirk Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 074/141] pinctrl: dra: dt-bindings: Fix output pull up/down Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 075/141] Fix thinko in iov_iter_single_seg_count Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 076/141] dm thin: grab a virtual cell before looking up the mapping Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 078/141] arm64: efi: Fix stub cache maintenance Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 079/141] firewire: cdev: prevent kernel stack leaking into ioctl arguments Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 080/141] ata: sata_rcar: Disable DIPM mode for r8a7790 ES1 Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 081/141] nfs: fix pnfs direct write memory leak Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 082/141] Correct the race condition in aarch64_insn_patch_text_sync() Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 083/141] scsi: only re-lock door after EH on devices that were reset Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 084/141] parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 085/141] block: Fix computation of merged request priority Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 086/141] dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 087/141] dm btree: fix a recursion depth bug in btree walking code Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 088/141] dm raid: ensure superblocks size matches devices logical block size Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 089/141] Input: synaptics - add min/max quirk for Lenovo T440s Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 093/141] cpufreq: Avoid crash in resume on SMP without OPP Greg Kroah-Hartman
2014-11-19 20:51 ` [PATCH 3.17 094/141] sunrpc: fix sleeping under rcu_read_lock in gss_stringify_acceptor Greg Kroah-Hartman
2014-11-19 20:51 ` Greg Kroah-Hartman [this message]
2014-11-19 20:51 ` [PATCH 3.17 096/141] power: charger-manager: Fix accessing invalidated power supply after charger unbind Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 097/141] power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 098/141] power: bq2415x_charger: Fix memory leak on DTS parsing error Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 099/141] x86, microcode, AMD: Fix early ucode loading on 32-bit Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 100/141] x86, microcode: Fix accessing dis_ucode_ldr " Greg Kroah-Hartman
2014-11-25 18:12 ` Boris Ostrovsky
2014-11-25 18:24 ` Borislav Petkov
2014-11-25 18:43 ` Boris Ostrovsky
2014-11-25 18:43 ` Borislav Petkov
2014-11-25 18:55 ` Boris Ostrovsky
2014-11-25 19:03 ` Borislav Petkov
2014-11-25 19:23 ` Boris Ostrovsky
2014-11-25 19:08 ` Borislav Petkov
2014-11-25 19:28 ` Boris Ostrovsky
2014-11-25 20:26 ` Borislav Petkov
2014-11-25 20:36 ` Konrad Rzeszutek Wilk
2014-11-25 21:17 ` Borislav Petkov
2014-11-25 21:59 ` Boris Ostrovsky
2014-11-25 22:18 ` Borislav Petkov
2014-11-26 5:00 ` Boris Ostrovsky
2014-11-26 10:55 ` Borislav Petkov
2014-11-26 12:39 ` boris ostrovsky
2014-11-26 14:44 ` Borislav Petkov
2014-11-25 18:45 ` Greg Kroah-Hartman
2014-11-25 18:47 ` Borislav Petkov
2014-11-25 18:50 ` Boris Ostrovsky
2014-11-19 20:52 ` [PATCH 3.17 101/141] x86, microcode, AMD: Fix ucode patch stashing " Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 102/141] x86, kaslr: Prevent .bss from overlaping initrd Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 103/141] md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 104/141] NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 105/141] NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 106/141] NFS: Dont try to reclaim delegation open state if recovery failed Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 107/141] nfs: Fix use of uninitialized variable in nfs_getattr() Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 108/141] NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 109/141] NFSv4.1: nfs41_clear_delegation_stateid shouldnt trust NFS_DELEGATED_STATE Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 110/141] media: ttusb-dec: buffer overflow in ioctl Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 111/141] cxgb4 : Handle dcb enable correctly Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 112/141] net: systemport: enable RX interrupts after NAPI Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 113/141] net: systemport: reset UniMAC coming out of a suspend cycle Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 114/141] memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 115/141] vmcore: Remove "weak" from function declarations Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 116/141] kgdb: Remove "weak" from kgdb_arch_pc() declaration Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 117/141] clocksource: Remove "weak" from clocksource_default_clock() declaration Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 119/141] IB/core: Clear AH attr variable to prevent garbage data Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 120/141] ipc: always handle a new value of auto_msgmni Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 121/141] netfilter: ipset: off by one in ip_set_nfnl_get_byindex() Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 122/141] netfilter: nf_tables: check for NULL in nf_tables_newchain pcpu stats allocation Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 123/141] netfilter: nf_log: account for size of NLMSG_DONE attribute Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 124/141] netfilter: nfnetlink_log: fix maximum packet length logged to userspace Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 125/141] netfilter: nf_log: release skbuff on nlmsg put failure Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 126/141] netfilter: nft_compat: fix wrong target lookup in nft_target_select_ops() Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 127/141] netfilter: xt_bpf: add mising opaque struct sk_filter definition Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 128/141] GFS2: Make rename not save dirent location Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 129/141] rcu: Use rcu_gp_kthread_wake() to wake up grace period kthreads Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 131/141] builddeb: put the dbg files into the correct directory Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 132/141] checkpatch: remove unnecessary + after {8,8} Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 133/141] mm, thp: fix collapsing of hugepages on madvise Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 134/141] KVM: x86: Dont report guest userspace emulation error to userspace Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 135/141] quirk for Lenovo Yoga 3: no rfkill switch Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 136/141] net: sctp: fix remote memory pressure from excessive queueing Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 137/141] net: sctp: fix panic on duplicate ASCONF chunks Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 138/141] net: sctp: fix skb_over_panic when receiving malformed " Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 139/141] asus-nb-wmi: Add wapf4 quirk for the X550VB Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 140/141] KEYS: Reinstate EPERM for a key type name beginning with a Greg Kroah-Hartman
2014-11-19 20:52 ` [PATCH 3.17 141/141] iwlwifi: fix RFkill while calibrating Greg Kroah-Hartman
2014-11-20 5:38 ` [PATCH 3.17 000/141] 3.17.4-stable review Guenter Roeck
2014-11-20 15:04 ` Greg Kroah-Hartman
2014-11-21 1:36 ` Shuah Khan
2014-11-21 20:08 ` 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=20141119205153.760350911@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=k.kozlowski@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sre@kernel.org \
--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).