Skip to content

Commit

Permalink
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/l…
Browse files Browse the repository at this point in the history
…inux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner:
 "Three fixes for irq chip drivers:

   - Make sure the allocations in the GIC-V3 ITS driver are large enough
     to accomodate the interrupt space

   - Fix a misplaced __iomem annotation which causes a splat of 26
     sparse warnings

   - Remove an unused function in the IMX GPCV2 driver which causes
     build warnings"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip/irq-imx-gpcv2: Remove unused function
  irqchip/gic-v3-its: Ensure nr_ites >= nr_lpis
  irqchip/gic-v3-its: Fix misplaced __iomem annotations
  • Loading branch information
Linus Torvalds committed Mar 18, 2018
2 parents 23fe85a + a2f9e65 commit d2149e1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 21 deletions.
13 changes: 6 additions & 7 deletions drivers/irqchip/irq-gic-v3-its.c
Original file line number Diff line number Diff line change
Expand Up @@ -1412,7 +1412,7 @@ static struct irq_chip its_irq_chip = {
* This gives us (((1UL << id_bits) - 8192) >> 5) possible allocations.
*/
#define IRQS_PER_CHUNK_SHIFT 5
#define IRQS_PER_CHUNK (1 << IRQS_PER_CHUNK_SHIFT)
#define IRQS_PER_CHUNK (1UL << IRQS_PER_CHUNK_SHIFT)
#define ITS_MAX_LPI_NRBITS 16 /* 64K LPIs */

static unsigned long *lpi_bitmap;
Expand Down Expand Up @@ -2119,11 +2119,10 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id,

dev = kzalloc(sizeof(*dev), GFP_KERNEL);
/*
* At least one bit of EventID is being used, hence a minimum
* of two entries. No, the architecture doesn't let you
* express an ITT with a single entry.
* We allocate at least one chunk worth of LPIs bet device,
* and thus that many ITEs. The device may require less though.
*/
nr_ites = max(2UL, roundup_pow_of_two(nvecs));
nr_ites = max(IRQS_PER_CHUNK, roundup_pow_of_two(nvecs));
sz = nr_ites * its->ite_size;
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
itt = kzalloc(sz, GFP_KERNEL);
Expand Down Expand Up @@ -2495,7 +2494,7 @@ static int its_vpe_set_affinity(struct irq_data *d,

static void its_vpe_schedule(struct its_vpe *vpe)
{
void * __iomem vlpi_base = gic_data_rdist_vlpi_base();
void __iomem *vlpi_base = gic_data_rdist_vlpi_base();
u64 val;

/* Schedule the VPE */
Expand Down Expand Up @@ -2527,7 +2526,7 @@ static void its_vpe_schedule(struct its_vpe *vpe)

static void its_vpe_deschedule(struct its_vpe *vpe)
{
void * __iomem vlpi_base = gic_data_rdist_vlpi_base();
void __iomem *vlpi_base = gic_data_rdist_vlpi_base();
u32 count = 1000000; /* 1s! */
bool clean;
u64 val;
Expand Down
14 changes: 0 additions & 14 deletions drivers/irqchip/irq-imx-gpcv2.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,6 @@ struct gpcv2_irqchip_data {

static struct gpcv2_irqchip_data *imx_gpcv2_instance;

/*
* Interface for the low level wakeup code.
*/
u32 imx_gpcv2_get_wakeup_source(u32 **sources)
{
if (!imx_gpcv2_instance)
return 0;

if (sources)
*sources = imx_gpcv2_instance->wakeup_sources;

return IMR_NUM;
}

static int gpcv2_wakeup_source_save(void)
{
struct gpcv2_irqchip_data *cd;
Expand Down

0 comments on commit d2149e1

Please sign in to comment.