All of lore.kernel.org
 help / color / mirror / Atom feed
From: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>,
	Annie Li <annie.li@oracle.com>,
	xen-devel@lists.xen.org, Matt Wilson <msw@amazon.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: [PATCH 06/93] xen/grant-table: correctly initialize grant table version 1
Date: Tue,  5 Feb 2013 20:05:55 -0200	[thread overview]
Message-ID: <1360102042-10732-7-git-send-email-herton.krzesinski__26805.674940306$1360102230$gmane$org@canonical.com> (raw)
In-Reply-To: <1360102042-10732-1-git-send-email-herton.krzesinski@canonical.com>

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

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

From: Matt Wilson <msw@amazon.com>

commit d0b4d64aadb9f4a90669848de9ef3819050a98cd upstream.

Commit 85ff6acb075a484780b3d763fdf41596d8fc0970 (xen/granttable: Grant
tables V2 implementation) changed the GREFS_PER_GRANT_FRAME macro from
a constant to a conditional expression. The expression depends on
grant_table_version being appropriately set. Unfortunately, at init
time grant_table_version will be 0. The GREFS_PER_GRANT_FRAME
conditional expression checks for "grant_table_version == 1", and
therefore returns the number of grant references per frame for v2.

This causes gnttab_init() to allocate fewer pages for gnttab_list, as
a frame can old half the number of v2 entries than v1 entries. After
gnttab_resume() is called, grant_table_version is appropriately
set. nr_init_grefs will then be miscalculated and gnttab_free_count
will hold a value larger than the actual number of free gref entries.

If a guest is heavily utilizing improperly initialized v1 grant
tables, memory corruption can occur. One common manifestation is
corruption of the vmalloc list, resulting in a poisoned pointer
derefrence when accessing /proc/meminfo or /proc/vmallocinfo:

