2015-05-20 15:37:29

by Stuart Yoder

[permalink] [raw]
Subject: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ

when allocating a device table, if the requested allocation
is smaller than the default granule size of the ITS
then, we need to round up to the default size

Signed-off-by: Minghuan Lian <[email protected]>
Signed-off-by: Stuart Yoder <[email protected]>
---
-v3 changes
-updated commit message and added comment
-v3 resend-- updated email addresses sent to
-would be nice to get this into 4.1 as the kernel will hang booting
on some systems

drivers/irqchip/irq-gic-v3-its.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 9687f8a..1b7e155 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -828,7 +828,14 @@ static int its_alloc_tables(struct its_node *its)
u64 typer = readq_relaxed(its->base + GITS_TYPER);
u32 ids = GITS_TYPER_DEVBITS(typer);

- order = get_order((1UL << ids) * entry_size);
+ /*
+ * 'order' was initialized earlier to the default page
+ * granule of the the ITS. We can't have an allocation
+ * smaller than that. If the requested allocation
+ * is smaller, round up to the default page granule.
+ */
+ order = max(get_order((1UL << ids) * entry_size),
+ order);
if (order >= MAX_ORDER) {
order = MAX_ORDER - 1;
pr_warn("%s: Device Table too large, reduce its page order to %u\n",
--
2.3.3


2015-05-20 19:25:43

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ

On Wed, 20 May 2015, Stuart Yoder wrote:

> when allocating a device table, if the requested allocation
> is smaller than the default granule size of the ITS
> then, we need to round up to the default size
>
> Signed-off-by: Minghuan Lian <[email protected]>
> Signed-off-by: Stuart Yoder <[email protected]>

So who wrote that patch? That's not a valid SOB chain ....

2015-05-20 20:19:22

by Jason Cooper

[permalink] [raw]
Subject: Re: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ

Hi Stuart,

On Wed, May 20, 2015 at 07:54:57PM +0000, Stuart Yoder wrote:
>
>
> > -----Original Message-----
> > From: Thomas Gleixner [mailto:[email protected]]
> > Sent: Wednesday, May 20, 2015 2:26 PM
> > To: Yoder Stuart-B08248
> > Cc: [email protected]; [email protected]; [email protected]; linux-arm-
> > [email protected]; Lian Minghuan-B31939
> > Subject: Re: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ
> >
> > On Wed, 20 May 2015, Stuart Yoder wrote:
> >

If this were your original email:
---------------------------------------
> > >
> > > From: Minghuan Lian <[email protected]>
> > >
> > > when allocating a device table, if the requested allocation
> > > is smaller than the default granule size of the ITS
> > > then, we need to round up to the default size
> > >
> > > [sy: Added code comments and resubmitted]
> > >
> > > Signed-off-by: Minghuan Lian <[email protected]>
> > > Signed-off-by: Stuart Yoder <[email protected]>
---------------------------------------

it would have worked.

By adding a second 'From' line in the body of the message, 'git am' will put
the correct author on the commit.

> > So who wrote that patch? That's not a valid SOB chain ....
>
> Minghuan wrote the original patch (v1,v2), making the functional change.
> I wrote/added the comments and submitted v3, after discussing with
> Minghuan.

thx,

Jason.

2015-05-20 20:09:04

by Thomas Gleixner

[permalink] [raw]
Subject: RE: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ

On Wed, 20 May 2015, Stuart Yoder wrote:

>
>
> > -----Original Message-----
> > From: Thomas Gleixner [mailto:[email protected]]
> > Sent: Wednesday, May 20, 2015 2:26 PM
> > To: Yoder Stuart-B08248
> > Cc: [email protected]; [email protected]; [email protected]; linux-arm-
> > [email protected]; Lian Minghuan-B31939
> > Subject: Re: [RESEND][ PATCH v3] irqchip/gicv3-its: ITS table size should not be smaller than PSZ
> >
> > On Wed, 20 May 2015, Stuart Yoder wrote:
> >
> > > when allocating a device table, if the requested allocation
> > > is smaller than the default granule size of the ITS
> > > then, we need to round up to the default size
> > >
> >
> > So who wrote that patch? That's not a valid SOB chain ....
>
> Minghuan wrote the original patch (v1,v2), making the functional change.
> I wrote/added the comments and submitted v3, after discussing with
> Minghuan.
>
> Given that, what is the correct signed-off-by chain?

From: Minghuan Lian <[email protected]>

Signed-off-by: Minghuan Lian <[email protected]>
[ Stuart: Added comments and massaged changelog]
Signed-off-by: Stuart Yoder <[email protected]>

So the authorship gets attributed to Minghuan and it's noticed in the
changelog that you added comments and the changelog updates and then
sent the patch.

I'll apply it with that change, ok?

Thanks,

tglx

Subject: [tip:irq/urgent] irqchip/gicv3-its: ITS table size should not be smaller than PSZ

Commit-ID: 3ad2a5f57656a14d964b673a5a0e4ab0e583c870
Gitweb: http://git.kernel.org/tip/3ad2a5f57656a14d964b673a5a0e4ab0e583c870
Author: Minghuan Lian <[email protected]>
AuthorDate: Wed, 20 May 2015 10:13:15 -0500
Committer: Thomas Gleixner <[email protected]>
CommitDate: Wed, 20 May 2015 22:13:37 +0200

irqchip/gicv3-its: ITS table size should not be smaller than PSZ

When allocating a device table, if the requested allocation is smaller
than the default granule size of the ITS then, we need to round up to
the default size.

Signed-off-by: Minghuan Lian <[email protected]>
[ stuart: Added comments and massaged changelog ]
Signed-off-by: Stuart Yoder <[email protected]>
Reviewed-by: Marc Zygnier <[email protected]>
Cc: <[email protected]>
Cc: <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
---
drivers/irqchip/irq-gic-v3-its.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 9687f8a..1b7e155 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -828,7 +828,14 @@ static int its_alloc_tables(struct its_node *its)
u64 typer = readq_relaxed(its->base + GITS_TYPER);
u32 ids = GITS_TYPER_DEVBITS(typer);

- order = get_order((1UL << ids) * entry_size);
+ /*
+ * 'order' was initialized earlier to the default page
+ * granule of the the ITS. We can't have an allocation
+ * smaller than that. If the requested allocation
+ * is smaller, round up to the default page granule.
+ */
+ order = max(get_order((1UL << ids) * entry_size),
+ order);
if (order >= MAX_ORDER) {
order = MAX_ORDER - 1;
pr_warn("%s: Device Table too large, reduce its page order to %u\n",