Skip to contentSkip to conversation

Commits added to powerpc.git master and powerpc-next branches

PATCH In review Paul Mackerras 7 participants 23 messages Jul 1, 2008 – Jul 2, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Paul.

Adrian Bunk (3):
drivers/macintosh: Various cleanups
powerpc: Don't export asm/asm-compat.h to userspace
powerpc: asm/elf.h: Reduce userspace header

Andrew Lewis (1):
powerpc: Prevent memory corruption due to cache invalidation of unaligned DMA buffer

Andy Whitcroft (1):
powerpc: Add 64 bit version of huge_ptep_set_wrprotect

Anton Vorontsov (9):
powerpc/sysdev: implement FSL GTM support
powerpc/QE: add support for QE USB clocks routing powerpc/QE: prepare QE PIO code for GPIO LIB support powerpc/QE: implement support for the GPIO LIB API powerpc/83xx: new board support: MPC8360E-RDK powerpc/QE: switch to the cpm_muram implementation powerpc/QE: qe_reset should be __init
powerpc/QE: use arch_initcall to probe QUICC Engine GPIOs
powerpc: Implement OF PCI address accessors stubs for CONFIG_PCI=n

Arnd Bergmann (4):
powerpc: Provide dummy crash_shutdown_register powerpc/pseries: Call pseries_kexec_setup only on pseries powerpc/cell: Disable ptcal in case of crash kdump
powerpc: Increase CRASH_HANDLER_MAX

Bart Van Assche (1):
powerpc: Make sure that include/asm-powerpc/spinlock.h does not trigger compilation warnings

Becky Bruce (3):
powerpc: Silly spelling fix in pgtable-ppc32
powerpc: Change BAT code to use phys_addr_t
powerpc: Get rid of bitfields in ppc_bat struct

Benjamin Herrenschmidt (1):
powerpc: Free a PTE bit on ppc64 with 64K pages

Bernhard Walle (1):
powerpc: Remove experimental status of kdump on 64-bit powerpc

Daniel Walker (2):
macintosh/therm_windtunnel: Convert semaphore to mutex macintosh/media bay: Convert semaphore to mutex

Dave Kleikamp (1):
powerpc: hash_huge_page() should get the WIMG bits from the lpte

Giuseppe Coviello (2):
powerpc/4xx: Sam440ep support
powerpc/4xx: Convert Sam440ep DTS to dts-v1

Imre Kaloz (1):
powerpc/4xx: MTD support for the AMCC Taishan Board

Jerone Young (1):
powerpc/booke: Fix definitions for dbcr[1-2] and dbsr registers

Joel Schopp (2):
powerpc: Add cputable entry for Power7 architected mode
powerpc: Tell firmware we support architecture V2.06

Josh Boyer (2):
Revert "[POWERPC] 4xx: Fix 460GT support to not enable FPU" powerpc/4xx: Workaround for PPC440EPx/GRx PCI_28 Errata

Julia Lawall (1):
drivers/macintosh/smu.c: Improve error handling

Kumar Gala (12):
powerpc/booke: Fix some comments related to debug level exceptions powerpc/booke: Add support for new e500mc core powerpc/85xx: add DOZE/NAP support for e500 core powerpc/e500mc: flush L2 on NAP for e500mc
cpm_uart: fix whitespace issues
cpm_uart: Remove !CONFIG_PPC_CPM_NEW_BINDING code powerpc/cpm: Remove !CONFIG_PPC_CPM_NEW_BINDING code powerpc/kprobes: Some minor fixes
powerpc/booke: Add kprobes support for booke style processors
powerpc: Add dma nodes to 83xx, 85xx and 86xx boards
powerpc: Move common module code into its own file powerpc/bootwrapper: Pad .dtb by default

Michael Ellerman (14):
powerpc: Move code patching code into arch/powerpc/lib/code-patching.c
powerpc: Allow create_branch() to return errors
powerpc: Make create_branch() return errors if the branch target is too large
powerpc: Add ppc_function_entry() which gets the entry point for a function
powerpc: Add new code patching routines
powerpc: Add tests of the code patching routines
powerpc: Add PPC_NOP_INSTR, a hash define for the preferred nop instruction
powerpc: Split out do_feature_fixups() from cputable.c
powerpc: Consolidate CPU and firmware feature fixup macros
powerpc: Consolidate feature fixup macros for 64/32 bit
powerpc: Introduce infrastructure for feature sections with alternatives
powerpc: Add logic to patch alternative feature sections
powerpc: Add self-tests of the feature fixup code
powerpc: Use an alternative feature section in entry_64.S

