mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kamal Mostafa <kamal@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Lan Tianyu <tianyu.lan@intel.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.13 091/212] ACPI: Revert "ACPI / Battery: Remove battery's proc directory"
Date: Tue, 17 Jun 2014 14:43:05 -0700	[thread overview]
Message-ID: <1403041506-13646-92-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1403041506-13646-1-git-send-email-kamal@canonical.com>

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

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

From: Lan Tianyu <tianyu.lan@intel.com>

commit 3a670cc79342c36d308decd5f90351830ed1685c upstream.

The commit 1e2d9cd and 7d7ee95 remove ACPI Proc Battery
directory and breaks some old userspace tools. This patch
is to revert commit 1e2d9cd.

Fixes: 1e2d9cdfb449 (ACPI / Battery: Remove battery's proc directory)
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 drivers/acpi/battery.c | 329 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 328 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 5876a49..17dc8a9 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -36,6 +36,12 @@
 #include <linux/suspend.h>
 #include <asm/unaligned.h>
 
+#ifdef CONFIG_ACPI_PROCFS_POWER
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include <asm/uaccess.h>
+#endif
+
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include <linux/power_supply.h>
@@ -67,6 +73,19 @@ static unsigned int cache_time = 1000;
 module_param(cache_time, uint, 0644);
 MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
 
+#ifdef CONFIG_ACPI_PROCFS_POWER
+extern struct proc_dir_entry *acpi_lock_battery_dir(void);
+extern void *acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir);
+
+enum acpi_battery_files {
+	info_tag = 0,
+	state_tag,
+	alarm_tag,
+	ACPI_BATTERY_NUMFILES,
+};
+
+#endif
+
 static const struct acpi_device_id battery_device_ids[] = {
 	{"PNP0C0A", 0},
 	{"", 0},
@@ -302,6 +321,14 @@ static enum power_supply_property energy_battery_props[] = {
 	POWER_SUPPLY_PROP_SERIAL_NUMBER,
 };
 
+#ifdef CONFIG_ACPI_PROCFS_POWER
+inline char *acpi_battery_units(struct acpi_battery *battery)
+{
+	return (battery->power_unit == ACPI_BATTERY_POWER_UNIT_MA) ?
+		"mA" : "mW";
+}
+#endif
+
 /* --------------------------------------------------------------------------
                                Battery Management
    -------------------------------------------------------------------------- */
@@ -720,6 +747,279 @@ static void acpi_battery_refresh(struct acpi_battery *battery)
 }
 
 /* --------------------------------------------------------------------------
+                              FS Interface (/proc)
+   -------------------------------------------------------------------------- */
+
+#ifdef CONFIG_ACPI_PROCFS_POWER
+static struct proc_dir_entry *acpi_battery_dir;
+
+static int acpi_battery_print_info(struct seq_file *seq, int result)
+{
+	struct acpi_battery *battery = seq->private;
+
+	if (result)
+		goto end;
+
+	seq_printf(seq, "present:                 %s\n",
+		   acpi_battery_present(battery) ? "yes" : "no");
+	if (!acpi_battery_present(battery))
+		goto end;
+	if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "design capacity:         unknown\n");
+	else
+		seq_printf(seq, "design capacity:         %d %sh\n",
+			   battery->design_capacity,
+			   acpi_battery_units(battery));
+
+	if (battery->full_charge_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "last full capacity:      unknown\n");
+	else
+		seq_printf(seq, "last full capacity:      %d %sh\n",
+			   battery->full_charge_capacity,
+			   acpi_battery_units(battery));
+
+	seq_printf(seq, "battery technology:      %srechargeable\n",
+		   (!battery->technology)?"non-":"");
+
+	if (battery->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "design voltage:          unknown\n");
+	else
+		seq_printf(seq, "design voltage:          %d mV\n",
+			   battery->design_voltage);
+	seq_printf(seq, "design capacity warning: %d %sh\n",
+		   battery->design_capacity_warning,
+		   acpi_battery_units(battery));
+	seq_printf(seq, "design capacity low:     %d %sh\n",
+		   battery->design_capacity_low,
+		   acpi_battery_units(battery));
+	seq_printf(seq, "cycle count:		  %i\n", battery->cycle_count);
+	seq_printf(seq, "capacity granularity 1:  %d %sh\n",
+		   battery->capacity_granularity_1,
+		   acpi_battery_units(battery));
+	seq_printf(seq, "capacity granularity 2:  %d %sh\n",
+		   battery->capacity_granularity_2,
+		   acpi_battery_units(battery));
+	seq_printf(seq, "model number:            %s\n", battery->model_number);
+	seq_printf(seq, "serial number:           %s\n", battery->serial_number);
+	seq_printf(seq, "battery type:            %s\n", battery->type);
+	seq_printf(seq, "OEM info:                %s\n", battery->oem_info);
+      end:
+	if (result)
+		seq_printf(seq, "ERROR: Unable to read battery info\n");
+	return result;
+}
+
+static int acpi_battery_print_state(struct seq_file *seq, int result)
+{
+	struct acpi_battery *battery = seq->private;
+
+	if (result)
+		goto end;
+
+	seq_printf(seq, "present:                 %s\n",
+		   acpi_battery_present(battery) ? "yes" : "no");
+	if (!acpi_battery_present(battery))
+		goto end;
+
+	seq_printf(seq, "capacity state:          %s\n",
+			(battery->state & 0x04) ? "critical" : "ok");
+	if ((battery->state & 0x01) && (battery->state & 0x02))
+		seq_printf(seq,
+			   "charging state:          charging/discharging\n");
+	else if (battery->state & 0x01)
+		seq_printf(seq, "charging state:          discharging\n");
+	else if (battery->state & 0x02)
+		seq_printf(seq, "charging state:          charging\n");
+	else
+		seq_printf(seq, "charging state:          charged\n");
+
+	if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "present rate:            unknown\n");
+	else
+		seq_printf(seq, "present rate:            %d %s\n",
+			   battery->rate_now, acpi_battery_units(battery));
+
+	if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "remaining capacity:      unknown\n");
+	else
+		seq_printf(seq, "remaining capacity:      %d %sh\n",
+			   battery->capacity_now, acpi_battery_units(battery));
+	if (battery->voltage_now == ACPI_BATTERY_VALUE_UNKNOWN)
+		seq_printf(seq, "present voltage:         unknown\n");
+	else
+		seq_printf(seq, "present voltage:         %d mV\n",
+			   battery->voltage_now);
+      end:
+	if (result)
+		seq_printf(seq, "ERROR: Unable to read battery state\n");
+
+	return result;
+}
+
+static int acpi_battery_print_alarm(struct seq_file *seq, int result)
+{
+	struct acpi_battery *battery = seq->private;
+
+	if (result)
+		goto end;
+
+	if (!acpi_battery_present(battery)) {
+		seq_printf(seq, "present:                 no\n");
+		goto end;
+	}
+	seq_printf(seq, "alarm:                   ");
+	if (!battery->alarm)
+		seq_printf(seq, "unsupported\n");
+	else
+		seq_printf(seq, "%u %sh\n", battery->alarm,
+				acpi_battery_units(battery));
+      end:
+	if (result)
+		seq_printf(seq, "ERROR: Unable to read battery alarm\n");
+	return result;
+}
+
+static ssize_t acpi_battery_write_alarm(struct file *file,
+					const char __user * buffer,
+					size_t count, loff_t * ppos)
+{
+	int result = 0;
+	char alarm_string[12] = { '\0' };
+	struct seq_file *m = file->private_data;
+	struct acpi_battery *battery = m->private;
+
+	if (!battery || (count > sizeof(alarm_string) - 1))
+		return -EINVAL;
+	if (!acpi_battery_present(battery)) {
+		result = -ENODEV;
+		goto end;
+	}
+	if (copy_from_user(alarm_string, buffer, count)) {
+		result = -EFAULT;
+		goto end;
+	}
+	alarm_string[count] = '\0';
+	battery->alarm = simple_strtol(alarm_string, NULL, 0);
+	result = acpi_battery_set_alarm(battery);
+      end:
+	if (!result)
+		return count;
+	return result;
+}
+
+typedef int(*print_func)(struct seq_file *seq, int result);
+
+static print_func acpi_print_funcs[ACPI_BATTERY_NUMFILES] = {
+	acpi_battery_print_info,
+	acpi_battery_print_state,
+	acpi_battery_print_alarm,
+};
+
+static int acpi_battery_read(int fid, struct seq_file *seq)
+{
+	struct acpi_battery *battery = seq->private;
+	int result = acpi_battery_update(battery);
+	return acpi_print_funcs[fid](seq, result);
+}
+
+#define DECLARE_FILE_FUNCTIONS(_name) \
+static int acpi_battery_read_##_name(struct seq_file *seq, void *offset) \
+{ \
+	return acpi_battery_read(_name##_tag, seq); \
+} \
+static int acpi_battery_##_name##_open_fs(struct inode *inode, struct file *file) \
+{ \
+	return single_open(file, acpi_battery_read_##_name, PDE_DATA(inode)); \
+}
+
+DECLARE_FILE_FUNCTIONS(info);
+DECLARE_FILE_FUNCTIONS(state);
+DECLARE_FILE_FUNCTIONS(alarm);
+
+#undef DECLARE_FILE_FUNCTIONS
+
+#define FILE_DESCRIPTION_RO(_name) \
+	{ \
+	.name = __stringify(_name), \
+	.mode = S_IRUGO, \
+	.ops = { \
+		.open = acpi_battery_##_name##_open_fs, \
+		.read = seq_read, \
+		.llseek = seq_lseek, \
+		.release = single_release, \
+		.owner = THIS_MODULE, \
+		}, \
+	}
+
+#define FILE_DESCRIPTION_RW(_name) \
+	{ \
+	.name = __stringify(_name), \
+	.mode = S_IFREG | S_IRUGO | S_IWUSR, \
+	.ops = { \
+		.open = acpi_battery_##_name##_open_fs, \
+		.read = seq_read, \
+		.llseek = seq_lseek, \
+		.write = acpi_battery_write_##_name, \
+		.release = single_release, \
+		.owner = THIS_MODULE, \
+		}, \
+	}
+
+static const struct battery_file {
+	struct file_operations ops;
+	umode_t mode;
+	const char *name;
+} acpi_battery_file[] = {
+	FILE_DESCRIPTION_RO(info),
+	FILE_DESCRIPTION_RO(state),
+	FILE_DESCRIPTION_RW(alarm),
+};
+
+#undef FILE_DESCRIPTION_RO
+#undef FILE_DESCRIPTION_RW
+
+static int acpi_battery_add_fs(struct acpi_device *device)
+{
+	struct proc_dir_entry *entry = NULL;
+	int i;
+
+	printk(KERN_WARNING PREFIX "Deprecated procfs I/F for battery is loaded,"
+			" please retry with CONFIG_ACPI_PROCFS_POWER cleared\n");
+	if (!acpi_device_dir(device)) {
+		acpi_device_dir(device) = proc_mkdir(acpi_device_bid(device),
+						     acpi_battery_dir);
+		if (!acpi_device_dir(device))
+			return -ENODEV;
+	}
+
+	for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i) {
+		entry = proc_create_data(acpi_battery_file[i].name,
+					 acpi_battery_file[i].mode,
+					 acpi_device_dir(device),
+					 &acpi_battery_file[i].ops,
+					 acpi_driver_data(device));
+		if (!entry)
+			return -ENODEV;
+	}
+	return 0;
+}
+
+static void acpi_battery_remove_fs(struct acpi_device *device)
+{
+	int i;
+	if (!acpi_device_dir(device))
+		return;
+	for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i)
+		remove_proc_entry(acpi_battery_file[i].name,
+				  acpi_device_dir(device));
+
+	remove_proc_entry(acpi_device_bid(device), acpi_battery_dir);
+	acpi_device_dir(device) = NULL;
+}
+
+#endif
+
+/* --------------------------------------------------------------------------
                                  Driver Interface
    -------------------------------------------------------------------------- */
 
