From: Emil Medve <Emilian.Medve-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org>
To: Sethi Varun-B16395
<Varun.Sethi-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org>,
"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
"joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org"
<joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
"jroedel-l3A5Bk7waGM@public.gmane.org"
<jroedel-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [PATCH] iommu/fsl: Really fix init section(s) content
Date: Mon, 16 Feb 2015 00:05:17 -0600 [thread overview]
Message-ID: <54E1889D.5040902@Freescale.com> (raw)
In-Reply-To: <BN3PR0301MB1219994CDB540EDC2F7B1EC3EA230-CEkquS/Gb81uuip9JPHoc5wN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
Hello Varun,
On 02/13/2015 12:39 AM, Sethi Varun-B16395 wrote:
> Thanks Emil, Has this also been tested in context of DPAA?
Yes. We regressed it across all the SoC(s)
Cheers,
>> -----Original Message-----
>> From: Emil Medve [mailto:Emilian.Medve-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org]
>> Sent: Friday, February 13, 2015 3:15 AM
>> To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org; joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org; jroedel-l3A5Bk7waGM@public.gmane.org;
>> Sethi Varun-B16395
>> Cc: Medve Emilian-EMMEDVE1
>> Subject: [PATCH] iommu/fsl: Really fix init section(s) content
>>
>> '0f1fb99 iommu/fsl: Fix section mismatch' was intended to address the
>> modpost warning and the potential crash. Crash which is actually easy to
>> trigger with a 'unbind' followed by a 'bind' sequence. The fix is/ wrong as
>> fsl_of_pamu_driver.driver gets added by bus_add_driver() to a couple of
>> klist(s) which become invalid/corrupted as soon as the init sections are freed.
>> Depending on when/how the init sections storage is reused various/random
>> errors and crashes will happen
>>
>> 'cd70d46 iommu/fsl: Various cleanups' contains annotations that go further
>> down the wrong path laid by '0f1fb99 iommu/fsl: Fix section mismatch'
>>
>> Now remove all the incorrect annotations from the above mentioned
>> patches (not exactly a revert) and those previously existing in the code, This
>> fixes the modpost warning(s), the unbind/bind sequence crashes and the
>> random errors/crashes
>>
>> Signed-off-by: Emil Medve <Emilian.Medve-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org>
>> ---
>>
>> Hello Joerg,
>>
>>
>> This is a critical fix and needs to go into v3.20
>>
>>
>> Cheers,
>>
>> drivers/iommu/fsl_pamu.c | 26 +++++++++++++-------------
>> 1 file changed, 13 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/iommu/fsl_pamu.c b/drivers/iommu/fsl_pamu.c index
>> abeedc9..2570f2a 100644
>> --- a/drivers/iommu/fsl_pamu.c
>> +++ b/drivers/iommu/fsl_pamu.c
>> @@ -41,7 +41,6 @@ struct pamu_isr_data {
>>
>> static struct paace *ppaact;
>> static struct paace *spaact;
>> -static struct ome *omt __initdata;
>>
>> /*
>> * Table for matching compatible strings, for device tree @@ -50,7 +49,7 @@
>> static struct ome *omt __initdata;
>> * SOCs. For the older SOCs "fsl,qoriq-device-config-1.0"
>> * string would be used.
>> */
>> -static const struct of_device_id guts_device_ids[] __initconst = {
>> +static const struct of_device_id guts_device_ids[] = {
>> { .compatible = "fsl,qoriq-device-config-1.0", },
>> { .compatible = "fsl,qoriq-device-config-2.0", },
>> {}
>> @@ -599,7 +598,7 @@ found_cpu_node:
>> * Memory accesses to QMAN and BMAN private memory need not be
>> coherent, so
>> * clear the PAACE entry coherency attribute for them.
>> */
>> -static void __init setup_qbman_paace(struct paace *ppaace, int
>> paace_type)
>> +static void setup_qbman_paace(struct paace *ppaace, int paace_type)
>> {
>> switch (paace_type) {
>> case QMAN_PAACE:
>> @@ -629,7 +628,7 @@ static void __init setup_qbman_paace(struct paace
>> *ppaace, int paace_type)
>> * this table to translate device transaction to appropriate corenet
>> * transaction.
>> */
>> -static void __init setup_omt(struct ome *omt)
>> +static void setup_omt(struct ome *omt)
>> {
>> struct ome *ome;
>>
>> @@ -666,7 +665,7 @@ static void __init setup_omt(struct ome *omt)
>> * Get the maximum number of PAACT table entries
>> * and subwindows supported by PAMU
>> */
>> -static void __init get_pamu_cap_values(unsigned long pamu_reg_base)
>> +static void get_pamu_cap_values(unsigned long pamu_reg_base)
>> {
>> u32 pc_val;
>>
>> @@ -676,9 +675,9 @@ static void __init get_pamu_cap_values(unsigned
>> long pamu_reg_base) }
>>
>> /* Setup PAMU registers pointing to PAACT, SPAACT and OMT */ -static int
>> __init setup_one_pamu(unsigned long pamu_reg_base, unsigned long
>> pamu_reg_size,
>> - phys_addr_t ppaact_phys, phys_addr_t
>> spaact_phys,
>> - phys_addr_t omt_phys)
>> +static int setup_one_pamu(unsigned long pamu_reg_base, unsigned long
>> pamu_reg_size,
>> + phys_addr_t ppaact_phys, phys_addr_t
>> spaact_phys,
>> + phys_addr_t omt_phys)
>> {
>> u32 *pc;
>> struct pamu_mmap_regs *pamu_regs;
>> @@ -720,7 +719,7 @@ static int __init setup_one_pamu(unsigned long
>> pamu_reg_base, unsigned long pamu }
>>
>> /* Enable all device LIODNS */
>> -static void __init setup_liodns(void)
>> +static void setup_liodns(void)
>> {
>> int i, len;
>> struct paace *ppaace;
>> @@ -846,7 +845,7 @@ struct ccsr_law {
>> /*
>> * Create a coherence subdomain for a given memory block.
>> */
>> -static int __init create_csd(phys_addr_t phys, size_t size, u32 csd_port_id)
>> +static int create_csd(phys_addr_t phys, size_t size, u32 csd_port_id)
>> {
>> struct device_node *np;
>> const __be32 *iprop;
>> @@ -988,7 +987,7 @@ error:
>> static const struct {
>> u32 svr;
>> u32 port_id;
>> -} port_id_map[] __initconst = {
>> +} port_id_map[] = {
>> {(SVR_P2040 << 8) | 0x10, 0xFF000000}, /* P2040 1.0 */
>> {(SVR_P2040 << 8) | 0x11, 0xFF000000}, /* P2040 1.1 */
>> {(SVR_P2041 << 8) | 0x10, 0xFF000000}, /* P2041 1.0 */
>> @@ -1006,7 +1005,7 @@ static const struct {
>>
>> #define SVR_SECURITY 0x80000 /* The Security (E) bit */
>>
>> -static int __init fsl_pamu_probe(struct platform_device *pdev)
>> +static int fsl_pamu_probe(struct platform_device *pdev)
>> {
>> struct device *dev = &pdev->dev;
>> void __iomem *pamu_regs = NULL;
>> @@ -1022,6 +1021,7 @@ static int __init fsl_pamu_probe(struct
>> platform_device *pdev)
>> int irq;
>> phys_addr_t ppaact_phys;
>> phys_addr_t spaact_phys;
>> + struct ome *omt;
>> phys_addr_t omt_phys;
>> size_t mem_size = 0;
>> unsigned int order = 0;
>> @@ -1200,7 +1200,7 @@ error:
>> return ret;
>> }
>>
>> -static struct platform_driver fsl_of_pamu_driver __initdata = {
>> +static struct platform_driver fsl_of_pamu_driver = {
>> .driver = {
>> .name = "fsl-of-pamu",
>> },
>> --
>> 2.3.0
next prev parent reply other threads:[~2015-02-16 6:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 21:45 [PATCH] iommu/fsl: Really fix init section(s) content Emil Medve
[not found] ` <1423777528-8143-1-git-send-email-Emilian.Medve-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org>
2015-02-13 6:39 ` Varun Sethi
[not found] ` <BN3PR0301MB1219994CDB540EDC2F7B1EC3EA230-CEkquS/Gb81uuip9JPHoc5wN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2015-02-16 6:05 ` Emil Medve [this message]
[not found] ` <54E1889D.5040902-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org>
2015-02-16 6:42 ` Varun Sethi
2015-03-03 13:55 ` Joerg Roedel
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=54E1889D.5040902@Freescale.com \
--to=emilian.medve-edlz3wwmn0ll57midrcfdg@public.gmane.org \
--cc=Varun.Sethi-eDlz3WWmN0ll57MIdRCFDg@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=jroedel-l3A5Bk7waGM@public.gmane.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.