Michael Neuling (10):
powerpc: Add cputable entry for POWER7
powerpc: Fix MSR setting in 32 bit signal code
powerpc: Add macros to access floating point registers in thread_struct.
powerpc: Move altivec_unavailable
powerpc: Make load_up_fpu and load_up_altivec callable
powerpc: Introduce VSX thread_struct and CONFIG_VSX
powerpc: Add VSX CPU feature
powerpc: Add VSX assembler code macros
powerpc: Add VSX context save/restore, ptrace and signal support
powerpc: Add CONFIG_VSX config option

Nick Piggin (2):
powerpc: Optimise smp_wmb on 64-bit processors
spufs: Convert nopfn to fault

Paul Mackerras (1):
powerpc: Only demote individual slices rather than whole process

Scott Wood (1):
powerpc: Fix copy-and-paste error in clrsetbits_le16

Segher Boessenkool (1):

      powerpc: Get rid of CROSS32{AS,LD,OBJCOPY}

Stefan Roese (1):
powerpc/4xx: PCIe driver now detects if a port is disabled via the dev-tree

Stephen Rothwell (7):
viotape: Use unlocked_ioctl
pasemi-rng: Use linux/of_platform.h instead of asm
hwmon: Use linux/of_platform.h instead of asm
macintosh: Use linux/of_{device,platform}.h instead of asm drivers/net: Use linux/of_{device,platform}.h instead of asm
pcmcia: Use linux/of_{device,platform}.h instead of asm
powerpc: Explicitly copy elements of pt_regs

Tony Breeds (1):
powerpc: Change the default link address for pSeries zImage kernels

Valentine Barshak (1):
powerpc/4xx: Fix resource issue in warp-nand.c

Vitaly Bordug (1):
powerpc/85xx: Update pin setup for 8560ads

Wolfgang Grandegger (4):
powerpc/85xx: correct vendor prefix in DTS files for TQM85xx modules powerpc/85xx: add board support for the TQM8548 modules powerpc/85xx: support for the TQM8548 module using the big Flash powerpc/85xx: add local bus nodes for Flash and CAN to tqm8560.dts

#1 lore raw
Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Hold off from pulling this for now, everyone... I inadvertently broke builds with 64k pages by leaving in some stuff that was purely for testing in my "Only demote individual slices rather than whole process" patch. I'll re-do the tree in order to avoid breaking bisection.

Paul.

#2 lore raw
Quoted 11 lines · Paul Mackerras
Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Hold off from pulling this for now, everyone... I inadvertently broke builds with 64k pages by leaving in some stuff that was purely for testing in my "Only demote individual slices rather than whole process" patch. I'll re-do the tree in order to avoid breaking bisection.

Any chance to get my 4xx PTE rework in too ?

Cheers,
Ben.

#3 lore raw
Quoted 7 lines · On Tue, 01 Jul 2008 11:45:10 +1000 Benjamin Herrenschmidt…
Quoted 6 lines · Paul Mackerras
Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Quoted 7 lines
Quoted 5 lines

Hold off from pulling this for now, everyone... I inadvertently broke builds with 64k pages by leaving in some stuff that was purely for testing in my "Only demote individual slices rather than whole process" patch. I'll re-do the tree in order to avoid breaking bisection.

Any chance to get my 4xx PTE rework in too ?

I asked you about that 2 weeks ago. I also asked you to spin a v2 with the comments Kumar asked for. I got nothing back.

If you want it in 2.6.27, do that soon please :)

josh

#4 lore raw
Quoted 7 lines
Quoted 2 lines

Any chance to get my 4xx PTE rework in too ?

I asked you about that 2 weeks ago. I also asked you to spin a v2 with the comments Kumar asked for. I got nothing back.

If you want it in 2.6.27, do that soon please :)

Oops... though I did it. Let me check what I have ...

Ben.

#5 lore raw
Quoted 9 lines · Benjamin Herrenschmidt
Quoted 7 lines
Quoted 2 lines