@@ -792,6 +1092,15 @@ static int acpi_battery_add(struct acpi_device *device)
 	result = acpi_battery_update(battery);
 	if (result)
 		goto fail;
+#ifdef CONFIG_ACPI_PROCFS_POWER
+	result = acpi_battery_add_fs(device);
+#endif
+	if (result) {
+#ifdef CONFIG_ACPI_PROCFS_POWER
+		acpi_battery_remove_fs(device);
+#endif
+		goto fail;
+	}
 
 	printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
 		ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
@@ -818,6 +1127,9 @@ static int acpi_battery_remove(struct acpi_device *device)
 		return -EINVAL;
 	battery = acpi_driver_data(device);
 	unregister_pm_notifier(&battery->pm_nb);
+#ifdef CONFIG_ACPI_PROCFS_POWER
+	acpi_battery_remove_fs(device);
+#endif
 	sysfs_remove_battery(battery);
 	mutex_destroy(&battery->lock);
 	mutex_destroy(&battery->sysfs_lock);
@@ -866,7 +1178,19 @@ static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie)
 
 	if (dmi_check_system(bat_dmi_table))
 		battery_bix_broken_package = 1;
-	acpi_bus_register_driver(&acpi_battery_driver);
+	
+#ifdef CONFIG_ACPI_PROCFS_POWER
+	acpi_battery_dir = acpi_lock_battery_dir();
+	if (!acpi_battery_dir)
+		return;
+#endif
+	if (acpi_bus_register_driver(&acpi_battery_driver) < 0) {
+#ifdef CONFIG_ACPI_PROCFS_POWER
+		acpi_unlock_battery_dir(acpi_battery_dir);
+#endif
+		return;
+	}
+	return;
 }
 
 static int __init acpi_battery_init(void)
