From 86a04b430985ea2fd853d89cb2a30a3165775767 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 14 Sep 2011 09:44:30 -0400 Subject: [PATCH] Add patch to fix POWER virtual serial driver (rhbz 738096) --- hvcs_pi_buf_alloc.patch | 43 +++++++++++++++++++++++++++++++++++++++++ kernel.spec | 5 +++++ 2 files changed, 48 insertions(+) create mode 100644 hvcs_pi_buf_alloc.patch diff --git a/hvcs_pi_buf_alloc.patch b/hvcs_pi_buf_alloc.patch new file mode 100644 index 000000000..ecabe49b1 --- /dev/null +++ b/hvcs_pi_buf_alloc.patch @@ -0,0 +1,43 @@ + +The Power platform requires the partner info buffer to be page aligned +otherwise it will fail the partner info hcall with H_PARAMETER. Switch +from using kmalloc to allocate this buffer to __get_free_page to ensure +page alignment. + +Signed-off-by: Brian King +--- + + drivers/tty/hvc/hvcs.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff -puN drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc drivers/tty/hvc/hvcs.c +--- linux-2.6/drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc 2011-09-09 16:00:25.000000000 -0500 ++++ linux-2.6-bjking1/drivers/tty/hvc/hvcs.c 2011-09-09 16:07:08.000000000 -0500 +@@ -1532,7 +1532,7 @@ static int __devinit hvcs_initialize(voi + goto register_fail; + } + +- hvcs_pi_buff = kmalloc(PAGE_SIZE, GFP_KERNEL); ++ hvcs_pi_buff = (unsigned long *) __get_free_page(GFP_KERNEL); + if (!hvcs_pi_buff) { + rc = -ENOMEM; + goto buff_alloc_fail; +@@ -1548,7 +1548,7 @@ static int __devinit hvcs_initialize(voi + return 0; + + kthread_fail: +- kfree(hvcs_pi_buff); ++ free_page((unsigned long)hvcs_pi_buff); + buff_alloc_fail: + tty_unregister_driver(hvcs_tty_driver); + register_fail: +@@ -1597,7 +1597,7 @@ static void __exit hvcs_module_exit(void + kthread_stop(hvcs_task); + + spin_lock(&hvcs_pi_lock); +- kfree(hvcs_pi_buff); ++ free_page((unsigned long)hvcs_pi_buff); + hvcs_pi_buff = NULL; + spin_unlock(&hvcs_pi_lock); + +_ diff --git a/kernel.spec b/kernel.spec index 0f69a6a96..16cb35fec 100644 --- a/kernel.spec +++ b/kernel.spec @@ -728,6 +728,8 @@ Patch13006: add-macbookair41-trackpad.patch Patch13007: add-macbookair41-keyboard.patch Patch13008: add-macbookair41-btusb.patch +Patch13009: hvcs_pi_buf_alloc.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1340,6 +1342,8 @@ ApplyPatch add-macbookair41-trackpad.patch ApplyPatch add-macbookair41-keyboard.patch ApplyPatch add-macbookair41-btusb.patch +ApplyPatch hvcs_pi_buf_alloc.patch + # utrace. ApplyPatch utrace.patch @@ -2053,6 +2057,7 @@ fi %changelog * Wed Sep 14 2011 Josh Boyer - Add support for Macbook Air 4,1 keyboard, trackpad, and bluetooth +- Add patch to fix HVCS on ppc64 (rhbz 738096) * Mon Sep 12 2011 Josh Boyer - Linux 3.1-rc6