Any chance to get my 4xx PTE rework in too ?

I asked you about that 2 weeks ago. I also asked you to spin a v2 with the comments Kumar asked for. I got nothing back.

If you want it in 2.6.27, do that soon please :)

Oops... though I did it. Let me check what I have ...

I've you post a new version I'll look at getting the changes for FSL Book-E MMU that match it.

- k

#6 lore raw
In reply to Paul Mackerras
Quoted 5 lines · I wrote:

Hold off from pulling this for now, everyone... I inadvertently broke builds with 64k pages by leaving in some stuff that was purely for testing in my "Only demote individual slices rather than whole process" patch. I'll re-do the tree in order to avoid breaking bisection.

I have redone the tree now. If you have pulled within the last one and a half hours, you'll need to do a git pull -f. Sorry about that.

Paul.

#8 lore raw

PATCH 1/2 powerpc: Fix compile error for CONFIG_VSX

Fix compile error when CONFIG_VSX is enabled.

arch/powerpc/kernel/signal_64.c: In function 'restore_sigcontext':
arch/powerpc/kernel/signal_64.c:241: error: 'i' undeclared (first use in this function)

---

 arch/powerpc/kernel/signal_64.c |    1 +
 1 file changed, 1 insertion(+)
arch/powerpc/kernel/signal_64.c +1 -0
Index: linux-2.6-ozlabs/arch/powerpc/kernel/signal_64.c
===================================================================
@@ -167,6 +167,7 @@ static long restore_sigcontext(struct pt
 #endif
 #ifdef CONFIG_VSX
 	double buf[FP_REGS_SIZE];
+	int i;
 #endif
 	unsigned long err = 0;
 	unsigned long save_r13 = 0;
#9 lore raw

Re: [PATCH 1/2] powerpc: Fix compile error for CONFIG_VSX

Quoted 4 lines · In message <[email protected]> you wrote:

Fix compile error when CONFIG_VSX is enabled.

arch/powerpc/kernel/signal_64.c: In function 'restore_sigcontext':
arch/powerpc/kernel/signal_64.c:241: error: 'i' undeclared (first use in this

function)

FYI.. this was caused by a merge conflict with sfr's patch fcbc5a976b1cafe2e866871c86d239d57503bfd5

Mikey

Quoted 24 lines

---

 arch/powerpc/kernel/signal_64.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-2.6-ozlabs/arch/powerpc/kernel/signal_64.c
===================================================================

arch/powerpc/kernel/signal_64.c +1 -0
@@ -167,6 +167,7 @@ static long restore_sigcontext(struct pt
 #endif
 #ifdef CONFIG_VSX
 	double buf[FP_REGS_SIZE];
+	int i;
 #endif
 	unsigned long err = 0;
 	unsigned long save_r13 = 0;

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

#10 lore raw

PATCH 2/2 powerpc: Update for VSX core file and ptrace

In reply to Michael Neuling

This correctly hooks the VSX dump into Roland McGrath core file infrastructure. It adds the VSX dump information as an additional elf note in the core file (after talking more to the tool chain/gdb guys). This also ensures the formats are consistent between signals, ptrace and core files.

---

 arch/powerpc/kernel/process.c |   19 +------------------
 arch/powerpc/kernel/ptrace.c  |   21 +++++++++++++--------
 include/asm-powerpc/elf.h     |    4 ++--
 include/linux/elf.h           |    1 +
 4 files changed, 17 insertions(+), 28 deletions(-)
arch/powerpc/kernel/process.c +1 -18
Index: linux-2.6-ozlabs/arch/powerpc/kernel/process.c
===================================================================
@@ -162,7 +162,7 @@ void flush_altivec_to_thread(struct task
 	}
 }
 
-int dump_task_altivec(struct task_struct *tsk, elf_vrreg_t *vrregs)
+int dump_task_altivec(struct task_struct *tsk, elf_vrregset_t *vrregs)
 {
 	/* ELF_NVRREG includes the VSCR and VRSAVE which we need to save
 	 * separately, see below */
@@ -249,23 +249,6 @@ int dump_task_vsx(struct task_struct *ts
 }
 #endif /* CONFIG_VSX */
 
-int dump_task_vector(struct task_struct *tsk, elf_vrregset_t *vrregs)
-{
-	int rc = 0;
-	elf_vrreg_t *regs = (elf_vrreg_t *)vrregs;
-#ifdef CONFIG_ALTIVEC
-	rc = dump_task_altivec(tsk, regs);
-	if (rc)
-		return rc;
-	regs += ELF_NVRREG;
-#endif
-
-#ifdef CONFIG_VSX
-	rc = dump_task_vsx(tsk, regs);
-#endif
-	return rc;
-}
-
 #ifdef CONFIG_SPE
 
 void enable_kernel_spe(void)
arch/powerpc/kernel/ptrace.c +13 -8
Index: linux-2.6-ozlabs/arch/powerpc/kernel/ptrace.c
===================================================================
@@ -368,13 +368,15 @@ static int vsr_get(struct task_struct *t
 		   unsigned int pos, unsigned int count,
 		   void *kbuf, void __user *ubuf)
 {
-	int ret;
+	double buf[32];
+	int ret, i;
 
 	flush_vsx_to_thread(target);
 
+	for (i = 0; i < 32 ; i++)
+		buf[i] = current->thread.fpr[i][TS_VSRLOWOFFSET];
 	ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
-				  target->thread.fpr, 0,
-				  32 * sizeof(vector128));
+				  buf, 0, 32 * sizeof(double));
 
 	return ret;
 }
