Magellan Linux

Annotation of /trunk/kernel-alx/patches-4.9/0143-4.9.44-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2980 - (hide annotations) (download)
Tue Aug 29 09:04:07 2017 UTC (6 years, 8 months ago) by niro
File size: 77223 byte(s)
-linux-4.9.44
1 niro 2980 diff --git a/Makefile b/Makefile
2     index 77953bf3f40a..3e95dfdbe572 100644
3     --- a/Makefile
4     +++ b/Makefile
5     @@ -1,6 +1,6 @@
6     VERSION = 4
7     PATCHLEVEL = 9
8     -SUBLEVEL = 43
9     +SUBLEVEL = 44
10     EXTRAVERSION =
11     NAME = Roaring Lionus
12    
13     diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S
14     index 1910223a9c02..cea2bb1621e6 100644
15     --- a/arch/mips/dec/int-handler.S
16     +++ b/arch/mips/dec/int-handler.S
17     @@ -147,23 +147,12 @@
18     * Find irq with highest priority
19     */
20     # open coded PTR_LA t1, cpu_mask_nr_tbl
21     -#if (_MIPS_SZPTR == 32)
22     +#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
23     # open coded la t1, cpu_mask_nr_tbl
24     lui t1, %hi(cpu_mask_nr_tbl)
25     addiu t1, %lo(cpu_mask_nr_tbl)
26     -
27     -#endif
28     -#if (_MIPS_SZPTR == 64)
29     - # open coded dla t1, cpu_mask_nr_tbl
30     - .set push
31     - .set noat
32     - lui t1, %highest(cpu_mask_nr_tbl)
33     - lui AT, %hi(cpu_mask_nr_tbl)
34     - daddiu t1, t1, %higher(cpu_mask_nr_tbl)
35     - daddiu AT, AT, %lo(cpu_mask_nr_tbl)
36     - dsll t1, 32
37     - daddu t1, t1, AT
38     - .set pop
39     +#else
40     +#error GCC `-msym32' option required for 64-bit DECstation builds
41     #endif
42     1: lw t2,(t1)
43     nop
44     @@ -214,23 +203,12 @@
45     * Find irq with highest priority
46     */
47     # open coded PTR_LA t1,asic_mask_nr_tbl
48     -#if (_MIPS_SZPTR == 32)
49     +#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
50     # open coded la t1, asic_mask_nr_tbl
51     lui t1, %hi(asic_mask_nr_tbl)
52     addiu t1, %lo(asic_mask_nr_tbl)
53     -
54     -#endif
55     -#if (_MIPS_SZPTR == 64)
56     - # open coded dla t1, asic_mask_nr_tbl
57     - .set push
58     - .set noat
59     - lui t1, %highest(asic_mask_nr_tbl)
60     - lui AT, %hi(asic_mask_nr_tbl)
61     - daddiu t1, t1, %higher(asic_mask_nr_tbl)
62     - daddiu AT, AT, %lo(asic_mask_nr_tbl)
63     - dsll t1, 32
64     - daddu t1, t1, AT
65     - .set pop
66     +#else
67     +#error GCC `-msym32' option required for 64-bit DECstation builds
68     #endif
69     2: lw t2,(t1)
70     nop
71     diff --git a/arch/xtensa/kernel/xtensa_ksyms.c b/arch/xtensa/kernel/xtensa_ksyms.c
72     index 4d2872fd9bb5..a71d2739fa82 100644
73     --- a/arch/xtensa/kernel/xtensa_ksyms.c
74     +++ b/arch/xtensa/kernel/xtensa_ksyms.c
75     @@ -94,13 +94,11 @@ unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
76     }
77     EXPORT_SYMBOL(__sync_fetch_and_or_4);
78    
79     -#ifdef CONFIG_NET
80     /*
81     * Networking support
82     */
83     EXPORT_SYMBOL(csum_partial);
84     EXPORT_SYMBOL(csum_partial_copy_generic);
85     -#endif /* CONFIG_NET */
86    
87     /*
88     * Architecture-specific symbols
89     diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c
90     index 1a804a2f9a5b..3c75c4e597da 100644
91     --- a/arch/xtensa/mm/cache.c
92     +++ b/arch/xtensa/mm/cache.c
93     @@ -103,6 +103,7 @@ void clear_user_highpage(struct page *page, unsigned long vaddr)
94     clear_page_alias(kvaddr, paddr);
95     preempt_enable();
96     }
97     +EXPORT_SYMBOL(clear_user_highpage);
98    
99     void copy_user_highpage(struct page *dst, struct page *src,
100     unsigned long vaddr, struct vm_area_struct *vma)
101     @@ -119,10 +120,7 @@ void copy_user_highpage(struct page *dst, struct page *src,
102     copy_page_alias(dst_vaddr, src_vaddr, dst_paddr, src_paddr);
103     preempt_enable();
104     }
105     -
106     -#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
107     -
108     -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
109     +EXPORT_SYMBOL(copy_user_highpage);
110    
111     /*
112     * Any time the kernel writes to a user page cache page, or it is about to
113     @@ -176,7 +174,7 @@ void flush_dcache_page(struct page *page)
114    
115     /* There shouldn't be an entry in the cache for this page anymore. */
116     }
117     -
118     +EXPORT_SYMBOL(flush_dcache_page);
119    
120     /*
121     * For now, flush the whole cache. FIXME??
122     @@ -188,6 +186,7 @@ void local_flush_cache_range(struct vm_area_struct *vma,
123     __flush_invalidate_dcache_all();
124     __invalidate_icache_all();
125     }
126     +EXPORT_SYMBOL(local_flush_cache_range);
127    
128     /*
129     * Remove any entry in the cache for this page.
130     @@ -207,8 +206,9 @@ void local_flush_cache_page(struct vm_area_struct *vma, unsigned long address,
131     __flush_invalidate_dcache_page_alias(virt, phys);
132     __invalidate_icache_page_alias(virt, phys);
133     }
134     +EXPORT_SYMBOL(local_flush_cache_page);
135    
136     -#endif
137     +#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
138    
139     void
140     update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
141     @@ -225,7 +225,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
142    
143     flush_tlb_page(vma, addr);
144    
145     -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
146     +#if (DCACHE_WAY_SIZE > PAGE_SIZE)
147    
148     if (!PageReserved(page) && test_bit(PG_arch_1, &page->flags)) {
149     unsigned long phys = page_to_phys(page);
150     @@ -256,7 +256,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
151     * flush_dcache_page() on the page.
152     */
153    
154     -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
155     +#if (DCACHE_WAY_SIZE > PAGE_SIZE)
156    
157     void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
158     unsigned long vaddr, void *dst, const void *src,
159     diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
160     index afdd55ddf821..1ac9a95e1d78 100644
161     --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
162     +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
163     @@ -264,8 +264,8 @@ static int submit_reloc(struct etnaviv_gem_submit *submit, void *stream,
164     if (ret)
165     return ret;
166    
167     - if (r->reloc_offset >= bo->obj->base.size - sizeof(*ptr)) {
168     - DRM_ERROR("relocation %u outside object", i);
169     + if (r->reloc_offset > bo->obj->base.size - sizeof(*ptr)) {
170     + DRM_ERROR("relocation %u outside object\n", i);
171     return -EINVAL;
172     }
173    
174     diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
175     index 95a72771eea6..89a77743ab29 100644
176     --- a/drivers/gpu/drm/i915/intel_color.c
177     +++ b/drivers/gpu/drm/i915/intel_color.c
178     @@ -394,6 +394,7 @@ static void broadwell_load_luts(struct drm_crtc_state *state)
179     }
180    
181     /* Program the max register to clamp values > 1.0. */
182     + i = lut_size - 1;
183     I915_WRITE(PREC_PAL_GC_MAX(pipe, 0),
184     drm_color_lut_extract(lut[i].red, 16));
185     I915_WRITE(PREC_PAL_GC_MAX(pipe, 1),
186     diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
187     index 59b380dbf27f..c3888822add1 100644
188     --- a/drivers/iio/accel/bmc150-accel-core.c
189     +++ b/drivers/iio/accel/bmc150-accel-core.c
190     @@ -193,7 +193,6 @@ struct bmc150_accel_data {
191     struct regmap *regmap;
192     int irq;
193     struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS];
194     - atomic_t active_intr;
195     struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS];
196     struct mutex mutex;
197     u8 fifo_mode, watermark;
198     @@ -493,11 +492,6 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i,
199     goto out_fix_power_state;
200     }
201    
202     - if (state)
203     - atomic_inc(&data->active_intr);
204     - else
205     - atomic_dec(&data->active_intr);
206     -
207     return 0;
208    
209     out_fix_power_state:
210     @@ -1709,8 +1703,7 @@ static int bmc150_accel_resume(struct device *dev)
211     struct bmc150_accel_data *data = iio_priv(indio_dev);
212    
213     mutex_lock(&data->mutex);
214     - if (atomic_read(&data->active_intr))
215     - bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
216     + bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
217     bmc150_accel_fifo_set_mode(data);
218     mutex_unlock(&data->mutex);
219    
220     diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
221     index 228a003adeed..d1bde6d2721e 100644
222     --- a/drivers/iio/adc/vf610_adc.c
223     +++ b/drivers/iio/adc/vf610_adc.c
224     @@ -77,7 +77,7 @@
225     #define VF610_ADC_ADSTS_MASK 0x300
226     #define VF610_ADC_ADLPC_EN 0x80
227     #define VF610_ADC_ADHSC_EN 0x400
228     -#define VF610_ADC_REFSEL_VALT 0x100
229     +#define VF610_ADC_REFSEL_VALT 0x800
230     #define VF610_ADC_REFSEL_VBG 0x1000
231     #define VF610_ADC_ADTRG_HARD 0x2000
232     #define VF610_ADC_AVGS_8 0x4000
233     diff --git a/drivers/iio/light/tsl2563.c b/drivers/iio/light/tsl2563.c
234     index 04598ae993d4..f0d3f749aa01 100644
235     --- a/drivers/iio/light/tsl2563.c
236     +++ b/drivers/iio/light/tsl2563.c
237     @@ -626,7 +626,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
238     struct tsl2563_chip *chip = iio_priv(dev_info);
239    
240     iio_push_event(dev_info,
241     - IIO_UNMOD_EVENT_CODE(IIO_LIGHT,
242     + IIO_UNMOD_EVENT_CODE(IIO_INTENSITY,
243     0,
244     IIO_EV_TYPE_THRESH,
245     IIO_EV_DIR_EITHER),
246     diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
247     index 323dba35bc9a..b2ca10c4d2a5 100644
248     --- a/drivers/mmc/core/mmc.c
249     +++ b/drivers/mmc/core/mmc.c
250     @@ -1258,7 +1258,7 @@ int mmc_hs400_to_hs200(struct mmc_card *card)
251     static int mmc_select_hs400es(struct mmc_card *card)
252     {
253     struct mmc_host *host = card->host;
254     - int err = 0;
255     + int err = -EINVAL;
256     u8 val;
257    
258     if (!(host->caps & MMC_CAP_8_BIT_DATA)) {
259     diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
260     index f222f8a7ba52..31a6ee307d80 100644
261     --- a/drivers/mtd/nand/nand_base.c
262     +++ b/drivers/mtd/nand/nand_base.c
263     @@ -64,8 +64,14 @@ static int nand_ooblayout_ecc_sp(struct mtd_info *mtd, int section,
264    
265     if (!section) {
266     oobregion->offset = 0;
267     - oobregion->length = 4;
268     + if (mtd->oobsize == 16)
269     + oobregion->length = 4;
270     + else
271     + oobregion->length = 3;
272     } else {
273     + if (mtd->oobsize == 8)
274     + return -ERANGE;
275     +
276     oobregion->offset = 6;
277     oobregion->length = ecc->total - 4;
278     }
279     @@ -1081,7 +1087,9 @@ static int nand_setup_data_interface(struct nand_chip *chip)
280     * Ensure the timing mode has been changed on the chip side
281     * before changing timings on the controller side.
282     */
283     - if (chip->onfi_version) {
284     + if (chip->onfi_version &&
285     + (le16_to_cpu(chip->onfi_params.opt_cmd) &
286     + ONFI_OPT_CMD_SET_GET_FEATURES)) {
287     u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = {
288     chip->onfi_timing_mode_default,
289     };
290     diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c
291     index 9931be6af0ca..04d6fd2be08c 100644
292     --- a/drivers/pinctrl/intel/pinctrl-merrifield.c
293     +++ b/drivers/pinctrl/intel/pinctrl-merrifield.c
294     @@ -343,9 +343,9 @@ static const struct pinctrl_pin_desc mrfld_pins[] = {
295    
296     static const unsigned int mrfld_sdio_pins[] = { 50, 51, 52, 53, 54, 55, 56 };
297     static const unsigned int mrfld_spi5_pins[] = { 90, 91, 92, 93, 94, 95, 96 };
298     -static const unsigned int mrfld_uart0_pins[] = { 124, 125, 126, 127 };
299     -static const unsigned int mrfld_uart1_pins[] = { 128, 129, 130, 131 };
300     -static const unsigned int mrfld_uart2_pins[] = { 132, 133, 134, 135 };
301     +static const unsigned int mrfld_uart0_pins[] = { 115, 116, 117, 118 };
302     +static const unsigned int mrfld_uart1_pins[] = { 119, 120, 121, 122 };
303     +static const unsigned int mrfld_uart2_pins[] = { 123, 124, 125, 126 };
304     static const unsigned int mrfld_pwm0_pins[] = { 144 };
305     static const unsigned int mrfld_pwm1_pins[] = { 145 };
306     static const unsigned int mrfld_pwm2_pins[] = { 132 };
307     diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
308     index c3928aa3fefa..7511723c6b05 100644
309     --- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
310     +++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
311     @@ -85,6 +85,7 @@ static const struct pinctrl_pin_desc meson_gxbb_periphs_pins[] = {
312     MESON_PIN(GPIODV_15, EE_OFF),
313     MESON_PIN(GPIODV_16, EE_OFF),
314     MESON_PIN(GPIODV_17, EE_OFF),
315     + MESON_PIN(GPIODV_18, EE_OFF),
316     MESON_PIN(GPIODV_19, EE_OFF),
317     MESON_PIN(GPIODV_20, EE_OFF),
318     MESON_PIN(GPIODV_21, EE_OFF),
319     diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
320     index d32fa2b5ff82..e8aee6d88a40 100644
321     --- a/drivers/pinctrl/samsung/pinctrl-exynos.c
322     +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
323     @@ -195,8 +195,6 @@ static int exynos_irq_request_resources(struct irq_data *irqd)
324    
325     spin_unlock_irqrestore(&bank->slock, flags);
326    
327     - exynos_irq_unmask(irqd);
328     -
329     return 0;
330     }
331    
332     @@ -217,8 +215,6 @@ static void exynos_irq_release_resources(struct irq_data *irqd)
333     shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC];
334     mask = (1 << bank_type->fld_width[PINCFG_TYPE_FUNC]) - 1;
335    
336     - exynos_irq_mask(irqd);
337     -
338     spin_lock_irqsave(&bank->slock, flags);
339    
340     con = readl(d->virt_base + reg_con);
341     diff --git a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
342     index 862a096c5dba..be5c71df148d 100644
343     --- a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
344     +++ b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
345     @@ -811,6 +811,7 @@ static const struct sunxi_desc_pin sun4i_a10_pins[] = {
346     SUNXI_FUNCTION(0x2, "lcd1"), /* D16 */
347     SUNXI_FUNCTION(0x3, "pata"), /* ATAD12 */
348     SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */
349     + SUNXI_FUNCTION(0x5, "sim"), /* DET */
350     SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */
351     SUNXI_FUNCTION(0x7, "csi1")), /* D16 */
352     SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
353     diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
354     index 77a0236ee781..b190904c864a 100644
355     --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
356     +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
357     @@ -508,57 +508,71 @@ static const unsigned usb1_pins[] = {48, 49};
358     static const int usb1_muxvals[] = {0, 0};
359     static const unsigned usb2_pins[] = {50, 51};
360     static const int usb2_muxvals[] = {0, 0};
361     -static const unsigned port_range_pins[] = {
362     +static const unsigned port_range0_pins[] = {
363     159, 160, 161, 162, 163, 164, 165, 166, /* PORT0x */
364     0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
365     8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
366     - 16, 17, 18, -1, -1, -1, -1, -1, /* PORT3x */
367     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */
368     - -1, -1, -1, 46, 47, 48, 49, 50, /* PORT5x */
369     - 51, -1, -1, 54, 55, 56, 57, 58, /* PORT6x */
370     + 16, 17, 18, /* PORT30-32 */
371     +};
372     +static const int port_range0_muxvals[] = {
373     + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
374     + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
375     + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
376     + 15, 15, 15, /* PORT30-32 */
377     +};
378     +static const unsigned port_range1_pins[] = {
379     + 46, 47, 48, 49, 50, /* PORT53-57 */
380     + 51, /* PORT60 */
381     +};
382     +static const int port_range1_muxvals[] = {
383     + 15, 15, 15, 15, 15, /* PORT53-57 */
384     + 15, /* PORT60 */
385     +};
386     +static const unsigned port_range2_pins[] = {
387     + 54, 55, 56, 57, 58, /* PORT63-67 */
388     59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */
389     75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
390     83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
391     91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
392     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
393     - 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
394     - 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
395     - 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
396     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
397     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
398     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
399     - 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
400     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
401     - 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
402     - 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
403     - 139, 140, 141, 142, -1, -1, -1, -1, /* PORT22x */
404     - 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
405     - 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */
406     };
407     -static const int port_range_muxvals[] = {
408     - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
409     - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
410     - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
411     - 15, 15, 15, -1, -1, -1, -1, -1, /* PORT3x */
412     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */
413     - -1, -1, -1, 15, 15, 15, 15, 15, /* PORT5x */
414     - 15, -1, -1, 15, 15, 15, 15, 15, /* PORT6x */
415     +static const int port_range2_muxvals[] = {
416     + 15, 15, 15, 15, 15, /* PORT63-67 */
417     15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
418     15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
419     15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
420     15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
421     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
422     +};
423     +static const unsigned port_range3_pins[] = {
424     + 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
425     + 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
426     + 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
427     +};
428     +static const int port_range3_muxvals[] = {
429     15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */
430     15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */
431     15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
432     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
433     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
434     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
435     +};
436     +static const unsigned port_range4_pins[] = {
437     + 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
438     +};
439     +static const int port_range4_muxvals[] = {
440     15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */
441     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
442     +};
443     +static const unsigned port_range5_pins[] = {
444     + 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
445     + 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
446     + 139, 140, 141, 142, /* PORT220-223 */
447     +};
448     +static const int port_range5_muxvals[] = {
449     15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */
450     15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */
451     - 15, 15, 15, 15, -1, -1, -1, -1, /* PORT22x */
452     + 15, 15, 15, 15, /* PORT220-223 */
453     +};
454     +static const unsigned port_range6_pins[] = {
455     + 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
456     + 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */
457     +};
458     +static const int port_range6_muxvals[] = {
459     15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */
460     15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */
461     };
462     @@ -607,147 +621,153 @@ static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
463     UNIPHIER_PINCTRL_GROUP(usb0),
464     UNIPHIER_PINCTRL_GROUP(usb1),
465     UNIPHIER_PINCTRL_GROUP(usb2),
466     - UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range),
467     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
468     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
469     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
470     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
471     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range4),
472     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range5),
473     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range6),
474     UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq),
475     UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives),
476     - UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0),
477     - UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1),
478     - UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2),
479     - UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3),
480     - UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4),
481     - UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5),
482     - UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6),
483     - UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7),
484     - UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8),
485     - UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9),
486     - UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10),
487     - UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11),
488     - UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12),
489     - UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13),
490     - UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14),
491     - UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15),
492     - UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16),
493     - UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17),
494     - UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18),
495     - UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19),
496     - UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20),
497     - UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21),
498     - UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22),
499     - UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23),
500     - UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24),
501     - UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25),
502     - UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26),
503     - UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43),
504     - UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44),
505     - UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45),
506     - UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46),
507     - UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47),
508     - UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48),
509     - UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51),
510     - UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52),
511     - UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53),
512     - UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54),
513     - UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55),
514     - UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56),
515     - UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57),
516     - UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58),
517     - UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59),
518     - UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60),
519     - UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61),
520     - UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62),
521     - UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63),
522     - UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64),
523     - UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65),
524     - UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66),
525     - UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67),
526     - UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68),
527     - UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69),
528     - UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70),
529     - UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71),
530     - UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72),
531     - UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73),
532     - UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74),
533     - UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75),
534     - UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76),
535     - UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77),
536     - UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78),
537     - UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79),
538     - UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80),
539     - UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81),
540     - UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82),
541     - UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83),
542     - UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84),
543     - UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85),
544     - UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86),
545     - UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87),
546     - UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96),
547     - UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97),
548     - UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98),
549     - UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99),
550     - UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100),
551     - UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101),
552     - UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102),
553     - UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103),
554     - UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104),
555     - UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105),
556     - UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106),
557     - UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107),
558     - UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108),
559     - UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109),
560     - UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110),
561     - UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111),
562     - UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112),
563     - UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113),
564     - UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114),
565     - UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115),
566     - UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116),
567     - UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117),
568     - UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118),
569     - UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119),
570     - UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144),
571     - UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145),
572     - UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146),
573     - UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147),
574     - UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148),
575     - UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149),
576     - UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150),
577     - UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151),
578     - UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160),
579     - UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161),
580     - UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162),
581     - UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163),
582     - UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164),
583     - UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165),
584     - UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166),
585     - UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167),
586     - UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168),
587     - UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169),
588     - UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170),
589     - UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171),
590     - UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172),
591     - UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173),
592     - UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174),
593     - UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175),
594     - UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176),
595     - UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177),
596     - UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178),
597     - UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179),
598     - UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184),
599     - UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185),
600     - UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186),
601     - UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187),
602     - UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188),
603     - UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189),
604     - UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190),
605     - UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191),
606     - UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192),
607     - UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193),
608     - UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194),
609     - UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195),
610     - UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196),
611     - UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197),
612     - UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198),
613     - UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199),
614     + UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
615     + UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
616     + UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
617     + UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
618     + UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
619     + UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
620     + UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
621     + UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
622     + UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
623     + UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
624     + UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
625     + UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
626     + UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
627     + UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
628     + UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
629     + UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
630     + UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
631     + UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
632     + UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
633     + UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
634     + UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
635     + UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
636     + UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
637     + UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
638     + UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
639     + UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
640     + UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
641     + UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range1, 0),
642     + UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range1, 1),
643     + UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range1, 2),
644     + UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range1, 3),
645     + UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range1, 4),
646     + UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range1, 5),
647     + UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range2, 0),
648     + UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range2, 1),
649     + UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range2, 2),
650     + UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range2, 3),
651     + UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range2, 4),
652     + UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range2, 5),
653     + UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range2, 6),
654     + UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range2, 7),
655     + UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range2, 8),
656     + UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range2, 9),
657     + UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range2, 10),
658     + UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range2, 11),
659     + UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range2, 12),
660     + UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range2, 13),
661     + UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range2, 14),
662     + UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range2, 15),
663     + UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range2, 16),
664     + UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range2, 17),
665     + UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range2, 18),
666     + UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range2, 19),
667     + UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range2, 20),
668     + UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range2, 21),
669     + UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range2, 22),
670     + UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range2, 23),
671     + UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range2, 24),
672     + UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range2, 25),
673     + UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range2, 26),
674     + UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range2, 27),
675     + UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range2, 28),
676     + UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range2, 29),
677     + UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range2, 30),
678     + UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range2, 31),
679     + UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range2, 32),
680     + UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range2, 33),
681     + UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range2, 34),
682     + UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range2, 35),
683     + UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range2, 36),
684     + UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range3, 0),
685     + UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range3, 1),
686     + UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range3, 2),
687     + UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range3, 3),
688     + UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range3, 4),
689     + UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range3, 5),
690     + UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range3, 6),
691     + UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range3, 7),
692     + UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range3, 8),
693     + UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range3, 9),
694     + UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range3, 10),
695     + UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range3, 11),
696     + UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range3, 12),
697     + UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range3, 13),
698     + UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range3, 14),
699     + UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range3, 15),
700     + UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range3, 16),
701     + UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range3, 17),
702     + UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range3, 18),
703     + UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range3, 19),
704     + UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range3, 20),
705     + UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range3, 21),
706     + UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range3, 22),
707     + UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range3, 23),
708     + UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range4, 0),
709     + UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range4, 1),
710     + UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range4, 2),
711     + UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range4, 3),
712     + UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range4, 4),
713     + UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range4, 5),
714     + UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range4, 6),
715     + UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range4, 7),
716     + UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range5, 0),
717     + UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range5, 1),
718     + UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range5, 2),
719     + UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range5, 3),
720     + UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range5, 4),
721     + UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range5, 5),
722     + UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range5, 6),
723     + UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range5, 7),
724     + UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range5, 8),
725     + UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range5, 9),
726     + UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range5, 10),
727     + UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range5, 11),
728     + UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range5, 12),
729     + UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range5, 13),
730     + UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range5, 14),
731     + UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range5, 15),
732     + UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range5, 16),
733     + UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range5, 17),
734     + UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range5, 18),
735     + UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range5, 19),
736     + UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range6, 0),
737     + UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range6, 1),
738     + UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range6, 2),
739     + UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range6, 3),
740     + UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range6, 4),
741     + UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range6, 5),
742     + UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range6, 6),
743     + UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range6, 7),
744     + UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range6, 8),
745     + UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range6, 9),
746     + UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range6, 10),
747     + UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range6, 11),
748     + UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range6, 12),
749     + UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range6, 13),
750     + UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range6, 14),
751     + UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range6, 15),
752     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0),
753     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1),
754     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2),
755     diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
756     index 96686336e3a3..73b828b22901 100644
757     --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
758     +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
759     @@ -597,7 +597,7 @@ static const unsigned usb2_pins[] = {50, 51};
760     static const int usb2_muxvals[] = {0, 0};
761     static const unsigned usb3_pins[] = {52, 53};
762     static const int usb3_muxvals[] = {0, 0};
763     -static const unsigned port_range_pins[] = {
764     +static const unsigned port_range0_pins[] = {
765     168, 169, 170, 171, 172, 173, 174, 175, /* PORT0x */
766     0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
767     8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
768     @@ -609,23 +609,8 @@ static const unsigned port_range_pins[] = {
769     75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
770     83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
771     91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
772     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
773     - 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
774     - 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
775     - 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
776     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
777     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
778     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
779     - 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
780     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
781     - 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
782     - 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
783     - 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
784     - 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
785     - 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
786     - 163, 164, 165, 166, 167, /* PORT25x */
787     };
788     -static const int port_range_muxvals[] = {
789     +static const int port_range0_muxvals[] = {
790     15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
791     15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
792     15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
793     @@ -637,21 +622,38 @@ static const int port_range_muxvals[] = {
794     15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
795     15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
796     15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
797     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
798     +};
799     +static const unsigned port_range1_pins[] = {
800     + 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
801     + 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
802     + 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
803     +};
804     +static const int port_range1_muxvals[] = {
805     15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */
806     15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */
807     15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
808     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
809     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
810     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
811     +};
812     +static const unsigned port_range2_pins[] = {
813     + 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
814     +};
815     +static const int port_range2_muxvals[] = {
816     15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */
817     - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
818     +};
819     +static const unsigned port_range3_pins[] = {
820     + 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
821     + 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
822     + 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
823     + 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
824     + 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
825     + 163, 164, 165, 166, 167, /* PORT250-254 */
826     +};
827     +static const int port_range3_muxvals[] = {
828     15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */
829     15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */
830     15, 15, 15, 15, 15, 15, 15, 15, /* PORT22x */
831     15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */
832     15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */
833     - 15, 15, 15, 15, 15, /* PORT25x */
834     + 15, 15, 15, 15, 15, /* PORT250-254 */
835     };
836     static const unsigned xirq_pins[] = {
837     149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */
838     @@ -695,174 +697,177 @@ static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
839     UNIPHIER_PINCTRL_GROUP(usb1),
840     UNIPHIER_PINCTRL_GROUP(usb2),
841     UNIPHIER_PINCTRL_GROUP(usb3),
842     - UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range),
843     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
844     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
845     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
846     + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
847     UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq),
848     UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives),
849     - UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0),
850     - UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1),
851     - UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2),
852     - UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3),
853     - UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4),
854     - UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5),
855     - UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6),
856     - UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7),
857     - UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8),
858     - UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9),
859     - UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10),
860     - UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11),
861     - UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12),
862     - UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13),
863     - UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14),
864     - UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15),
865     - UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16),
866     - UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17),
867     - UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18),
868     - UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19),
869     - UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20),
870     - UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21),
871     - UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22),
872     - UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23),
873     - UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24),
874     - UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25),
875     - UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26),
876     - UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range, 27),
877     - UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range, 28),
878     - UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range, 29),
879     - UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range, 30),
880     - UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range, 31),
881     - UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range, 32),
882     - UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range, 33),
883     - UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range, 34),
884     - UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range, 35),
885     - UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range, 36),
886     - UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range, 37),
887     - UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range, 38),
888     - UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range, 39),
889     - UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range, 40),
890     - UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range, 41),
891     - UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range, 42),
892     - UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43),
893     - UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44),
894     - UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45),
895     - UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46),
896     - UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47),
897     - UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48),
898     - UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range, 49),
899     - UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range, 50),
900     - UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51),
901     - UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52),
902     - UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53),
903     - UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54),
904     - UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55),
905     - UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56),
906     - UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57),
907     - UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58),
908     - UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59),
909     - UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60),
910     - UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61),
911     - UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62),
912     - UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63),
913     - UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64),
914     - UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65),
915     - UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66),
916     - UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67),
917     - UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68),
918     - UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69),
919     - UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70),
920     - UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71),
921     - UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72),
922     - UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73),
923     - UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74),
924     - UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75),
925     - UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76),
926     - UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77),
927     - UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78),
928     - UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79),
929     - UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80),
930     - UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81),
931     - UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82),
932     - UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83),
933     - UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84),
934     - UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85),
935     - UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86),
936     - UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87),
937     - UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96),
938     - UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97),
939     - UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98),
940     - UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99),
941     - UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100),
942     - UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101),
943     - UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102),
944     - UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103),
945     - UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104),
946     - UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105),
947     - UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106),
948     - UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107),
949     - UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108),
950     - UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109),
951     - UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110),
952     - UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111),
953     - UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112),
954     - UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113),
955     - UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114),
956     - UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115),
957     - UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116),
958     - UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117),
959     - UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118),
960     - UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119),
961     - UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144),
962     - UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145),
963     - UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146),
964     - UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147),
965     - UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148),
966     - UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149),
967     - UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150),
968     - UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151),
969     - UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160),
970     - UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161),
971     - UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162),
972     - UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163),
973     - UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164),
974     - UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165),
975     - UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166),
976     - UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167),
977     - UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168),
978     - UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169),
979     - UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170),
980     - UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171),
981     - UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172),
982     - UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173),
983     - UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174),
984     - UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175),
985     - UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176),
986     - UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177),
987     - UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178),
988     - UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179),
989     - UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range, 180),
990     - UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range, 181),
991     - UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range, 182),
992     - UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range, 183),
993     - UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184),
994     - UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185),
995     - UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186),
996     - UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187),
997     - UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188),
998     - UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189),
999     - UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190),
1000     - UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191),
1001     - UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192),
1002     - UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193),
1003     - UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194),
1004     - UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195),
1005     - UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196),
1006     - UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197),
1007     - UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198),
1008     - UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199),
1009     - UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range, 200),
1010     - UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range, 201),
1011     - UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range, 202),
1012     - UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range, 203),
1013     - UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range, 204),
1014     + UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
1015     + UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
1016     + UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
1017     + UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
1018     + UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
1019     + UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
1020     + UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
1021     + UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
1022     + UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
1023     + UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
1024     + UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
1025     + UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
1026     + UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
1027     + UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
1028     + UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
1029     + UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
1030     + UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
1031     + UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
1032     + UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
1033     + UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
1034     + UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
1035     + UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
1036     + UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
1037     + UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
1038     + UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
1039     + UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
1040     + UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
1041     + UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
1042     + UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
1043     + UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
1044     + UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
1045     + UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
1046     + UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
1047     + UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
1048     + UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
1049     + UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
1050     + UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
1051     + UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
1052     + UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
1053     + UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
1054     + UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
1055     + UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
1056     + UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
1057     + UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
1058     + UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
1059     + UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
1060     + UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
1061     + UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
1062     + UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
1063     + UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
1064     + UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
1065     + UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
1066     + UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
1067     + UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
1068     + UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
1069     + UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
1070     + UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
1071     + UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
1072     + UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
1073     + UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
1074     + UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
1075     + UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
1076     + UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
1077     + UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
1078     + UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
1079     + UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
1080     + UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
1081     + UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
1082     + UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
1083     + UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
1084     + UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
1085     + UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
1086     + UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
1087     + UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
1088     + UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
1089     + UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
1090     + UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
1091     + UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
1092     + UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
1093     + UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
1094     + UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
1095     + UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
1096     + UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
1097     + UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
1098     + UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
1099     + UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
1100     + UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
1101     + UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
1102     + UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range1, 0),
1103     + UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range1, 1),
1104     + UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range1, 2),
1105     + UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range1, 3),
1106     + UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range1, 4),
1107     + UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range1, 5),
1108     + UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range1, 6),
1109     + UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range1, 7),
1110     + UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 8),
1111     + UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 9),
1112     + UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range1, 10),
1113     + UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range1, 11),
1114     + UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range1, 12),
1115     + UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range1, 13),
1116     + UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range1, 14),
1117     + UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range1, 15),
1118     + UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range1, 16),
1119     + UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range1, 17),
1120     + UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range1, 18),
1121     + UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range1, 19),
1122     + UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range1, 20),
1123     + UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range1, 21),
1124     + UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range1, 22),
1125     + UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range1, 23),
1126     + UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range2, 0),
1127     + UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range2, 1),
1128     + UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range2, 2),
1129     + UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range2, 3),
1130     + UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range2, 4),
1131     + UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range2, 5),
1132     + UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range2, 6),
1133     + UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range2, 7),
1134     + UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range3, 0),
1135     + UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range3, 1),
1136     + UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range3, 2),
1137     + UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range3, 3),
1138     + UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range3, 4),
1139     + UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range3, 5),
1140     + UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range3, 6),
1141     + UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range3, 7),
1142     + UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range3, 8),
1143     + UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range3, 9),
1144     + UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range3, 10),
1145     + UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range3, 11),
1146     + UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range3, 12),
1147     + UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range3, 13),
1148     + UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range3, 14),
1149     + UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range3, 15),
1150     + UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range3, 16),
1151     + UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range3, 17),
1152     + UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range3, 18),
1153     + UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range3, 19),
1154     + UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range3, 20),
1155     + UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range3, 21),
1156     + UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range3, 22),
1157     + UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range3, 23),
1158     + UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range3, 24),
1159     + UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range3, 25),
1160     + UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range3, 26),
1161     + UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range3, 27),
1162     + UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range3, 28),
1163     + UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range3, 29),
1164     + UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range3, 30),
1165     + UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range3, 31),
1166     + UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range3, 32),
1167     + UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range3, 33),
1168     + UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range3, 34),
1169     + UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range3, 35),
1170     + UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range3, 36),
1171     + UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range3, 37),
1172     + UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range3, 38),
1173     + UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range3, 39),
1174     + UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range3, 40),
1175     + UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range3, 41),
1176     + UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range3, 42),
1177     + UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range3, 43),
1178     + UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range3, 44),
1179     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0),
1180     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1),
1181     UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2),
1182     diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
1183     index ec9979070479..7458df4b6854 100644
1184     --- a/drivers/staging/comedi/comedi_fops.c
1185     +++ b/drivers/staging/comedi/comedi_fops.c
1186     @@ -2385,6 +2385,7 @@ static ssize_t comedi_write(struct file *file, const char __user *buf,
1187     continue;
1188     }
1189    
1190     + set_current_state(TASK_RUNNING);
1191     wp = async->buf_write_ptr;
1192     n1 = min(n, async->prealloc_bufsz - wp);
1193     n2 = n - n1;
1194     @@ -2517,6 +2518,8 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes,
1195     }
1196     continue;
1197     }
1198     +
1199     + set_current_state(TASK_RUNNING);
1200     rp = async->buf_read_ptr;
1201     n1 = min(n, async->prealloc_bufsz - rp);
1202     n2 = n - n1;
1203     diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
1204     index 6b992634f009..598f0faa48c8 100644
1205     --- a/drivers/staging/iio/resolver/ad2s1210.c
1206     +++ b/drivers/staging/iio/resolver/ad2s1210.c
1207     @@ -472,7 +472,7 @@ static int ad2s1210_read_raw(struct iio_dev *indio_dev,
1208     long m)
1209     {
1210     struct ad2s1210_state *st = iio_priv(indio_dev);
1211     - bool negative;
1212     + u16 negative;
1213     int ret = 0;
1214     u16 pos;
1215     s16 vel;
1216     diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
1217     index 155fe0e0623f..e49fcd5e61f7 100644
1218     --- a/drivers/target/iscsi/iscsi_target.c
1219     +++ b/drivers/target/iscsi/iscsi_target.c
1220     @@ -418,6 +418,7 @@ int iscsit_reset_np_thread(
1221     return 0;
1222     }
1223     np->np_thread_state = ISCSI_NP_THREAD_RESET;
1224     + atomic_inc(&np->np_reset_count);
1225    
1226     if (np->np_thread) {
1227     spin_unlock_bh(&np->np_thread_lock);
1228     @@ -2177,6 +2178,7 @@ iscsit_setup_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
1229     cmd->cmd_sn = be32_to_cpu(hdr->cmdsn);
1230     cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn);
1231     cmd->data_direction = DMA_NONE;
1232     + kfree(cmd->text_in_ptr);
1233     cmd->text_in_ptr = NULL;
1234    
1235     return 0;
1236     diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
1237     index 6128e8e80170..9ccd5da8f204 100644
1238     --- a/drivers/target/iscsi/iscsi_target_login.c
1239     +++ b/drivers/target/iscsi/iscsi_target_login.c
1240     @@ -1233,9 +1233,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1241     flush_signals(current);
1242    
1243     spin_lock_bh(&np->np_thread_lock);
1244     - if (np->np_thread_state == ISCSI_NP_THREAD_RESET) {
1245     + if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1246     np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1247     + spin_unlock_bh(&np->np_thread_lock);
1248     complete(&np->np_restart_comp);
1249     + return 1;
1250     } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) {
1251     spin_unlock_bh(&np->np_thread_lock);
1252     goto exit;
1253     @@ -1268,7 +1270,8 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1254     goto exit;
1255     } else if (rc < 0) {
1256     spin_lock_bh(&np->np_thread_lock);
1257     - if (np->np_thread_state == ISCSI_NP_THREAD_RESET) {
1258     + if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1259     + np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1260     spin_unlock_bh(&np->np_thread_lock);
1261     complete(&np->np_restart_comp);
1262     iscsit_put_transport(conn->conn_transport);
1263     diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
1264     index 1949f50725a5..0e2e71f6c198 100644
1265     --- a/drivers/target/target_core_tpg.c
1266     +++ b/drivers/target/target_core_tpg.c
1267     @@ -364,7 +364,7 @@ void core_tpg_del_initiator_node_acl(struct se_node_acl *acl)
1268     mutex_lock(&tpg->acl_node_mutex);
1269     if (acl->dynamic_node_acl)
1270     acl->dynamic_node_acl = 0;
1271     - list_del(&acl->acl_list);
1272     + list_del_init(&acl->acl_list);
1273     mutex_unlock(&tpg->acl_node_mutex);
1274    
1275     target_shutdown_sessions(acl);
1276     @@ -540,7 +540,7 @@ int core_tpg_deregister(struct se_portal_group *se_tpg)
1277     * in transport_deregister_session().
1278     */
1279     list_for_each_entry_safe(nacl, nacl_tmp, &node_list, acl_list) {
1280     - list_del(&nacl->acl_list);
1281     + list_del_init(&nacl->acl_list);
1282    
1283     core_tpg_wait_for_nacl_pr_ref(nacl);
1284     core_free_device_list_for_node(nacl, se_tpg);
1285     diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
1286     index e8a1f5cadba5..bacfa8f81be8 100644
1287     --- a/drivers/target/target_core_transport.c
1288     +++ b/drivers/target/target_core_transport.c
1289     @@ -465,7 +465,7 @@ static void target_complete_nacl(struct kref *kref)
1290     }
1291    
1292     mutex_lock(&se_tpg->acl_node_mutex);
1293     - list_del(&nacl->acl_list);
1294     + list_del_init(&nacl->acl_list);
1295     mutex_unlock(&se_tpg->acl_node_mutex);
1296    
1297     core_tpg_wait_for_nacl_pr_ref(nacl);
1298     @@ -537,7 +537,7 @@ void transport_free_session(struct se_session *se_sess)
1299     spin_unlock_irqrestore(&se_nacl->nacl_sess_lock, flags);
1300    
1301     if (se_nacl->dynamic_stop)
1302     - list_del(&se_nacl->acl_list);
1303     + list_del_init(&se_nacl->acl_list);
1304     }
1305     mutex_unlock(&se_tpg->acl_node_mutex);
1306    
1307     diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
1308     index 8a7c6bbaed7e..882fc4e08284 100644
1309     --- a/drivers/usb/core/hcd.c
1310     +++ b/drivers/usb/core/hcd.c
1311     @@ -1877,7 +1877,7 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
1312     /* No more submits can occur */
1313     spin_lock_irq(&hcd_urb_list_lock);
1314     rescan:
1315     - list_for_each_entry (urb, &ep->urb_list, urb_list) {
1316     + list_for_each_entry_reverse(urb, &ep->urb_list, urb_list) {
1317     int is_in;
1318    
1319     if (urb->unlinked)
1320     @@ -2474,6 +2474,8 @@ void usb_hc_died (struct usb_hcd *hcd)
1321     }
1322     if (usb_hcd_is_primary_hcd(hcd) && hcd->shared_hcd) {
1323     hcd = hcd->shared_hcd;
1324     + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags);
1325     + set_bit(HCD_FLAG_DEAD, &hcd->flags);
1326     if (hcd->rh_registered) {
1327     clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
1328    
1329     diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
1330     index f953d6d647f2..80d4ef31ba8d 100644
1331     --- a/drivers/usb/core/hub.c
1332     +++ b/drivers/usb/core/hub.c
1333     @@ -4728,7 +4728,8 @@ hub_power_remaining(struct usb_hub *hub)
1334     static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
1335     u16 portchange)
1336     {
1337     - int status, i;
1338     + int status = -ENODEV;
1339     + int i;
1340     unsigned unit_load;
1341     struct usb_device *hdev = hub->hdev;
1342     struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
1343     @@ -4932,9 +4933,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
1344    
1345     done:
1346     hub_port_disable(hub, port1, 1);
1347     - if (hcd->driver->relinquish_port && !hub->hdev->parent)
1348     - hcd->driver->relinquish_port(hcd, port1);
1349     -
1350     + if (hcd->driver->relinquish_port && !hub->hdev->parent) {
1351     + if (status != -ENOTCONN && status != -ENODEV)
1352     + hcd->driver->relinquish_port(hcd, port1);
1353     + }
1354     }
1355    
1356     /* Handle physical or logical connection change events.
1357     diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
1358     index 3116edfcdc18..574da2b4529c 100644
1359     --- a/drivers/usb/core/quirks.c
1360     +++ b/drivers/usb/core/quirks.c
1361     @@ -150,6 +150,9 @@ static const struct usb_device_id usb_quirk_list[] = {
1362     /* appletouch */
1363     { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
1364    
1365     + /* Genesys Logic hub, internally used by Moshi USB to Ethernet Adapter */
1366     + { USB_DEVICE(0x05e3, 0x0616), .driver_info = USB_QUIRK_NO_LPM },
1367     +
1368     /* Avision AV600U */
1369     { USB_DEVICE(0x0638, 0x0a13), .driver_info =
1370     USB_QUIRK_STRING_FETCH_255 },
1371     @@ -249,6 +252,7 @@ static const struct usb_device_id usb_amd_resume_quirk_list[] = {
1372     { USB_DEVICE(0x093a, 0x2500), .driver_info = USB_QUIRK_RESET_RESUME },
1373     { USB_DEVICE(0x093a, 0x2510), .driver_info = USB_QUIRK_RESET_RESUME },
1374     { USB_DEVICE(0x093a, 0x2521), .driver_info = USB_QUIRK_RESET_RESUME },
1375     + { USB_DEVICE(0x03f0, 0x2b4a), .driver_info = USB_QUIRK_RESET_RESUME },
1376    
1377     /* Logitech Optical Mouse M90/M100 */
1378     { USB_DEVICE(0x046d, 0xc05a), .driver_info = USB_QUIRK_RESET_RESUME },
1379     diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c
1380     index ba78e3f7aea8..d2cfefadca3c 100644
1381     --- a/drivers/usb/gadget/udc/renesas_usb3.c
1382     +++ b/drivers/usb/gadget/udc/renesas_usb3.c
1383     @@ -685,21 +685,32 @@ static struct renesas_usb3_request *usb3_get_request(struct renesas_usb3_ep
1384     return usb3_req;
1385     }
1386    
1387     -static void usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1388     - struct renesas_usb3_request *usb3_req, int status)
1389     +static void __usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1390     + struct renesas_usb3_request *usb3_req,
1391     + int status)
1392     {
1393     struct renesas_usb3 *usb3 = usb3_ep_to_usb3(usb3_ep);
1394     - unsigned long flags;
1395    
1396     dev_dbg(usb3_to_dev(usb3), "giveback: ep%2d, %u, %u, %d\n",
1397     usb3_ep->num, usb3_req->req.length, usb3_req->req.actual,
1398     status);
1399     usb3_req->req.status = status;
1400     - spin_lock_irqsave(&usb3->lock, flags);
1401     usb3_ep->started = false;
1402     list_del_init(&usb3_req->queue);
1403     - spin_unlock_irqrestore(&usb3->lock, flags);
1404     + spin_unlock(&usb3->lock);
1405     usb_gadget_giveback_request(&usb3_ep->ep, &usb3_req->req);
1406     + spin_lock(&usb3->lock);
1407     +}
1408     +
1409     +static void usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1410     + struct renesas_usb3_request *usb3_req, int status)
1411     +{
1412     + struct renesas_usb3 *usb3 = usb3_ep_to_usb3(usb3_ep);
1413     + unsigned long flags;
1414     +
1415     + spin_lock_irqsave(&usb3->lock, flags);
1416     + __usb3_request_done(usb3_ep, usb3_req, status);
1417     + spin_unlock_irqrestore(&usb3->lock, flags);
1418     }
1419    
1420     static void usb3_irq_epc_pipe0_status_end(struct renesas_usb3 *usb3)
1421     diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
1422     index c8989c62a262..5f4ca7890435 100644
1423     --- a/drivers/usb/host/pci-quirks.c
1424     +++ b/drivers/usb/host/pci-quirks.c
1425     @@ -98,6 +98,7 @@ enum amd_chipset_gen {
1426     AMD_CHIPSET_HUDSON2,
1427     AMD_CHIPSET_BOLTON,
1428     AMD_CHIPSET_YANGTZE,
1429     + AMD_CHIPSET_TAISHAN,
1430     AMD_CHIPSET_UNKNOWN,
1431     };
1432    
1433     @@ -141,6 +142,11 @@ static int amd_chipset_sb_type_init(struct amd_chipset_info *pinfo)
1434     pinfo->sb_type.gen = AMD_CHIPSET_SB700;
1435     else if (rev >= 0x40 && rev <= 0x4f)
1436     pinfo->sb_type.gen = AMD_CHIPSET_SB800;
1437     + }
1438     + pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
1439     + 0x145c, NULL);
1440     + if (pinfo->smbus_dev) {
1441     + pinfo->sb_type.gen = AMD_CHIPSET_TAISHAN;
1442     } else {
1443     pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
1444     PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL);
1445     @@ -260,11 +266,12 @@ int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev)
1446     {
1447     /* Make sure amd chipset type has already been initialized */
1448     usb_amd_find_chipset_info();
1449     - if (amd_chipset.sb_type.gen != AMD_CHIPSET_YANGTZE)
1450     - return 0;
1451     -
1452     - dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n");
1453     - return 1;
1454     + if (amd_chipset.sb_type.gen == AMD_CHIPSET_YANGTZE ||
1455     + amd_chipset.sb_type.gen == AMD_CHIPSET_TAISHAN) {
1456     + dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n");
1457     + return 1;
1458     + }
1459     + return 0;
1460     }
1461     EXPORT_SYMBOL_GPL(usb_hcd_amd_remote_wakeup_quirk);
1462    
1463     diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
1464     index 99beda9e241d..55c624f2a8c0 100644
1465     --- a/drivers/usb/musb/musb_host.c
1466     +++ b/drivers/usb/musb/musb_host.c
1467     @@ -139,6 +139,7 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
1468     "Could not flush host TX%d fifo: csr: %04x\n",
1469     ep->epnum, csr))
1470     return;
1471     + mdelay(1);
1472     }
1473     }
1474    
1475     diff --git a/drivers/usb/renesas_usbhs/rcar3.c b/drivers/usb/renesas_usbhs/rcar3.c
1476     index d544b331c9f2..02b67abfc2a1 100644
1477     --- a/drivers/usb/renesas_usbhs/rcar3.c
1478     +++ b/drivers/usb/renesas_usbhs/rcar3.c
1479     @@ -20,9 +20,13 @@
1480     /* Low Power Status register (LPSTS) */
1481     #define LPSTS_SUSPM 0x4000
1482    
1483     -/* USB General control register 2 (UGCTRL2), bit[31:6] should be 0 */
1484     +/*
1485     + * USB General control register 2 (UGCTRL2)
1486     + * Remarks: bit[31:11] and bit[9:6] should be 0
1487     + */
1488     #define UGCTRL2_RESERVED_3 0x00000001 /* bit[3:0] should be B'0001 */
1489     #define UGCTRL2_USB0SEL_OTG 0x00000030
1490     +#define UGCTRL2_VBUSSEL 0x00000400
1491    
1492     static void usbhs_write32(struct usbhs_priv *priv, u32 reg, u32 data)
1493     {
1494     @@ -34,7 +38,8 @@ static int usbhs_rcar3_power_ctrl(struct platform_device *pdev,
1495     {
1496     struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev);
1497    
1498     - usbhs_write32(priv, UGCTRL2, UGCTRL2_RESERVED_3 | UGCTRL2_USB0SEL_OTG);
1499     + usbhs_write32(priv, UGCTRL2, UGCTRL2_RESERVED_3 | UGCTRL2_USB0SEL_OTG |
1500     + UGCTRL2_VBUSSEL);
1501    
1502     if (enable) {
1503     usbhs_bset(priv, LPSTS, LPSTS_SUSPM, LPSTS_SUSPM);
1504     diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
1505     index 84b444f69c9b..470b17b0c11b 100644
1506     --- a/drivers/usb/serial/cp210x.c
1507     +++ b/drivers/usb/serial/cp210x.c
1508     @@ -136,6 +136,7 @@ static const struct usb_device_id id_table[] = {
1509     { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */
1510     { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */
1511     { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */
1512     + { USB_DEVICE(0x10C4, 0x8B34) }, /* Qivicon ZigBee USB Radio Stick */
1513     { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
1514     { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
1515     { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
1516     diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
1517     index ebe51f11105d..fe123153b1a5 100644
1518     --- a/drivers/usb/serial/option.c
1519     +++ b/drivers/usb/serial/option.c
1520     @@ -2025,6 +2025,8 @@ static const struct usb_device_id option_ids[] = {
1521     { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
1522     { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
1523     .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1524     + { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
1525     + .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1526     { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
1527     { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
1528     { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
1529     diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
1530     index 1db4b61bdf7b..a51b28379850 100644
1531     --- a/drivers/usb/serial/pl2303.c
1532     +++ b/drivers/usb/serial/pl2303.c
1533     @@ -49,6 +49,7 @@ static const struct usb_device_id id_table[] = {
1534     { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
1535     { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
1536     { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
1537     + { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_UC485) },
1538     { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID2) },
1539     { USB_DEVICE(ATEN_VENDOR_ID2, ATEN_PRODUCT_ID) },
1540     { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) },
1541     diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
1542     index 09d9be88209e..3b5a15d1dc0d 100644
1543     --- a/drivers/usb/serial/pl2303.h
1544     +++ b/drivers/usb/serial/pl2303.h
1545     @@ -27,6 +27,7 @@
1546     #define ATEN_VENDOR_ID 0x0557
1547     #define ATEN_VENDOR_ID2 0x0547
1548     #define ATEN_PRODUCT_ID 0x2008
1549     +#define ATEN_PRODUCT_UC485 0x2021
1550     #define ATEN_PRODUCT_ID2 0x2118
1551    
1552     #define IODATA_VENDOR_ID 0x04bb
1553     diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
1554     index cbea9f329e71..cde115359793 100644
1555     --- a/drivers/usb/storage/unusual_uas.h
1556     +++ b/drivers/usb/storage/unusual_uas.h
1557     @@ -124,9 +124,9 @@ UNUSUAL_DEV(0x0bc2, 0xab2a, 0x0000, 0x9999,
1558     /* Reported-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> */
1559     UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
1560     "Initio Corporation",
1561     - "",
1562     + "INIC-3069",
1563     USB_SC_DEVICE, USB_PR_DEVICE, NULL,
1564     - US_FL_NO_ATA_1X),
1565     + US_FL_NO_ATA_1X | US_FL_IGNORE_RESIDUE),
1566    
1567     /* Reported-by: Tom Arild Naess <tanaess@gmail.com> */
1568     UNUSUAL_DEV(0x152d, 0x0539, 0x0000, 0x9999,
1569     diff --git a/fs/fuse/file.c b/fs/fuse/file.c
1570     index 5ec5870e423a..996aa23c409e 100644
1571     --- a/fs/fuse/file.c
1572     +++ b/fs/fuse/file.c
1573     @@ -46,7 +46,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
1574     {
1575     struct fuse_file *ff;
1576    
1577     - ff = kmalloc(sizeof(struct fuse_file), GFP_KERNEL);
1578     + ff = kzalloc(sizeof(struct fuse_file), GFP_KERNEL);
1579     if (unlikely(!ff))
1580     return NULL;
1581    
1582     diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
1583     index f31fd0dd92c6..b1daeafbea92 100644
1584     --- a/fs/nfs/Kconfig
1585     +++ b/fs/nfs/Kconfig
1586     @@ -121,6 +121,7 @@ config PNFS_FILE_LAYOUT
1587     config PNFS_BLOCK
1588     tristate
1589     depends on NFS_V4_1 && BLK_DEV_DM
1590     + depends on 64BIT || LBDAF
1591     default NFS_V4
1592    
1593     config PNFS_OBJLAYOUT
1594     diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1595     index f7a3f6b05369..90099896b838 100644
1596     --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1597     +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1598     @@ -30,6 +30,7 @@ void nfs4_ff_layout_free_deviceid(struct nfs4_ff_layout_ds *mirror_ds)
1599     {
1600     nfs4_print_deviceid(&mirror_ds->id_node.deviceid);
1601     nfs4_pnfs_ds_put(mirror_ds->ds);
1602     + kfree(mirror_ds->ds_versions);
1603     kfree_rcu(mirror_ds, id_node.rcu);
1604     }
1605    
1606     diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h
1607     index c8132b419148..6021c3acb6c5 100644
1608     --- a/include/target/iscsi/iscsi_target_core.h
1609     +++ b/include/target/iscsi/iscsi_target_core.h
1610     @@ -785,6 +785,7 @@ struct iscsi_np {
1611     int np_sock_type;
1612     enum np_thread_state_table np_thread_state;
1613     bool enabled;
1614     + atomic_t np_reset_count;
1615     enum iscsi_timer_flags_table np_login_timer_flags;
1616     u32 np_exports;
1617     enum np_flags_table np_flags;
1618     diff --git a/kernel/futex.c b/kernel/futex.c
1619     index 4c6b6e697b73..88bad86180ac 100644
1620     --- a/kernel/futex.c
1621     +++ b/kernel/futex.c
1622     @@ -668,13 +668,14 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
1623     * this reference was taken by ihold under the page lock
1624     * pinning the inode in place so i_lock was unnecessary. The
1625     * only way for this check to fail is if the inode was
1626     - * truncated in parallel so warn for now if this happens.
1627     + * truncated in parallel which is almost certainly an
1628     + * application bug. In such a case, just retry.
1629     *
1630     * We are not calling into get_futex_key_refs() in file-backed
1631     * cases, therefore a successful atomic_inc return below will
1632     * guarantee that get_futex_key() will still imply smp_mb(); (B).
1633     */
1634     - if (WARN_ON_ONCE(!atomic_inc_not_zero(&inode->i_count))) {
1635     + if (!atomic_inc_not_zero(&inode->i_count)) {
1636     rcu_read_unlock();
1637     put_page(page);
1638    
1639     diff --git a/mm/page_alloc.c b/mm/page_alloc.c
1640     index 77b797c2d094..9419aa4e5441 100644
1641     --- a/mm/page_alloc.c
1642     +++ b/mm/page_alloc.c
1643     @@ -7335,7 +7335,7 @@ int alloc_contig_range(unsigned long start, unsigned long end,
1644    
1645     /* Make sure the range is really isolated. */
1646     if (test_pages_isolated(outer_start, end, false)) {
1647     - pr_info("%s: [%lx, %lx) PFNs busy\n",
1648     + pr_info_ratelimited("%s: [%lx, %lx) PFNs busy\n",
1649     __func__, outer_start, end);
1650     ret = -EBUSY;
1651     goto done;
1652     diff --git a/mm/shmem.c b/mm/shmem.c
1653     index d99cfb6eb03a..7ee5444ffb6d 100644
1654     --- a/mm/shmem.c
1655     +++ b/mm/shmem.c
1656     @@ -1007,7 +1007,11 @@ static int shmem_setattr(struct dentry *dentry, struct iattr *attr)
1657     */
1658     if (IS_ENABLED(CONFIG_TRANSPARENT_HUGE_PAGECACHE)) {
1659     spin_lock(&sbinfo->shrinklist_lock);
1660     - if (list_empty(&info->shrinklist)) {
1661     + /*
1662     + * _careful to defend against unlocked access to
1663     + * ->shrink_list in shmem_unused_huge_shrink()
1664     + */
1665     + if (list_empty_careful(&info->shrinklist)) {
1666     list_add_tail(&info->shrinklist,
1667     &sbinfo->shrinklist);
1668     sbinfo->shrinklist_len++;
1669     @@ -1774,7 +1778,11 @@ alloc_nohuge: page = shmem_alloc_and_acct_page(gfp, info, sbinfo,
1670     * to shrink under memory pressure.
1671     */
1672     spin_lock(&sbinfo->shrinklist_lock);
1673     - if (list_empty(&info->shrinklist)) {
1674     + /*
1675     + * _careful to defend against unlocked access to
1676     + * ->shrink_list in shmem_unused_huge_shrink()
1677     + */
1678     + if (list_empty_careful(&info->shrinklist)) {
1679     list_add_tail(&info->shrinklist,
1680     &sbinfo->shrinklist);
1681     sbinfo->shrinklist_len++;