@@ -878,6 +1202,9 @@ static int __init acpi_battery_init(void)
 static void __exit acpi_battery_exit(void)
 {
 	acpi_bus_unregister_driver(&acpi_battery_driver);
+#ifdef CONFIG_ACPI_PROCFS_POWER
+	acpi_unlock_battery_dir(acpi_battery_dir);
+#endif
 }
 
 module_init(acpi_battery_init);
-- 
1.9.1


  parent reply	other threads:[~2014-06-17 22:00 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 21:41 [3.13.y.z extended stable] Linux 3.13.11.4 stable review Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 001/212] SUNRPC: Ensure that call_connect times out correctly Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 002/212] SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN tasks Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 003/212] net: sctp: wake up all assocs if sndbuf policy is per socket Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 004/212] net: sctp: test if association is dead in sctp_wake_up_waiters Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 005/212] l2tp: take PMTU from tunnel UDP socket Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 006/212] net: core: don't account for udp header size when computing seglen Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 007/212] bonding: Remove debug_fs files when module init fails Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 008/212] bridge: Fix double free and memory leak around br_allowed_ingress Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 009/212] ipv6: Limit mtu to 65575 bytes Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 010/212] gre: don't allow to add the same tunnel twice Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 011/212] vti: " Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 012/212] net: ipv4: current group_info should be put after using Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 013/212] ipv4: return valid RTA_IIF on ip route get Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 014/212] filter: prevent nla extensions to peek beyond the end of the message Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 015/212] ip6_gre: don't allow to remove the fb_tunnel_dev Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 016/212] vlan: Fix lockdep warning when vlan dev handle notification Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 017/212] net: Find the nesting level of a given device by type Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 018/212] net: Allow for more then a single subclass for netif_addr_lock Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 019/212] vlan: Fix lockdep warning with stacked vlan devices Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 020/212] macvlan: Fix lockdep warnings with stacked macvlan devices Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 021/212] tg3: update rx_jumbo_pending ring param only when jumbo frames are enabled Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 022/212] net: sctp: cache auth_enable per endpoint Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 023/212] rtnetlink: Warn when interface's information won't fit in our packet Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 024/212] rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF is set Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 025/212] ipv6: fib: fix fib dump restart Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 026/212] bridge: Handle IFLA_ADDRESS correctly when creating bridge device Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 027/212] sctp: reset flowi4_oif parameter on route lookup Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 028/212] net: qmi_wwan: add Sierra Wireless EM7355 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 029/212] net: qmi_wwan: add Sierra Wireless MC73xx Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 030/212] net: qmi_wwan: add Sierra Wireless MC7305/MC7355 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 031/212] net: qmi_wwan: add Olivetti Olicard 500 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 032/212] net: qmi_wwan: add Alcatel L800MA Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 033/212] net: qmi_wwan: add a number of CMOTech devices Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 034/212] net: qmi_wwan: add a number of Dell devices Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 035/212] slip: fix spinlock variant Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 036/212] net: sctp: Potentially-Failed state should not be reached from unconfirmed state Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 037/212] net: sctp: Don't transition to PF state when transport has exhausted 'Path.Max.Retrans' Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 038/212] mactap: Fix checksum errors for non-gso packets in bridge mode Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 039/212] Revert "macvlan : fix checksums error when we are in bridge mode" Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 040/212] tcp_cubic: fix the range of delayed_ack Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 041/212] vsock: Make transport the proto owner Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 042/212] net: cdc_ncm: fix buffer overflow Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 043/212] ip_tunnel: Set network header properly for IP_ECN_decapsulate() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 044/212] net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 045/212] net: ipv4: ip_forward: fix inverted local_df test Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 046/212] net: ipv6: send pkttoobig immediately if orig frag size > mtu Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 047/212] ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 048/212] net: cdc_mbim: handle unaccelerated VLAN tagged frames Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 049/212] macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 050/212] sfc: fix calling of free_irq with already free vector Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 051/212] ip6_tunnel: fix potential NULL pointer dereference Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 052/212] net: filter: x86: fix JIT address randomization Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 053/212] net: filter: s390: " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 054/212] net: avoid dependency of net_get_random_once on nop patching Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 055/212] ipv6: fix calculation of option len in ip6_append_data Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 056/212] rtnetlink: wait for unregistering devices in rtnl_link_unregister() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 057/212] net: gro: make sure skb->cb[] initial content has not to be zero Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 058/212] batman-adv: fix reference counting imbalance while sending fragment Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 059/212] batman-adv: increase orig refcount when storing ref in gw_node Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 060/212] batman-adv: fix local TT check for outgoing arp requests in DAT Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 061/212] ip_tunnel: Initialize the fallback device properly Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 062/212] ipv4: initialise the itag variable in __mkroute_input Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 063/212] net-gro: reset skb->truesize in napi_reuse_skb() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 064/212] netfilter: ipv4: defrag: set local_df flag on defragmented skb Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 065/212] ima: introduce ima_kernel_read() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 066/212] ima: audit log files opened with O_DIRECT flag Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 067/212] percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 068/212] workqueue: fix bugs in wq_update_unbound_numa() failure path Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 069/212] [media] fc2580: fix tuning failure on 32-bit arch Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 070/212] memory: mvebu-devbus: fix the conversion of the bus width Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 071/212] ARM: orion5x: fix target ID for crypto SRAM window Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 072/212] workqueue: make rescuer_thread() empty wq->maydays list before exiting Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 073/212] workqueue: fix a possible race condition between rescuer and pwq-release Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 074/212] spi: core: Ignore unsupported Dual/Quad Transfer Mode bits Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 075/212] device_cgroup: rework device access check and exception checking Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 076/212] PCI: mvebu: fix off-by-one in the computed size of the mbus windows Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 077/212] bus: mvebu-mbus: allow several windows with the same target/attribute Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 078/212] PCI: mvebu: split PCIe BARs into multiple MBus windows when needed Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 079/212] ARM: mvebu: fix NOR bus-width in Armada XP GP Device Tree Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 080/212] ARM: mvebu: fix NOR bus-width in Armada XP DB " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 081/212] ARM: mvebu: fix NOR bus-width in Armada XP OpenBlocks AX3 " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 082/212] crypto: caam - add allocation failure handling in SPRINTFCAT macro Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 083/212] ARM: common: edma: Fix xbar mapping Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 084/212] clk: Fix double free due to devm_clk_register() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 085/212] [media] media-device: fix infoleak in ioctl media_enum_entities() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 086/212] ARM: dts: kirkwood: fix mislocated pcie-controller nodes Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 087/212] device_cgroup: check if exception removal is allowed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 088/212] md: avoid possible spinning md thread at shutdown Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 089/212] ACPI: Remove Kconfig symbol ACPI_PROCFS Kamal Mostafa