@@ -383,13 +385,16 @@ static int vsr_set(struct task_struct *t
 		   unsigned int pos, unsigned int count,
 		   const void *kbuf, const void __user *ubuf)
 {
-	int ret;
+	double buf[32];
+	int ret,i;
 
 	flush_vsx_to_thread(target);
 
 	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
-				 target->thread.fpr, 0,
-				 32 * sizeof(vector128));
+				 buf, 0, 32 * sizeof(double));
+	for (i = 0; i < 32 ; i++)
+		current->thread.fpr[i][TS_VSRLOWOFFSET] = buf[i];
+
 
 	return ret;
 }
@@ -499,8 +504,8 @@ static const struct user_regset native_r
 #endif
 #ifdef CONFIG_VSX
 	[REGSET_VSX] = {
-		.n = 32,
-		.size = sizeof(vector128), .align = sizeof(vector128),
+		.core_note_type = NT_PPC_VSX, .n = 32,
+		.size = sizeof(double), .align = sizeof(double),
 		.active = vsr_active, .get = vsr_get, .set = vsr_set
 	},
 #endif
include/asm-powerpc/elf.h +2 -2
Index: linux-2.6-ozlabs/include/asm-powerpc/elf.h
===================================================================
@@ -221,8 +221,8 @@ extern int dump_task_fpu(struct task_str
 typedef elf_vrregset_t elf_fpxregset_t;
 
 #ifdef CONFIG_ALTIVEC
-extern int dump_task_vector(struct task_struct *, elf_vrregset_t *vrregs);
-#define ELF_CORE_COPY_XFPREGS(tsk, regs) dump_task_vector(tsk, regs)
+extern int dump_task_altivec(struct task_struct *, elf_vrregset_t *vrregs);
+#define ELF_CORE_COPY_XFPREGS(tsk, regs) dump_task_altivec(tsk, regs)
 #define ELF_CORE_XFPREG_TYPE NT_PPC_VMX
 #endif
 
include/linux/elf.h +1 -0
Index: linux-2.6-ozlabs/include/linux/elf.h
===================================================================
@@ -358,6 +358,7 @@ typedef struct elf64_shdr {
 #define NT_PRXFPREG     0x46e62b7f      /* copied from gdb5.1/include/elf/common.h */
 #define NT_PPC_VMX	0x100		/* PowerPC Altivec/VMX registers */
 #define NT_PPC_SPE	0x101		/* PowerPC SPE/EVR registers */
+#define NT_PPC_VSX	0x102		/* PowerPC VSX registers */
 #define NT_386_TLS	0x200		/* i386 TLS slots (struct user_desc) */
 
 
#11 lore raw

PATCH 1/1 powerpc: fix compile warning in init_thread

In reply to Paul Mackerras

arch/powerpc/kernel/init_task.c:33: warning: missing braces around initializer arch/powerpc/kernel/init_task.c:33: warning: (near initialization for 'init_task.thread.fpr[0]')

Noticed by SFR.

---

 include/asm-powerpc/processor.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/asm-powerpc/processor.h +1 -1
Index: linux-2.6-ozlabs/include/asm-powerpc/processor.h
===================================================================
@@ -222,7 +222,7 @@ struct thread_struct {
 	.ksp_limit = INIT_SP_LIMIT, \
 	.regs = (struct pt_regs *)INIT_SP - 1, /* XXX bogus, I think */ \
 	.fs = KERNEL_DS, \
-	.fpr = {0}, \
+	.fpr = {{0}}, \
 	.fpscr = { .val = 0, }, \
 	.fpexc_mode = 0, \
 }
#12 lore raw

Re: [PATCH] powerpc: fix compile warning in init_thread

Quoted 6 lines · Michael Neuling

arch/powerpc/kernel/init_task.c:33: warning: missing braces around initializer arch/powerpc/kernel/init_task.c:33: warning: (near initialization for 'init_task.thread.fpr[0]')

Noticed by SFR.

That's when fpr is part of the union but what if CONFIG_VSX is off ?

Ben.

Quoted 22 lines

---

 include/asm-powerpc/processor.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6-ozlabs/include/asm-powerpc/processor.h
===================================================================

include/asm-powerpc/processor.h +1 -1
@@ -222,7 +222,7 @@ struct thread_struct {
 	.ksp_limit = INIT_SP_LIMIT, \
 	.regs = (struct pt_regs *)INIT_SP - 1, /* XXX bogus, I think */ \
 	.fs = KERNEL_DS, \
-	.fpr = {0}, \
+	.fpr = {{0}}, \
 	.fpscr = { .val = 0, }, \
 	.fpexc_mode = 0, \
 }

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

#13 lore raw

Re: [PATCH] powerpc: fix compile warning in init_thread

Quoted 2 lines · In message <1214903256.20711.123.camel@pasglop> you wrote:
Quoted 1 line · Michael Neuling

arch/powerpc/kernel/init_task.c:33: warning: missing braces around initiali

zer

Quoted 1 line
Quoted 1 line

arch/powerpc/kernel/init_task.c:33: warning: (near initialization for 'init

_task.thread.fpr[0]')

Quoted 6 lines
Quoted 4 lines

Noticed by SFR.

That's when fpr is part of the union but what if CONFIG_VSX is off ?

It's not a union anymore. It's a 2D array irrespective of CONFIG_VSX.

	double		fpr[32][TS_FPRWIDTH];

Mikey

Quoted 26 lines

Ben.

Quoted 22 lines

---

 include/asm-powerpc/processor.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6-ozlabs/include/asm-powerpc/processor.h
===================================================================

include/asm-powerpc/processor.h +1 -1
@@ -222,7 +222,7 @@ struct thread_struct {
 	.ksp_limit = INIT_SP_LIMIT, \
 	.regs = (struct pt_regs *)INIT_SP - 1, /* XXX bogus, I think */ \
 	.fs = KERNEL_DS, \
-	.fpr = {0}, \
+	.fpr = {{0}}, \
 	.fpscr = { .val = 0, }, \
 	.fpexc_mode = 0, \
 }

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

#14 lore raw
In reply to Paul Mackerras

Hi Paul,

Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Any change of getting the following patches into 2.6.27 ? They have either been acked and not picked, or just ignored so far :-/

[PATCHv2] fs_enet: restore promiscuous and multicast settings in restart()

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19228
[PATCH 2/2] fs_enet: MDIO on GPIO support
	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=18693
[PATCHv3 1/2] [POWERPC] CPM2: Implement GPIO LIB API on CPM2 Freescale SoC.
	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19045
[PATCH] powerpc: Modem control lines support for the cpm_uart driver
	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=17928
[PATCH] cpm_uart: Support uart_wait_until_sent()
	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19233

Best regards,

Signature · 9 lines
Laurent Pinchart
CSE Semaphore Belgium

Chaussee de Bruxelles, 732A
B-1410 Waterloo
Belgium

T +32 (2) 387 42 59
F +32 (2) 387 42 75
#15 lore raw

Hi Paul,

Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Now that the I2C driver for CPM1/CPM2 boards is in the i2c tree, is there any chance to get this one into 2.6.27?

[POWERPC] Add i2c pins to dts and board setup
http://patchwork.ozlabs.org/linuxppc/patch?person=1023&id=18603

Thanks,
Jochen

#16 lore raw
Quoted 8 lines · Jochen Friedrich

Hi Paul,

Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Quoted 5 lines

Now that the I2C driver for CPM1/CPM2 boards is in the i2c tree, is there any chance to get this one into 2.6.27?

[POWERPC] Add i2c pins to dts and board setup
http://patchwork.ozlabs.org/linuxppc/patch?person=1023&id=18603

Will we always want defconfig updates to enable the driver?

- k

#17 lore raw

Hi Kumar,

Quoted 6 lines
Quoted 4 lines

any chance to get this one into 2.6.27?

[POWERPC] Add i2c pins to dts and board setup
http://patchwork.ozlabs.org/linuxppc/patch?person=1023&id=18603

Will we always want defconfig updates to enable the driver?

Good question. Maybe not, as the i2c bus seems to be unused on these boards unless someone connects some i2c devices.

I'll resubmit just the booting-without-of part then.

Thanks,
Jochen

#18 lore raw
Quoted 7 lines · Jochen Friedrich

Hi Kumar,

Quoted 5 lines
Quoted 4 lines

any chance to get this one into 2.6.27?

[POWERPC] Add i2c pins to dts and board setup
http://patchwork.ozlabs.org/linuxppc/patch?person=1023&id=18603

Quoted 6 lines
Quoted 1 line

Will we always want defconfig updates to enable the driver?

Good question. Maybe not, as the i2c bus seems to be unused on these boards unless someone connects some i2c devices.

I'll resubmit just the booting-without-of part then.

Actually, if that's the case I'd prefer to leave the patch is as and just make a note about the fact that the I2C bus isn't connected to anything on the board in the commit message. The code is a good example of setting everything else up and I'd like to have that in the tree.

- k

Applied
#19 lore raw
In reply to Laurent Pinchart
Quoted 11 lines · Laurent Pinchart

Hi Paul,

Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Any change of getting the following patches into 2.6.27 ? They have either been acked and not picked, or just ignored so far :-/

[PATCHv2] fs_enet: restore promiscuous and multicast settings in restart()

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19228

Should go via netdev unless jgarizk says otherwise

Quoted 2 lines

[PATCH 2/2] fs_enet: MDIO on GPIO support

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=18693

ditto

Quoted 2 lines

[PATCHv3 1/2] [POWERPC] CPM2: Implement GPIO LIB API on CPM2 Freescale SoC.

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19045

I'll look at this one

Quoted 2 lines

[PATCH] powerpc: Modem control lines support for the cpm_uart driver

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=17928

this seems to depend on the previous patch.

Quoted 2 lines

[PATCH] cpm_uart: Support uart_wait_until_sent()

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19233

applied

- k

#20 lore raw
Quoted 10 lines · Kumar Gala
Quoted 7 lines · Laurent Pinchart

Hi Paul,

Quoted 3 lines · Paul Mackerras

The following commits have been added to the master and powerpc-next branches of the powerpc.git repository. This includes patches pulled from Kumar's and Josh's trees.

Quoted 8 lines
Quoted 6 lines

Any change of getting the following patches into 2.6.27 ? They have either been acked and not picked, or just ignored so far :-/

[PATCHv2] fs_enet: restore promiscuous and multicast settings in restart()

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19228

Should go via netdev unless jgarizk says otherwise

On 2008-06-18, Jeff wrote:

"My general rule is, anytime I see 80%+ of the patch dealing with arch-specific API functions (such as OF resource stuff), I tend to prefer that goes via an arch tree.

If it's a networking change, of course I'd prefer it came in my direction."

Jeff, could you please tell us if you want to pick this one or if it should go through the powerpc tree ? The patch has been posted to both the linuxppc-dev and netdev lists, and I haven't received any comment from the netdev folks.

Quoted 4 lines
Quoted 2 lines

[PATCH 2/2] fs_enet: MDIO on GPIO support

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=18693

ditto

Jeff, same question :-)

Quoted 5 lines
Quoted 3 lines

[PATCHv3 1/2] [POWERPC] CPM2: Implement GPIO LIB API on CPM2 Freescale SoC.

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19045

I'll look at this one

Thanks.

Quoted 4 lines
Quoted 2 lines

[PATCH] powerpc: Modem control lines support for the cpm_uart driver

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=17928

this seems to depend on the previous patch.

It doesn't strictly depend on the previous one. You will need GPIO LIB API on CPM2 to use the modem control lines, but the cpm_uart driver will fall back to the current behaviour if no GPIO LIB support is present.

Quoted 5 lines
Quoted 2 lines

[PATCH] cpm_uart: Support uart_wait_until_sent()

	http://patchwork.ozlabs.org/linuxppc/patch?person=968&id=19233

applied

Signature · 9 lines
Laurent Pinchart
CSE Semaphore Belgium

Chaussee de Bruxelles, 732A
B-1410 Waterloo
Belgium

T +32 (2) 387 42 59
F +32 (2) 387 42 75
#21 lore raw

PATCH 1/1 powerpc: cleanup copy_to/from_user for vsx and fpr

In reply to Paul Mackerras

This merges and cleans up some of the ugly copy/to from user code which is required for the new fpr and vsx layout in the thread_struct.

Also fixes some hard coded buffer sizes and removes a redundant fpr_flush_to_thread.

---

 arch/powerpc/kernel/signal.h    |   10 +++
 arch/powerpc/kernel/signal_32.c |   40 ++------------
 arch/powerpc/kernel/signal_64.c |  112 ++++++++++++++++++++++++++++------------
 3 files changed, 96 insertions(+), 66 deletions(-)
arch/powerpc/kernel/signal.h +10 -0
Index: linux-2.6-ozlabs/arch/powerpc/kernel/signal.h
===================================================================
@@ -24,6 +24,16 @@ extern int handle_rt_signal32(unsigned l
 			      siginfo_t *info, sigset_t *oldset,
 			      struct pt_regs *regs);
 
+extern unsigned long copy_fpr_to_user(void __user *to,
+				      struct task_struct *task);
+extern unsigned long copy_fpr_from_user(struct task_struct *task,
+					void __user *from);
+#ifdef CONFIG_VSX
+extern unsigned long copy_vsx_to_user(void __user *to,
+				      struct task_struct *task);
+extern unsigned long copy_vsx_from_user(struct task_struct *task,
+					void __user *from);
+#endif
 
 #ifdef CONFIG_PPC64
 
arch/powerpc/kernel/signal_32.c +6 -34
Index: linux-2.6-ozlabs/arch/powerpc/kernel/signal_32.c
===================================================================
@@ -337,10 +337,6 @@ static int save_user_regs(struct pt_regs
 		int sigret)
 {
 	unsigned long msr = regs->msr;
-#ifdef CONFIG_VSX
-	double buf[32];
-	int i;
-#endif
 
 	/* Make sure floating point registers are stored in regs */
 	flush_fp_to_thread(current);
@@ -370,14 +366,9 @@ static int save_user_regs(struct pt_regs
 	if (__put_user(current->thread.vrsave, (u32 __user *)&frame->mc_vregs[32]))
 		return 1;
 #endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_VSX
-	/* save FPR copy to local buffer then write to the thread_struct */
-	flush_fp_to_thread(current);
-	for (i = 0; i < 32 ; i++)
-		buf[i] = current->thread.TS_FPR(i);
-	memcpy(&buf[i], &current->thread.fpscr, sizeof(double));
-	if (__copy_to_user(&frame->mc_fregs, buf, ELF_NFPREG * sizeof(double)))
+	if (copy_fpr_to_user(&frame->mc_fregs, current))
 		return 1;
+#ifdef CONFIG_VSX
 	/*
 	 * Copy VSR 0-31 upper half from thread_struct to local
 	 * buffer, then write that to userspace.  Also set MSR_VSX in
@@ -386,18 +377,10 @@ static int save_user_regs(struct pt_regs
 	 */
 	if (current->thread.used_vsr) {
 		flush_vsx_to_thread(current);
-		for (i = 0; i < 32 ; i++)
-			buf[i] = current->thread.fpr[i][TS_VSRLOWOFFSET];
-		if (__copy_to_user(&frame->mc_vsregs, buf,
-				   ELF_NVSRHALFREG  * sizeof(double)))
+		if (copy_vsx_to_user(&frame->mc_vsregs, current))
 			return 1;
 		msr |= MSR_VSX;
 	}
-#else
-	/* save floating-point registers */
-	if (__copy_to_user(&frame->mc_fregs, current->thread.fpr,
-		    ELF_NFPREG * sizeof(double)))
-		return 1;
 #endif /* CONFIG_VSX */
 #ifdef CONFIG_SPE
 	/* save spe registers */
@@ -442,7 +425,6 @@ static long restore_user_regs(struct pt_
 	unsigned int save_r2 = 0;
 	unsigned long msr;
 #ifdef CONFIG_VSX
-	double buf[32];
 	int i;
 #endif
 
@@ -490,13 +472,10 @@ static long restore_user_regs(struct pt_
 	if (__get_user(current->thread.vrsave, (u32 __user *)&sr->mc_vregs[32]))
 		return 1;
 #endif /* CONFIG_ALTIVEC */
+	if (copy_fpr_from_user(current, &sr->mc_fregs))
+		return 1;
 
 #ifdef CONFIG_VSX
-	if (__copy_from_user(buf, &sr->mc_fregs,sizeof(sr->mc_fregs)))
-		return 1;
-	for (i = 0; i < 32 ; i++)
-		current->thread.TS_FPR(i) = buf[i];
-	memcpy(&current->thread.fpscr, &buf[i], sizeof(double));
 	/*
 	 * Force the process to reload the VSX registers from
 	 * current->thread when it next does VSX instruction.
@@ -507,18 +486,11 @@ static long restore_user_regs(struct pt_
 		 * Restore altivec registers from the stack to a local
 		 * buffer, then write this out to the thread_struct
 		 */
-		if (__copy_from_user(buf, &sr->mc_vsregs,
-				     sizeof(sr->mc_vsregs)))
+		if (copy_vsx_from_user(current, &sr->mc_vsregs))
 			return 1;
-		for (i = 0; i < 32 ; i++)
-			current->thread.fpr[i][TS_VSRLOWOFFSET] = buf[i];
 	} else if (current->thread.used_vsr)
 		for (i = 0; i < 32 ; i++)
 			current->thread.fpr[i][TS_VSRLOWOFFSET] = 0;
-#else
-	if (__copy_from_user(current->thread.fpr, &sr->mc_fregs,
-			     sizeof(sr->mc_fregs)))
-		return 1;
 #endif /* CONFIG_VSX */
 	/*
 	 * force the process to reload the FP registers from
arch/powerpc/kernel/signal_64.c +80 -32

167 lines not on this page · raw message

#22 lore raw

PATCH 1/1 powerpc: cleanup copy_to/from_user for vsx and fpr

This merges and cleans up some of the ugly copy/to from user code which is required for the new fpr and vsx layout in the thread_struct.

Also fixes some hard coded buffer sizes and removes a redundant fpr_flush_to_thread.

---
Sorry, the last version broke 32bit kernel builds

 signal.h    |   10 +++++
 signal_32.c |  109 +++++++++++++++++++++++++++++++++++++++++-------------------
 signal_64.c |   43 ++++++-----------------
 3 files changed, 96 insertions(+), 66 deletions(-)
arch/powerpc/kernel/signal.h +10 -0
Index: linux-2.6-ozlabs/arch/powerpc/kernel/signal.h
===================================================================
@@ -24,6 +24,16 @@ extern int handle_rt_signal32(unsigned l
 			      siginfo_t *info, sigset_t *oldset,
 			      struct pt_regs *regs);
 
+extern unsigned long copy_fpr_to_user(void __user *to,
+				      struct task_struct *task);
+extern unsigned long copy_fpr_from_user(struct task_struct *task,
+					void __user *from);
+#ifdef CONFIG_VSX
+extern unsigned long copy_vsx_to_user(void __user *to,
+				      struct task_struct *task);
+extern unsigned long copy_vsx_from_user(struct task_struct *task,
+					void __user *from);
+#endif
 
 #ifdef CONFIG_PPC64
 
arch/powerpc/kernel/signal_32.c +75 -34

161 lines not on this page · raw message

arch/powerpc/kernel/signal_64.c +11 -32

92 lines not on this page · raw message