diff for duplicates of <87ei79uvdz.fsf@ti.com> diff --git a/a/1.txt b/N1/1.txt index 1ab9a50..51df40a 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -9,25 +9,25 @@ Dave Martin <dave.martin@linaro.org> writes: >>>> On Mon, 14 Feb 2011, Dave Martin wrote: >>>> >>>> > @@ -289,8 +297,20 @@ clean_l2: ->>>> > * - should be faster and will change with kernel ->>>> > * - 'might' have to copy address, load and jump to it ->>>> > */ +>>>> > ? ? * ?- should be faster and will change with kernel +>>>> > ? ? * ?- 'might' have to copy address, load and jump to it +>>>> > ? ? */ >>>> > +#ifdef CONFIG_THUMB2_KERNEL ->>>> > + /* kernel is non-interworking : must do this from Thumb */ ->>>> > + adr r1, . + 1 ->>>> > + bx r1 ->>>> > + .thumb +>>>> > + ?/* kernel is non-interworking : must do this from Thumb */ +>>>> > + ?adr ? ? r1, . + 1 +>>>> > + ?bx ? ? ?r1 +>>>> > + ?.thumb >>>> > +#endif ->>>> > ldr r1, kernel_flush +>>>> > ? ?ldr ? ? r1, kernel_flush >>>> >>>> Didn't you mean this instead: >>>> ->>>> /* kernel is non-interworking : must do this from Thumb */ ->>>> adr r1, 1f + 1 ->>>> bx r1 ->>>> .thumb ->>>> 1: ldr r1, kernel_flush ->>>> ... +>>>> ? ? ?/* kernel is non-interworking : must do this from Thumb */ +>>>> ? ? ?adr ? ? r1, 1f + 1 +>>>> ? ? ?bx ? ? ?r1 +>>>> ? ? ?.thumb +>>>> 1: ? ldr ? ? r1, kernel_flush +>>>> ? ? ?... >>> >>> Note that this is intended as an experimental hack, not a real patch >>> (apologies if I didn't make that clear...) @@ -40,32 +40,32 @@ Dave Martin <dave.martin@linaro.org> writes: >>>> >>>> ? >>>> ->>>> > blx r1 +>>>> > ? ?blx ? ? r1 >>>> > +#ifdef CONFIG_THUMB2_KERNEL ->>>> > + .align ->>>> > + bx pc ->>>> > + nop ->>>> > + .arm +>>>> > + ?.align +>>>> > + ?bx ? ? ?pc +>>>> > + ?nop +>>>> > + ?.arm >>>> >>>> Also here, the .align has the potential to introduce a zero halfword in ->>>> the instruction stream before the bx. What about: +>>>> the instruction stream before the bx. ?What about: >>>> ->>>> adr r3, 1f ->>>> bx r3 ->>>> .align ->>>> .arm ->>>> 1: ... +>>>> ? ? ?adr ? ? r3, 1f +>>>> ? ? ?bx ? ? ?r3 +>>>> ? ? ?.align +>>>> ? ? ?.arm +>>>> 1: ? ... >>> >>> .align inserts a 16-bit nop when misaligned in Thumb in a text section, >>> and a word-aligned bx pc is a specific architecturally allowed way ->>> to do an inline switch to ARM. The linker uses this trick for PLT +>>> to do an inline switch to ARM. ?The linker uses this trick for PLT >>> veneers etc. >>> >>> A nicer fix for doing this sort of call from low-level code which >>> might be ARM is to convert arch/arm/mm/*-v7.S to use "bx lr" to return. >>> >>> Generally, we can do this for all arches >= v5, without any ->>> incompatibility. However, since the need for it will be rare and it +>>> incompatibility. ?However, since the need for it will be rare and it >>> will generate patch noise for not much real benefit, >>> I haven't proposed this. >>> @@ -85,8 +85,3 @@ Dave Martin <dave.martin@linaro.org> writes: Yes, that sounds right. Kevin - --- -To unsubscribe from this list: send the line "unsubscribe linux-omap" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index 8a78b1e..38c14d2 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -5,16 +5,10 @@ "ref\020110214153726.GA20144@arm.com\0" "ref\087zkpyxl64.fsf@ti.com\0" "ref\0AANLkTinz1055v7x0y2W_AYkbj+9h7z_cGtF4xn4=pkQ7@mail.gmail.com\0" - "From\0Kevin Hilman <khilman@ti.com>\0" - "Subject\0Re: [PATCH v4 0/5] ARM: omap[34]: Thumb-2 compatibility fixes\0" + "From\0khilman@ti.com (Kevin Hilman)\0" + "Subject\0[PATCH v4 0/5] ARM: omap[34]: Thumb-2 compatibility fixes\0" "Date\0Tue, 15 Feb 2011 08:15:20 -0800\0" - "To\0Dave Martin <dave.martin@linaro.org>\0" - "Cc\0Nicolas Pitre <nicolas.pitre@linaro.org>" - linux-arm-kernel@lists.infradead.org - Tony Lindgren <tony@atomide.com> - Santosh Shilimkar <santosh.shilimkar@ti.com> - Jean Pihet <j-pihet@ti.com> - " linux-omap@vger.kernel.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Dave Martin <dave.martin@linaro.org> writes:\n" @@ -28,25 +22,25 @@ ">>>> On Mon, 14 Feb 2011, Dave Martin wrote:\n" ">>>>\n" ">>>> > @@ -289,8 +297,20 @@ clean_l2:\n" - ">>>> > \302\240 \302\240 * \302\240- should be faster and will change with kernel\n" - ">>>> > \302\240 \302\240 * \302\240- 'might' have to copy address, load and jump to it\n" - ">>>> > \302\240 \302\240 */\n" + ">>>> > ? ? * ?- should be faster and will change with kernel\n" + ">>>> > ? ? * ?- 'might' have to copy address, load and jump to it\n" + ">>>> > ? ? */\n" ">>>> > +#ifdef CONFIG_THUMB2_KERNEL\n" - ">>>> > + \302\240/* kernel is non-interworking : must do this from Thumb */\n" - ">>>> > + \302\240adr \302\240 \302\240 r1, . + 1\n" - ">>>> > + \302\240bx \302\240 \302\240 \302\240r1\n" - ">>>> > + \302\240.thumb\n" + ">>>> > + ?/* kernel is non-interworking : must do this from Thumb */\n" + ">>>> > + ?adr ? ? r1, . + 1\n" + ">>>> > + ?bx ? ? ?r1\n" + ">>>> > + ?.thumb\n" ">>>> > +#endif\n" - ">>>> > \302\240 \302\240ldr \302\240 \302\240 r1, kernel_flush\n" + ">>>> > ? ?ldr ? ? r1, kernel_flush\n" ">>>>\n" ">>>> Didn't you mean this instead:\n" ">>>>\n" - ">>>> \302\240 \302\240 \302\240/* kernel is non-interworking : must do this from Thumb */\n" - ">>>> \302\240 \302\240 \302\240adr \302\240 \302\240 r1, 1f + 1\n" - ">>>> \302\240 \302\240 \302\240bx \302\240 \302\240 \302\240r1\n" - ">>>> \302\240 \302\240 \302\240.thumb\n" - ">>>> 1: \302\240 ldr \302\240 \302\240 r1, kernel_flush\n" - ">>>> \302\240 \302\240 \302\240...\n" + ">>>> ? ? ?/* kernel is non-interworking : must do this from Thumb */\n" + ">>>> ? ? ?adr ? ? r1, 1f + 1\n" + ">>>> ? ? ?bx ? ? ?r1\n" + ">>>> ? ? ?.thumb\n" + ">>>> 1: ? ldr ? ? r1, kernel_flush\n" + ">>>> ? ? ?...\n" ">>>\n" ">>> Note that this is intended as an experimental hack, not a real patch\n" ">>> (apologies if I didn't make that clear...)\n" @@ -59,32 +53,32 @@ ">>>>\n" ">>>> ?\n" ">>>>\n" - ">>>> > \302\240 \302\240blx \302\240 \302\240 r1\n" + ">>>> > ? ?blx ? ? r1\n" ">>>> > +#ifdef CONFIG_THUMB2_KERNEL\n" - ">>>> > + \302\240.align\n" - ">>>> > + \302\240bx \302\240 \302\240 \302\240pc\n" - ">>>> > + \302\240nop\n" - ">>>> > + \302\240.arm\n" + ">>>> > + ?.align\n" + ">>>> > + ?bx ? ? ?pc\n" + ">>>> > + ?nop\n" + ">>>> > + ?.arm\n" ">>>>\n" ">>>> Also here, the .align has the potential to introduce a zero halfword in\n" - ">>>> the instruction stream before the bx. \302\240What about:\n" + ">>>> the instruction stream before the bx. ?What about:\n" ">>>>\n" - ">>>> \302\240 \302\240 \302\240adr \302\240 \302\240 r3, 1f\n" - ">>>> \302\240 \302\240 \302\240bx \302\240 \302\240 \302\240r3\n" - ">>>> \302\240 \302\240 \302\240.align\n" - ">>>> \302\240 \302\240 \302\240.arm\n" - ">>>> 1: \302\240 ...\n" + ">>>> ? ? ?adr ? ? r3, 1f\n" + ">>>> ? ? ?bx ? ? ?r3\n" + ">>>> ? ? ?.align\n" + ">>>> ? ? ?.arm\n" + ">>>> 1: ? ...\n" ">>>\n" ">>> .align inserts a 16-bit nop when misaligned in Thumb in a text section,\n" ">>> and a word-aligned bx pc is a specific architecturally allowed way\n" - ">>> to do an inline switch to ARM. \302\240The linker uses this trick for PLT\n" + ">>> to do an inline switch to ARM. ?The linker uses this trick for PLT\n" ">>> veneers etc.\n" ">>>\n" ">>> A nicer fix for doing this sort of call from low-level code which\n" ">>> might be ARM is to convert arch/arm/mm/*-v7.S to use \"bx lr\" to return.\n" ">>>\n" ">>> Generally, we can do this for all arches >= v5, without any\n" - ">>> incompatibility. \302\240However, since the need for it will be rare and it\n" + ">>> incompatibility. ?However, since the need for it will be rare and it\n" ">>> will generate patch noise for not much real benefit,\n" ">>> I haven't proposed this.\n" ">>>\n" @@ -103,11 +97,6 @@ "\n" "Yes, that sounds right.\n" "\n" - "Kevin\n" - "\n" - "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-omap\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" - More majordomo info at http://vger.kernel.org/majordomo-info.html + Kevin -58c11f53fceecea234dc85cd20232673cfaaa5282376a0967b5a8d50ae7319b7 +8c8b0003ad2a01c40b69a77b357c8406fde2bf2c759554997dc4cef6cdabc0e5
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.