2014-06-17 22:26   ` Paul Bolle
2014-06-17 22:41     ` Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 090/212] ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" Kamal Mostafa
2014-06-17 21:43 ` Kamal Mostafa [this message]
2014-06-17 21:43 ` [PATCH 3.13 092/212] NFSd: Move default initialisers from create_client() to alloc_client() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 093/212] NFSd: call rpc_destroy_wait_queue() from free_client() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 094/212] genirq: Provide irq_force_affinity fallback for non-SMP Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 095/212] libata: clean up ZPODD when a port is detached Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 096/212] ACPI: blacklist win8 OSI for Dell Inspiron 7737 Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 097/212] ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 098/212] ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 099/212] ACPI / processor: do not mark present at boot but not onlined CPU as onlined Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 100/212] NFSD: Call ->set_acl with a NULL ACL structure if no entries Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 101/212] ALSA: hda - add headset mic detect quirks for three Dell laptops Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 102/212] gpio: mcp23s08: Bug fix of SPI device tree registration Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 103/212] drm/i915/vlv: reset VLV media force wake request register Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 104/212] ARM: dts: i.MX53: Fix ipu register space size Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 105/212] mm, thp: close race between mremap() and split_huge_page() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 106/212] intel_pstate: Set turbo VID for BayTrail Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 107/212] powerpc/powernv: Reset root port in firmware Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 108/212] hrtimer: Set expiry time before switch_hrtimer_base() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 109/212] hwmon: (emc1403) fix inverted store_hyst() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 110/212] hwmon: (emc1403) Fix resource leak on module unload Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 111/212] hwmon: (emc1403) Support full range of known chip revision numbers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 112/212] iommu/amd: Fix interrupt remapping for aliased devices Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 113/212] ASoC: wm8962: Update register CLASS_D_CONTROL_1 to be non-volatile Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 114/212] [media] V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 115/212] [media] V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 116/212] x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 117/212] i2c: designware: Mask all interrupts during i2c controller enable Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 118/212] i2c: s3c2410: resume race fix Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 119/212] i2c: rcar: bail out on zero length transfers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 120/212] dm crypt: fix cpu hotplug crash by removing per-cpu structure Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 121/212] metag: fix memory barriers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 122/212] metag: Reduce maximum stack size to 256MB Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 123/212] x86-64, modify_ldt: Make support for 16-bit segments a runtime option Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 124/212] drm/i915: restore backlight precision when converting from ACPI Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 125/212] drm/i915: Increase WM memory latency values on SNB Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 126/212] PCI: shpchp: Check bridge's secondary (not primary) bus speed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 127/212] parisc: ratelimit userspace segfault printing Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 128/212] parisc: Improve LWS-CAS performance Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 129/212] Target/iser: Fix wrong connection requests list addition Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 130/212] Target/iser: Fix iscsit_accept_np and rdma_cm racy flow Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 131/212] iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 132/212] tcm_fc: Fix free-after-use regression in ft_free_cmd Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 133/212] target: Don't allow setting WC emulation if device doesn't support Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 134/212] arm: dts: Fix missing device_type="memory" for ste-ccu8540 Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 135/212] mips: dts: Fix missing device_type="memory" property in memory nodes Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 136/212] arm64: fix pud_huge() for 2-level pagetables Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 137/212] libceph: fix corruption when using page_count 0 page in rbd Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 138/212] clk: tegra: use pll_ref as the pll_e parent Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 139/212] clk: tegra: Fix wrong value written to PLLE_AUX Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 140/212] target: fix memory leak on XCOPY Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 141/212] sysfs: make sure read buffer is zeroed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 142/212] cfg80211: free sme on connection failures Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 143/212] sched: Sanitize irq accounting madness Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 144/212] sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 145/212] mac80211: fix suspend vs. association race Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 146/212] mac80211: fix on-channel remain-on-channel Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 147/212] af_iucv: wrong mapping of sent and confirmed skbs Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 148/212] perf: Limit perf_event_attr::sample_period to 63 bits Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 149/212] perf: Prevent false warning in perf_swevent_add Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 150/212] drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 151/212] drm/radeon: also try GART for CPU accessed buffers Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 152/212] drm/radeon: handle non-VGA class pci devices with ATRM Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 153/212] drm/radeon: fix register typo on si Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 154/212] drm/radeon: avoid segfault on device open when accel is not working Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 155/212] drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off (v2) Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 156/212] can: peak_pci: prevent use after free at netdev removal Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 157/212] nfsd4: remove lockowner when removing lock stateid Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 158/212] nfsd4: warn on finding lockowner without stateid's Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 159/212] dma: mv_xor: Flush descriptors before activating a channel Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 160/212] dmaengine: fix dmaengine_unmap failure Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 161/212] hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 162/212] mm/memory-failure.c: fix memory leak by race between poison and unpoison Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 163/212] ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5 on all OMAP3 platforms Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 164/212] dmaengine: dw: went back to plain {request,free}_irq() calls Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 165/212] ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 166/212] Input: synaptics - add min/max quirk for the ThinkPad W540 Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 167/212] ARM: OMAP2+: nand: Fix NAND on OMAP2 and OMAP3 boards Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 168/212] futex: Add another early deadlock detection check Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 169/212] futex: Prevent attaching to kernel threads Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 170/212] ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 171/212] cpufreq: remove race while accessing cur_policy Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 172/212] cpufreq: cpu0: drop wrong devm usage Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 173/212] ARM: imx: fix error handling in ipu device registration Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 174/212] ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 175/212] ARM: 8051/1: put_user: fix possible data corruption in put_user Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 176/212] ARM: 8064/1: fix v7-M signal return Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 177/212] Input: synaptics - T540p - unify with other LEN0034 models Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 178/212] drm/i915: Only copy back the modified fields to userspace from execbuffer Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 179/212] dm cache: always split discards on cache block boundaries Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 180/212] virtio_blk: don't crash, report error if virtqueue is broken Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 181/212] virtio_blk: fix race between start and stop queue Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 182/212] powerpc: Fix 64 bit builds with binutils 2.24 Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 183/212] powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 184/212] rtmutex: Fix deadlock detector for real Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 185/212] drm/radeon: avoid crash if VM command submission isn't available Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 186/212] drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 187/212] iwlwifi: mvm: fix setting channel in monitor mode Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 188/212] Staging: speakup: Move pasting into a work item Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 189/212] USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 190/212] can: only rename enabled led triggers when changing the netdev name Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 191/212] USB: io_ti: fix firmware download on big-endian machines (part 2) Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 192/212] USB: ftdi_sio: add NovaTech OrionLXm product ID Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 193/212] USB: serial: option: add support for Novatel E371 PCIe card Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 194/212] USB: cdc-wdm: properly include types.h Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 195/212] md: always set MD_RECOVERY_INTR when aborting a reshape or other "resync" Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 196/212] xhci: delete endpoints from bandwidth list before freeing whole device Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 197/212] md: always set MD_RECOVERY_INTR when interrupting a reshape thread Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 198/212] ALSA: hda/analog - Fix silent output on ASUS A8JN Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 199/212] drm/radeon/dpm: resume fixes for some systems Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 200/212] drm/radeon: use the CP DMA on CIK Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 201/212] ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 202/212] ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 203/212] iser-target: Add missing target_put_sess_cmd for ImmedateData failure Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 204/212] iscsi-target: Fix wrong buffer / buffer overrun in iscsi_change_param_value() Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 205/212] percpu-refcount: fix usage of this_cpu_ops Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 206/212] futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 207/212] futex: Validate atomic acquisition in futex_lock_pi_atomic() Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 208/212] futex: Always cleanup owner tid in unlock_pi Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 209/212] futex: Make lookup_pi_state more robust Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 210/212] target: Fix alua_access_state attribute OOPs for un-configured devices Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 211/212] mm: rmap: fix use-after-free in __put_anon_vma Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 212/212] mm: add !pte_present() check on existing hugetlb_entry callbacks Kamal Mostafa

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=1403041506-13646-92-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.kernel.org \
    --cc=tianyu.lan@intel.com \
    /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

all inboxes | Powered by JetHome®