[   40.770064] BUG: unable to handle kernel paging request at 0000200200001407
[   40.770083] IP: [<ffffffff811a6fb0>] get_vmalloc_info+0x70/0x110
[   40.770102] PGD 0
[   40.770107] Oops: 0000 [#1] SMP
[   40.770114] CPU 10

This patch introduces a static variable, grefs_per_grant_frame, to
cache the calculated value. gnttab_init() now calls
gnttab_request_version() early so that grant_table_version and
grefs_per_grant_frame can be appropriately set. A few BUG_ON()s have
been added to prevent this type of bug from reoccurring in the future.

Signed-off-by: Matt Wilson <msw@amazon.com>
Reviewed-and-Tested-by: Steven Noonan <snoonan@amazon.com>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Annie Li <annie.li@oracle.com>
Cc: xen-devel@lists.xen.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
[ herton: adjust context ]
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
---
 drivers/xen/grant-table.c |   48 +++++++++++++++++++++++++++------------------
 1 file changed, 29 insertions(+), 19 deletions(-)

diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 0067266..22be735 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -54,10 +54,6 @@
 /* External tools reserve first few grant table entries. */
 #define NR_RESERVED_ENTRIES 8
 #define GNTTAB_LIST_END 0xffffffff
-#define GREFS_PER_GRANT_FRAME \
-(grant_table_version == 1 ?                      \
-(PAGE_SIZE / sizeof(struct grant_entry_v1)) :   \
-(PAGE_SIZE / sizeof(union grant_entry_v2)))
 
 static grant_ref_t **gnttab_list;
 static unsigned int nr_grant_frames;
@@ -152,6 +148,7 @@ static struct gnttab_ops *gnttab_interface;
 static grant_status_t *grstatus;
 
 static int grant_table_version;
+static int grefs_per_grant_frame;
 
 static struct gnttab_free_callback *gnttab_free_callback_list;
 
@@ -766,12 +763,14 @@ static int grow_gnttab_list(unsigned int more_frames)
 	unsigned int new_nr_grant_frames, extra_entries, i;
 	unsigned int nr_glist_frames, new_nr_glist_frames;
 
+	BUG_ON(grefs_per_grant_frame == 0);
+
 	new_nr_grant_frames = nr_grant_frames + more_frames;
-	extra_entries       = more_frames * GREFS_PER_GRANT_FRAME;
+	extra_entries       = more_frames * grefs_per_grant_frame;
 
-	nr_glist_frames = (nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP;
+	nr_glist_frames = (nr_grant_frames * grefs_per_grant_frame + RPP - 1) / RPP;
 	new_nr_glist_frames =
-		(new_nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP;
+		(new_nr_grant_frames * grefs_per_grant_frame + RPP - 1) / RPP;
 	for (i = nr_glist_frames; i < new_nr_glist_frames; i++) {
 		gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_ATOMIC);
 		if (!gnttab_list[i])
@@ -779,12 +778,12 @@ static int grow_gnttab_list(unsigned int more_frames)
 	}
 
 
-	for (i = GREFS_PER_GRANT_FRAME * nr_grant_frames;
-	     i < GREFS_PER_GRANT_FRAME * new_nr_grant_frames - 1; i++)
+	for (i = grefs_per_grant_frame * nr_grant_frames;
+	     i < grefs_per_grant_frame * new_nr_grant_frames - 1; i++)
 		gnttab_entry(i) = i + 1;
 
 	gnttab_entry(i) = gnttab_free_head;
-	gnttab_free_head = GREFS_PER_GRANT_FRAME * nr_grant_frames;
+	gnttab_free_head = grefs_per_grant_frame * nr_grant_frames;
 	gnttab_free_count += extra_entries;
 
 	nr_grant_frames = new_nr_grant_frames;
@@ -904,7 +903,8 @@ EXPORT_SYMBOL_GPL(gnttab_unmap_refs);
 
 static unsigned nr_status_frames(unsigned nr_grant_frames)
 {
-	return (nr_grant_frames * GREFS_PER_GRANT_FRAME + SPP - 1) / SPP;
+	BUG_ON(grefs_per_grant_frame == 0);
+	return (nr_grant_frames * grefs_per_grant_frame + SPP - 1) / SPP;
 }
 
 static int gnttab_map_frames_v1(unsigned long *frames, unsigned int nr_gframes)
@@ -1062,6 +1062,7 @@ static void gnttab_request_version(void)
 	rc = HYPERVISOR_grant_table_op(GNTTABOP_set_version, &gsv, 1);
 	if (rc == 0 && gsv.version == 2) {
 		grant_table_version = 2;
+		grefs_per_grant_frame = PAGE_SIZE / sizeof(union grant_entry_v2);
 		gnttab_interface = &gnttab_v2_ops;
 	} else if (grant_table_version == 2) {
 		/*
@@ -1074,17 +1075,17 @@ static void gnttab_request_version(void)
 		panic("we need grant tables version 2, but only version 1 is available");
 	} else {
 		grant_table_version = 1;
+		grefs_per_grant_frame = PAGE_SIZE / sizeof(struct grant_entry_v1);
 		gnttab_interface = &gnttab_v1_ops;
 	}
 	printk(KERN_INFO "Grant tables using version %d layout.\n",
 		grant_table_version);
 }
 
-int gnttab_resume(void)
+static int gnttab_setup(void)
 {
 	unsigned int max_nr_gframes;
 
-	gnttab_request_version();
 	max_nr_gframes = gnttab_max_grant_frames();
 	if (max_nr_gframes < nr_grant_frames)
 		return -ENOSYS;
@@ -1107,6 +1108,12 @@ int gnttab_resume(void)
 	return 0;
 }
 
+int gnttab_resume(void)
+{
+	gnttab_request_version();
+	return gnttab_setup();
+}
+
 int gnttab_suspend(void)
 {
 	gnttab_interface->unmap_frames();
@@ -1118,9 +1125,10 @@ static int gnttab_expand(unsigned int req_entries)
 	int rc;
 	unsigned int cur, extra;
 
+	BUG_ON(grefs_per_grant_frame == 0);
 	cur = nr_grant_frames;
-	extra = ((req_entries + (GREFS_PER_GRANT_FRAME-1)) /
-		 GREFS_PER_GRANT_FRAME);
+	extra = ((req_entries + (grefs_per_grant_frame-1)) /
+		 grefs_per_grant_frame);
 	if (cur + extra > gnttab_max_grant_frames())
 		return -ENOSPC;
 
@@ -1138,21 +1146,23 @@ int gnttab_init(void)
 	unsigned int nr_init_grefs;
 	int ret;
 
+	gnttab_request_version();
 	nr_grant_frames = 1;
 	boot_max_nr_grant_frames = __max_nr_grant_frames();
 
 	/* Determine the maximum number of frames required for the
 	 * grant reference free list on the current hypervisor.
 	 */
+	BUG_ON(grefs_per_grant_frame == 0);
 	max_nr_glist_frames = (boot_max_nr_grant_frames *
-			       GREFS_PER_GRANT_FRAME / RPP);
+			       grefs_per_grant_frame / RPP);
 
 	gnttab_list = kmalloc(max_nr_glist_frames * sizeof(grant_ref_t *),
 			      GFP_KERNEL);
 	if (gnttab_list == NULL)
 		return -ENOMEM;
 
-	nr_glist_frames = (nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP;
+	nr_glist_frames = (nr_grant_frames * grefs_per_grant_frame + RPP - 1) / RPP;
 	for (i = 0; i < nr_glist_frames; i++) {
 		gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_KERNEL);
 		if (gnttab_list[i] == NULL) {
@@ -1161,12 +1171,12 @@ int gnttab_init(void)
 		}
 	}
 
-	if (gnttab_resume() < 0) {
+	if (gnttab_setup() < 0) {
 		ret = -ENODEV;
 		goto ini_nomem;
 	}
 
-	nr_init_grefs = nr_grant_frames * GREFS_PER_GRANT_FRAME;
+	nr_init_grefs = nr_grant_frames * grefs_per_grant_frame;
 
 	for (i = NR_RESERVED_ENTRIES; i < nr_init_grefs - 1; i++)
 		gnttab_entry(i) = i + 1;
-- 
1.7.9.5

  parent reply	other threads:[~2013-02-05 22:05 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-05 22:05 [ 3.5.y.z extended stable ] Linux 3.5.7.5 stable review Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 01/93] virtio-blk: Don't free ida when disk is in use Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 02/93] ioat: Fix DMA memory sync direction correct flag Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 03/93] PCI: pciehp: Use per-slot workqueues to avoid deadlock Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 04/93] PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put() Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 05/93] PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported Herton Ronaldo Krzesinski
2013-02-05 22:05 ` Herton Ronaldo Krzesinski [this message]
2013-02-05 22:05 ` [PATCH 06/93] xen/grant-table: correctly initialize grant table version 1 Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 07/93] serial:ifx6x60:Delete SPI timer when shut down port Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 08/93] tty: 8250_dw: Fix inverted arguments to serial_out in IRQ handler Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 09/93] drm/i915: Invalidate the relocation presumed_offsets along the slow path Herton Ronaldo Krzesinski
2013-02-05 22:05 ` [PATCH 10/93] ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 11/93] xen: Fix stack corruption in xen_failsafe_callback for 32bit PVOPS guests Herton Ronaldo Krzesinski
2013-02-06 10:18   ` Frediano Ziglio
2013-02-06 10:18     ` Frediano Ziglio
2013-02-06 13:16     ` Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 12/93] staging: vt6656: Fix inconsistent structure packing Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 13/93] 8250/16?50: Add support for Broadcom TruManage redirected serial port Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 14/93] KVM: PPC: Emulate dcbf Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 15/93] staging: wlan-ng: Fix clamping of returned SSID length Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 16/93] USB: option: blacklist network interface on ONDA MT8205 4G LTE Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 17/93] USB: option: add TP-LINK HSUPA Modem MA180 Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 18/93] ALSA: hda - Fix mute led for another HP machine Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 19/93] usb: dwc3: gadget: fix ep->maxburst for ep0 Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 20/93] ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 21/93] ACPI / processor: Get power info before updating the C-states Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 22/93] ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with sparsemem Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 23/93] evm: checking if removexattr is not a NULL Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 24/93] ALSA: hda - Add Conexant CX20755/20756/20757 codec IDs Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 25/93] ftrace: Be first to run code modification on modules Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 26/93] i2c: mxs: Fix type of error code Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 27/93] USB: UHCI: fix IRQ race during initialization Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 28/93] async: fix __lowest_in_progress() Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 29/93] fs/cifs/cifs_dfs_ref.c: fix potential memory leakage Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 30/93] ARM: at91: rm9200: remake the BGA as default version Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 31/93] Bluetooth: Fix sending HCI commands after reset Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 32/93] Bluetooth: Fix incorrect strncpy() in hidp_setup_hid() Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 33/93] ath9k_htc: Fix memory leak Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 34/93] ath9k: do not link receive buffers during flush Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 35/93] ath9k: add a better fix for the rx tasklet vs rx flush race Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 36/93] ath9k: fix rx flush handling Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 37/93] brcmsmac: increase timer reference count for new timers only Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 38/93] ath9k: remove sc->rx.rxbuflock to fix a deadlock Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 39/93] ath9k: disable the tasklet before taking the PCU lock Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 40/93] ASoC: wm2200: correct mixer values and text Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 41/93] mac80211: fix FT roaming Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 42/93] mac80211: synchronize scan off/on-channel and PS states Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 43/93] efi, x86: Pass a proper identity mapping in efi_call_phys_prelog Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 44/93] iwlegacy: fix IBSS cleanup Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 45/93] ath9k_hw: fix calibration issues on chainmask that don't include chain 0 Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 46/93] ath9k_hw: fix chain swap setting when setting rx chainmask to 5 Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 47/93] mwifiex: fix typo in PCIe adapter NULL check Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 48/93] drm/i915: Disable AsyncFlip performance optimisations Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 49/93] drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for scanline waits Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 50/93] iommu/intel: disable DMAR for g4x integrated gfx Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 51/93] drm/i915: dump UTS_RELEASE into the error_state Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 52/93] ALSA: hda - Add a fixup for Packard-Bell desktop with ALC880 Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 53/93] drm/radeon: fix cursor corruption on DCE6 and newer Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 54/93] radeon_display: Use pointer return error codes Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 55/93] drm/radeon: fix error path in kpage allocation Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 56/93] drm/radeon: fix a rare case of double kfree Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 57/93] x86/msr: Add capabilities check Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 58/93] x86, efi: Set runtime_version to the EFI spec revision Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 59/93] can: c_can: fix invalid error codes Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 60/93] can: ti_hecc: " Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 61/93] can: pch_can: " Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 62/93] ALSA: usb-audio: fix invalid length check for RME and other UAC 2 devices Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 63/93] smp: Fix SMP function call empty cpu mask race Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 64/93] IOMMU, AMD Family15h Model10-1Fh erratum 746 Workaround Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 65/93] xfs: Fix possible use-after-free with AIO Herton Ronaldo Krzesinski
2013-02-05 22:06   ` Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 66/93] powerpc/book3e: Disable interrupt after preempt_schedule_irq Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 67/93] ALSA: hda - Fix non-snoop page handling Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 68/93] EDAC: Test correct variable in ->store function Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 69/93] efi: Make 'efi_enabled' a function to query EFI facilities Herton Ronaldo Krzesinski
2013-02-05 22:06 ` [PATCH 70/93] samsung-laptop: Disable on EFI hardware Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 71/93] NFS: Fix error reporting in nfs_xdev_mount Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 72/93] NFS: Don't silently fail setattr() requests on mountpoints Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 73/93] NFSv4.1: Handle NFS4ERR_DELAY when resetting the NFSv4.1 session Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 74/93] drivers/firmware/dmi_scan.c: check dmi version when get system uuid Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 75/93] drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 76/93] [libata] ahci: Add support for Enmotus Bobcat device Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 77/93] [libata] ahci: Fix lack of command retry after a success error handler Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 78/93] x86/Sandy Bridge: mark arrays in __init functions as __initconst Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 79/93] x86/Sandy Bridge: Sandy Bridge workaround depends on CONFIG_PCI Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 80/93] ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up() Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 81/93] ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 82/93] wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 83/93] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 84/93] ahci: Add identifiers for ASM106x devices Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 85/93] module: fix symbol waiting when module fails before init Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 86/93] module: wait when loading a module which is currently initializing Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 87/93] module: add new state MODULE_STATE_UNFORMED Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 88/93] module: put modules in list much earlier Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 89/93] module: fix missing module_mutex unlock Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 90/93] intel_idle: Don't register CPU notifier if we are not running Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 91/93] xfs: fix periodic log flushing Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 92/93] gspca_kinect: add Kinect for Windows USB id Herton Ronaldo Krzesinski
2013-02-05 22:07 ` [PATCH 93/93] ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area Herton Ronaldo Krzesinski

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='1360102042-10732-7-git-send-email-herton.krzesinski__26805.674940306$1360102230$gmane$org@canonical.com' \
    --to=herton.krzesinski@canonical.com \
    --cc=annie.li@oracle.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=msw@amazon.com \
    --cc=stable@vger.kernel.org \
    --cc=xen-devel@lists.xen.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.