diff options
-rw-r--r-- | MAINTAINERS | 5 | ||||
-rw-r--r-- | drivers/block/aoe/aoecmd.c | 23 | ||||
-rw-r--r-- | drivers/gpio/langwell_gpio.c | 11 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/pxamci.c | 4 | ||||
-rw-r--r-- | drivers/regulator/wm831x-isink.c | 2 | ||||
-rw-r--r-- | drivers/rtc/rtc-pcf50633.c | 3 | ||||
-rw-r--r-- | drivers/rtc/rtc-x1205.c | 6 | ||||
-rw-r--r-- | drivers/video/da8xx-fb.c | 11 | ||||
-rw-r--r-- | drivers/watchdog/rc32434_wdt.c | 4 | ||||
-rw-r--r-- | init/Kconfig | 2 | ||||
-rw-r--r-- | kernel/module.c | 5 |
12 files changed, 47 insertions, 30 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 16129e67678a..4f96ac81089c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -3015,11 +3015,8 @@ S: Maintained | |||
3015 | F: fs/autofs4/ | 3015 | F: fs/autofs4/ |
3016 | 3016 | ||
3017 | KERNEL BUILD | 3017 | KERNEL BUILD |
3018 | M: Sam Ravnborg <sam@ravnborg.org> | ||
3019 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next.git | ||
3020 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes.git | ||
3021 | L: linux-kbuild@vger.kernel.org | 3018 | L: linux-kbuild@vger.kernel.org |
3022 | S: Maintained | 3019 | S: Orphan |
3023 | F: Documentation/kbuild/ | 3020 | F: Documentation/kbuild/ |
3024 | F: Makefile | 3021 | F: Makefile |
3025 | F: scripts/Makefile.* | 3022 | F: scripts/Makefile.* |
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 965ece2c7e4d..13bb69d2abb3 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -735,6 +735,21 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector | |||
735 | part_stat_unlock(); | 735 | part_stat_unlock(); |
736 | } | 736 | } |
737 | 737 | ||
738 | /* | ||
739 | * Ensure we don't create aliases in VI caches | ||
740 | */ | ||
741 | static inline void | ||
742 | killalias(struct bio *bio) | ||
743 | { | ||
744 | struct bio_vec *bv; | ||
745 | int i; | ||
746 | |||
747 | if (bio_data_dir(bio) == READ) | ||
748 | __bio_for_each_segment(bv, bio, i, 0) { | ||
749 | flush_dcache_page(bv->bv_page); | ||
750 | } | ||
751 | } | ||
752 | |||
738 | void | 753 | void |
739 | aoecmd_ata_rsp(struct sk_buff *skb) | 754 | aoecmd_ata_rsp(struct sk_buff *skb) |
740 | { | 755 | { |
@@ -853,8 +868,12 @@ aoecmd_ata_rsp(struct sk_buff *skb) | |||
853 | 868 | ||
854 | if (buf && --buf->nframesout == 0 && buf->resid == 0) { | 869 | if (buf && --buf->nframesout == 0 && buf->resid == 0) { |
855 | diskstats(d->gd, buf->bio, jiffies - buf->stime, buf->sector); | 870 | diskstats(d->gd, buf->bio, jiffies - buf->stime, buf->sector); |
856 | n = (buf->flags & BUFFL_FAIL) ? -EIO : 0; | 871 | if (buf->flags & BUFFL_FAIL) |
857 | bio_endio(buf->bio, n); | 872 | bio_endio(buf->bio, -EIO); |
873 | else { | ||
874 | killalias(buf->bio); | ||
875 | bio_endio(buf->bio, 0); | ||
876 | } | ||
858 | mempool_free(buf, d->bufpool); | 877 | mempool_free(buf, d->bufpool); |
859 | } | 878 | } |
860 | 879 | ||
diff --git a/drivers/gpio/langwell_gpio.c b/drivers/gpio/langwell_gpio.c index 5711ce5353c6..4baf3d7d0f8e 100644 --- a/drivers/gpio/langwell_gpio.c +++ b/drivers/gpio/langwell_gpio.c | |||
@@ -144,13 +144,6 @@ static int lnw_irq_type(unsigned irq, unsigned type) | |||
144 | 144 | ||
145 | static void lnw_irq_unmask(unsigned irq) | 145 | static void lnw_irq_unmask(unsigned irq) |
146 | { | 146 | { |
147 | struct lnw_gpio *lnw = get_irq_chip_data(irq); | ||
148 | u32 gpio = irq - lnw->irq_base; | ||
149 | u8 reg = gpio / 32; | ||
150 | void __iomem *gedr; | ||
151 | |||
152 | gedr = (void __iomem *)(&lnw->reg_base->GEDR[reg]); | ||
153 | writel(BIT(gpio % 32), gedr); | ||
154 | }; | 147 | }; |
155 | 148 | ||
156 | static void lnw_irq_mask(unsigned irq) | 149 | static void lnw_irq_mask(unsigned irq) |
@@ -183,13 +176,11 @@ static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) | |||
183 | gedr_v = readl(gedr); | 176 | gedr_v = readl(gedr); |
184 | if (!gedr_v) | 177 | if (!gedr_v) |
185 | continue; | 178 | continue; |
186 | for (gpio = reg*32; gpio < reg*32+32; gpio++) { | 179 | for (gpio = reg*32; gpio < reg*32+32; gpio++) |
187 | gedr_v = readl(gedr); | ||
188 | if (gedr_v & BIT(gpio % 32)) { | 180 | if (gedr_v & BIT(gpio % 32)) { |
189 | pr_debug("pin %d triggered\n", gpio); | 181 | pr_debug("pin %d triggered\n", gpio); |
190 | generic_handle_irq(lnw->irq_base + gpio); | 182 | generic_handle_irq(lnw->irq_base + gpio); |
191 | } | 183 | } |
192 | } | ||
193 | /* clear the edge detect status bit */ | 184 | /* clear the edge detect status bit */ |
194 | writel(gedr_v, gedr); | 185 | writel(gedr_v, gedr); |
195 | } | 186 | } |
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index ddf639ed2fd8..98082416aa52 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/wait.h> | 31 | #include <linux/wait.h> |
32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
33 | #include <linux/poll.h> | 33 | #include <linux/poll.h> |
34 | #include <linux/semaphore.h> | ||
34 | #include <linux/module.h> | 35 | #include <linux/module.h> |
35 | #include <linux/list.h> | 36 | #include <linux/list.h> |
36 | #include <linux/freezer.h> | 37 | #include <linux/freezer.h> |
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c index b00d67319058..9fb480bb0e0a 100644 --- a/drivers/mmc/host/pxamci.c +++ b/drivers/mmc/host/pxamci.c | |||
@@ -760,6 +760,8 @@ static int pxamci_remove(struct platform_device *pdev) | |||
760 | if (mmc) { | 760 | if (mmc) { |
761 | struct pxamci_host *host = mmc_priv(mmc); | 761 | struct pxamci_host *host = mmc_priv(mmc); |
762 | 762 | ||
763 | mmc_remove_host(mmc); | ||
764 | |||
763 | if (host->pdata) { | 765 | if (host->pdata) { |
764 | gpio_cd = host->pdata->gpio_card_detect; | 766 | gpio_cd = host->pdata->gpio_card_detect; |
765 | gpio_ro = host->pdata->gpio_card_ro; | 767 | gpio_ro = host->pdata->gpio_card_ro; |
@@ -779,8 +781,6 @@ static int pxamci_remove(struct platform_device *pdev) | |||
779 | if (host->pdata && host->pdata->exit) | 781 | if (host->pdata && host->pdata->exit) |
780 | host->pdata->exit(&pdev->dev, mmc); | 782 | host->pdata->exit(&pdev->dev, mmc); |
781 | 783 | ||
782 | mmc_remove_host(mmc); | ||
783 | |||
784 | pxamci_stop_clock(host); | 784 | pxamci_stop_clock(host); |
785 | writel(TXFIFO_WR_REQ|RXFIFO_RD_REQ|CLK_IS_OFF|STOP_CMD| | 785 | writel(TXFIFO_WR_REQ|RXFIFO_RD_REQ|CLK_IS_OFF|STOP_CMD| |
786 | END_CMD_RES|PRG_DONE|DATA_TRAN_DONE, | 786 | END_CMD_RES|PRG_DONE|DATA_TRAN_DONE, |
diff --git a/drivers/regulator/wm831x-isink.c b/drivers/regulator/wm831x-isink.c index 1d8d9879d3a1..48857008758c 100644 --- a/drivers/regulator/wm831x-isink.c +++ b/drivers/regulator/wm831x-isink.c | |||
@@ -167,6 +167,8 @@ static __devinit int wm831x_isink_probe(struct platform_device *pdev) | |||
167 | return -ENOMEM; | 167 | return -ENOMEM; |
168 | } | 168 | } |
169 | 169 | ||
170 | isink->wm831x = wm831x; | ||
171 | |||
170 | res = platform_get_resource(pdev, IORESOURCE_IO, 0); | 172 | res = platform_get_resource(pdev, IORESOURCE_IO, 0); |
171 | if (res == NULL) { | 173 | if (res == NULL) { |
172 | dev_err(&pdev->dev, "No I/O resource\n"); | 174 | dev_err(&pdev->dev, "No I/O resource\n"); |
diff --git a/drivers/rtc/rtc-pcf50633.c b/drivers/rtc/rtc-pcf50633.c index 33a10c47260e..4c5d5d0c4cfc 100644 --- a/drivers/rtc/rtc-pcf50633.c +++ b/drivers/rtc/rtc-pcf50633.c | |||
@@ -292,8 +292,9 @@ static int __devinit pcf50633_rtc_probe(struct platform_device *pdev) | |||
292 | &pcf50633_rtc_ops, THIS_MODULE); | 292 | &pcf50633_rtc_ops, THIS_MODULE); |
293 | 293 | ||
294 | if (IS_ERR(rtc->rtc_dev)) { | 294 | if (IS_ERR(rtc->rtc_dev)) { |
295 | int ret = PTR_ERR(rtc->rtc_dev); | ||
295 | kfree(rtc); | 296 | kfree(rtc); |
296 | return PTR_ERR(rtc->rtc_dev); | 297 | return ret; |
297 | } | 298 | } |
298 | 299 | ||
299 | pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_ALARM, | 300 | pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_ALARM, |
diff --git a/drivers/rtc/rtc-x1205.c b/drivers/rtc/rtc-x1205.c index 310c10795e9a..6583c1a8b070 100644 --- a/drivers/rtc/rtc-x1205.c +++ b/drivers/rtc/rtc-x1205.c | |||
@@ -195,7 +195,7 @@ static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, | |||
195 | /* year, since the rtc epoch*/ | 195 | /* year, since the rtc epoch*/ |
196 | buf[CCR_YEAR] = bin2bcd(tm->tm_year % 100); | 196 | buf[CCR_YEAR] = bin2bcd(tm->tm_year % 100); |
197 | buf[CCR_WDAY] = tm->tm_wday & 0x07; | 197 | buf[CCR_WDAY] = tm->tm_wday & 0x07; |
198 | buf[CCR_Y2K] = bin2bcd(tm->tm_year / 100); | 198 | buf[CCR_Y2K] = bin2bcd((tm->tm_year + 1900) / 100); |
199 | } | 199 | } |
200 | 200 | ||
201 | /* If writing alarm registers, set compare bits on registers 0-4 */ | 201 | /* If writing alarm registers, set compare bits on registers 0-4 */ |
@@ -280,9 +280,9 @@ static int x1205_fix_osc(struct i2c_client *client) | |||
280 | int err; | 280 | int err; |
281 | struct rtc_time tm; | 281 | struct rtc_time tm; |
282 | 282 | ||
283 | tm.tm_hour = tm.tm_min = tm.tm_sec = 0; | 283 | memset(&tm, 0, sizeof(tm)); |
284 | 284 | ||
285 | err = x1205_set_datetime(client, &tm, 0, X1205_CCR_BASE, 0); | 285 | err = x1205_set_datetime(client, &tm, 1, X1205_CCR_BASE, 0); |
286 | if (err < 0) | 286 | if (err < 0) |
287 | dev_err(&client->dev, "unable to restart the oscillator\n"); | 287 | dev_err(&client->dev, "unable to restart the oscillator\n"); |
288 | 288 | ||
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c index 035d56835b75..ea1fd3f47511 100644 --- a/drivers/video/da8xx-fb.c +++ b/drivers/video/da8xx-fb.c | |||
@@ -554,11 +554,11 @@ static int fb_check_var(struct fb_var_screeninfo *var, | |||
554 | var->transp.length = 0; | 554 | var->transp.length = 0; |
555 | break; | 555 | break; |
556 | case 16: /* RGB 565 */ | 556 | case 16: /* RGB 565 */ |
557 | var->red.offset = 0; | 557 | var->red.offset = 11; |
558 | var->red.length = 5; | 558 | var->red.length = 5; |
559 | var->green.offset = 5; | 559 | var->green.offset = 5; |
560 | var->green.length = 6; | 560 | var->green.length = 6; |
561 | var->blue.offset = 11; | 561 | var->blue.offset = 0; |
562 | var->blue.length = 5; | 562 | var->blue.length = 5; |
563 | var->transp.offset = 0; | 563 | var->transp.offset = 0; |
564 | var->transp.length = 0; | 564 | var->transp.length = 0; |
@@ -591,7 +591,7 @@ static int __devexit fb_remove(struct platform_device *dev) | |||
591 | unregister_framebuffer(info); | 591 | unregister_framebuffer(info); |
592 | fb_dealloc_cmap(&info->cmap); | 592 | fb_dealloc_cmap(&info->cmap); |
593 | dma_free_coherent(NULL, par->databuf_sz + PAGE_SIZE, | 593 | dma_free_coherent(NULL, par->databuf_sz + PAGE_SIZE, |
594 | info->screen_base, | 594 | info->screen_base - PAGE_SIZE, |
595 | info->fix.smem_start); | 595 | info->fix.smem_start); |
596 | free_irq(par->irq, par); | 596 | free_irq(par->irq, par); |
597 | clk_disable(par->lcdc_clk); | 597 | clk_disable(par->lcdc_clk); |
@@ -749,6 +749,7 @@ static int __init fb_probe(struct platform_device *device) | |||
749 | (PAGE_SIZE - par->palette_sz); | 749 | (PAGE_SIZE - par->palette_sz); |
750 | 750 | ||
751 | /* the rest of the frame buffer is pixel data */ | 751 | /* the rest of the frame buffer is pixel data */ |
752 | da8xx_fb_info->screen_base = par->v_palette_base + par->palette_sz; | ||
752 | da8xx_fb_fix.smem_start = par->p_palette_base + par->palette_sz; | 753 | da8xx_fb_fix.smem_start = par->p_palette_base + par->palette_sz; |
753 | da8xx_fb_fix.smem_len = par->databuf_sz - par->palette_sz; | 754 | da8xx_fb_fix.smem_len = par->databuf_sz - par->palette_sz; |
754 | da8xx_fb_fix.line_length = (lcdc_info->width * lcd_cfg->bpp) / 8; | 755 | da8xx_fb_fix.line_length = (lcdc_info->width * lcd_cfg->bpp) / 8; |
@@ -787,6 +788,8 @@ static int __init fb_probe(struct platform_device *device) | |||
787 | da8xx_fb_info->var = da8xx_fb_var; | 788 | da8xx_fb_info->var = da8xx_fb_var; |
788 | da8xx_fb_info->fbops = &da8xx_fb_ops; | 789 | da8xx_fb_info->fbops = &da8xx_fb_ops; |
789 | da8xx_fb_info->pseudo_palette = par->pseudo_palette; | 790 | da8xx_fb_info->pseudo_palette = par->pseudo_palette; |
791 | da8xx_fb_info->fix.visual = (da8xx_fb_info->var.bits_per_pixel <= 8) ? | ||
792 | FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR; | ||
790 | 793 | ||
791 | ret = fb_alloc_cmap(&da8xx_fb_info->cmap, PALETTE_SIZE, 0); | 794 | ret = fb_alloc_cmap(&da8xx_fb_info->cmap, PALETTE_SIZE, 0); |
792 | if (ret) | 795 | if (ret) |
@@ -825,7 +828,7 @@ err_free_irq: | |||
825 | 828 | ||
826 | err_release_fb_mem: | 829 | err_release_fb_mem: |
827 | dma_free_coherent(NULL, par->databuf_sz + PAGE_SIZE, | 830 | dma_free_coherent(NULL, par->databuf_sz + PAGE_SIZE, |
828 | da8xx_fb_info->screen_base, | 831 | da8xx_fb_info->screen_base - PAGE_SIZE, |
829 | da8xx_fb_info->fix.smem_start); | 832 | da8xx_fb_info->fix.smem_start); |
830 | 833 | ||
831 | err_release_fb: | 834 | err_release_fb: |
diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c index f6cccc9df022..bf12d06b5877 100644 --- a/drivers/watchdog/rc32434_wdt.c +++ b/drivers/watchdog/rc32434_wdt.c | |||
@@ -62,7 +62,7 @@ extern unsigned int idt_cpu_freq; | |||
62 | static int timeout = WATCHDOG_TIMEOUT; | 62 | static int timeout = WATCHDOG_TIMEOUT; |
63 | module_param(timeout, int, 0); | 63 | module_param(timeout, int, 0); |
64 | MODULE_PARM_DESC(timeout, "Watchdog timeout value, in seconds (default=" | 64 | MODULE_PARM_DESC(timeout, "Watchdog timeout value, in seconds (default=" |
65 | WATCHDOG_TIMEOUT ")"); | 65 | __MODULE_STRING(WATCHDOG_TIMEOUT) ")"); |
66 | 66 | ||
67 | static int nowayout = WATCHDOG_NOWAYOUT; | 67 | static int nowayout = WATCHDOG_NOWAYOUT; |
68 | module_param(nowayout, int, 0); | 68 | module_param(nowayout, int, 0); |
@@ -276,7 +276,7 @@ static int __devinit rc32434_wdt_probe(struct platform_device *pdev) | |||
276 | return -ENODEV; | 276 | return -ENODEV; |
277 | } | 277 | } |
278 | 278 | ||
279 | wdt_reg = ioremap_nocache(r->start, r->end - r->start); | 279 | wdt_reg = ioremap_nocache(r->start, resource_size(r)); |
280 | if (!wdt_reg) { | 280 | if (!wdt_reg) { |
281 | printk(KERN_ERR PFX "failed to remap I/O resources\n"); | 281 | printk(KERN_ERR PFX "failed to remap I/O resources\n"); |
282 | return -ENXIO; | 282 | return -ENXIO; |
diff --git a/init/Kconfig b/init/Kconfig index 39923ccc287b..eb4b33725db1 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -606,7 +606,7 @@ config SYSFS_DEPRECATED | |||
606 | bool | 606 | bool |
607 | 607 | ||
608 | config SYSFS_DEPRECATED_V2 | 608 | config SYSFS_DEPRECATED_V2 |
609 | bool "remove sysfs features which may confuse old userspace tools" | 609 | bool "enable deprecated sysfs features which may confuse old userspace tools" |
610 | depends on SYSFS | 610 | depends on SYSFS |
611 | default n | 611 | default n |
612 | select SYSFS_DEPRECATED | 612 | select SYSFS_DEPRECATED |
diff --git a/kernel/module.c b/kernel/module.c index 8b7d8805819d..5842a71cf052 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1187,7 +1187,8 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect, | |||
1187 | 1187 | ||
1188 | /* Count loaded sections and allocate structures */ | 1188 | /* Count loaded sections and allocate structures */ |
1189 | for (i = 0; i < nsect; i++) | 1189 | for (i = 0; i < nsect; i++) |
1190 | if (sechdrs[i].sh_flags & SHF_ALLOC) | 1190 | if (sechdrs[i].sh_flags & SHF_ALLOC |
1191 | && sechdrs[i].sh_size) | ||
1191 | nloaded++; | 1192 | nloaded++; |
1192 | size[0] = ALIGN(sizeof(*sect_attrs) | 1193 | size[0] = ALIGN(sizeof(*sect_attrs) |
1193 | + nloaded * sizeof(sect_attrs->attrs[0]), | 1194 | + nloaded * sizeof(sect_attrs->attrs[0]), |
@@ -1207,6 +1208,8 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect, | |||
1207 | for (i = 0; i < nsect; i++) { | 1208 | for (i = 0; i < nsect; i++) { |
1208 | if (! (sechdrs[i].sh_flags & SHF_ALLOC)) | 1209 | if (! (sechdrs[i].sh_flags & SHF_ALLOC)) |
1209 | continue; | 1210 | continue; |
1211 | if (!sechdrs[i].sh_size) | ||
1212 | continue; | ||
1210 | sattr->address = sechdrs[i].sh_addr; | 1213 | sattr->address = sechdrs[i].sh_addr; |
1211 | sattr->name = kstrdup(secstrings + sechdrs[i].sh_name, | 1214 | sattr->name = kstrdup(secstrings + sechdrs[i].sh_name, |
1212 | GFP_KERNEL); | 1215 | GFP_KERNEL); |