aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/CodingStyle10
-rw-r--r--Documentation/DocBook/kernel-hacking.tmpl7
-rw-r--r--Documentation/DocBook/kgdb.tmpl6
-rw-r--r--Documentation/driver-model/devres.txt7
-rw-r--r--Documentation/dynamic-debug-howto.txt15
-rw-r--r--Documentation/intel_txt.txt2
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt2
-rw-r--r--Documentation/zh_CN/CodingStyle7
-rw-r--r--arch/alpha/Kconfig3
-rw-r--r--arch/arm/Kconfig19
-rw-r--r--arch/arm/Kconfig.debug2
-rw-r--r--arch/arm/mach-omap2/gpmc.c8
-rw-r--r--arch/arm/mach-s3c24xx/Kconfig4
-rw-r--r--arch/arm/mach-tegra/tegra2_emc.c8
-rw-r--r--arch/arm/plat-omap/dmtimer.c8
-rw-r--r--arch/arm/plat-samsung/adc.c8
-rw-r--r--arch/blackfin/Kconfig6
-rw-r--r--arch/cris/arch-v32/drivers/Kconfig4
-rw-r--r--arch/ia64/Kconfig8
-rw-r--r--arch/ia64/kvm/Kconfig2
-rw-r--r--arch/ia64/xen/Kconfig2
-rw-r--r--arch/microblaze/platform/Kconfig.platform2
-rw-r--r--arch/mips/Kconfig27
-rw-r--r--arch/mips/jazz/Kconfig6
-rw-r--r--arch/mips/lantiq/xway/dma.c5
-rw-r--r--arch/mips/lantiq/xway/gptu.c8
-rw-r--r--arch/mips/pci/pci-lantiq.c12
-rw-r--r--arch/mips/sgi-ip27/Kconfig1
-rw-r--r--arch/parisc/Kconfig8
-rw-r--r--arch/powerpc/Kconfig14
-rw-r--r--arch/powerpc/kvm/Kconfig10
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig1
-rw-r--r--arch/powerpc/platforms/cell/Kconfig2
-rw-r--r--arch/powerpc/platforms/ps3/Kconfig2
-rw-r--r--arch/s390/Kconfig4
-rw-r--r--arch/s390/kvm/Kconfig2
-rw-r--r--arch/sh/Kconfig13
-rw-r--r--arch/sh/Kconfig.cpu3
-rw-r--r--arch/sh/mm/Kconfig4
-rw-r--r--arch/tile/kvm/Kconfig2
-rw-r--r--arch/um/Kconfig.net2
-rw-r--r--arch/um/Kconfig.um8
-rw-r--r--arch/x86/Kconfig22
-rw-r--r--arch/x86/um/Kconfig3
-rw-r--r--crypto/Kconfig15
-rw-r--r--drivers/acpi/Kconfig9
-rw-r--r--drivers/amba/tegra-ahb.c7
-rw-r--r--drivers/ata/Kconfig24
-rw-r--r--drivers/ata/pata_ep93xx.c7
-rw-r--r--drivers/base/Kconfig11
-rw-r--r--drivers/base/bus.c6
-rw-r--r--drivers/base/class.c4
-rw-r--r--drivers/base/core.c8
-rw-r--r--drivers/base/dd.c2
-rw-r--r--drivers/base/dma-buf.c9
-rw-r--r--drivers/base/firmware_class.c550
-rw-r--r--drivers/base/memory.c4
-rw-r--r--drivers/block/paride/Kconfig4
-rw-r--r--drivers/char/hw_random/exynos-rng.c9
-rw-r--r--drivers/char/hw_random/omap-rng.c6
-rw-r--r--drivers/char/hw_random/tx4939-rng.c7
-rw-r--r--drivers/cpufreq/Kconfig.arm4
-rw-r--r--drivers/cpufreq/Kconfig.x866
-rw-r--r--drivers/dma/dw_dmac.c7
-rw-r--r--drivers/dma/imx-dma.c7
-rw-r--r--drivers/dma/mmp_pdma.c7
-rw-r--r--drivers/dma/mmp_tdma.c7
-rw-r--r--drivers/dma/tegra20-apb-dma.c10
-rw-r--r--drivers/edac/Kconfig4
-rw-r--r--drivers/gpio/Kconfig2
-rw-r--r--drivers/gpio/gpio-mvebu.c18
-rw-r--r--drivers/gpio/gpio-mxs.c9
-rw-r--r--drivers/gpio/gpio-spear-spics.c8
-rw-r--r--drivers/gpio/gpio-stp-xway.c9
-rw-r--r--drivers/gpio/gpio-tegra.c9
-rw-r--r--drivers/gpio/gpiolib.c2
-rw-r--r--drivers/gpu/drm/ast/Kconfig2
-rw-r--r--drivers/gpu/drm/cirrus/Kconfig2
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimc.c8
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c8
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c7
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gsc.c8
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_rotator.c8
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c8
-rw-r--r--drivers/gpu/drm/gma500/Kconfig2
-rw-r--r--drivers/gpu/drm/mgag200/Kconfig2
-rw-r--r--drivers/gpu/drm/tegra/dc.c8
-rw-r--r--drivers/gpu/drm/tegra/hdmi.c6
-rw-r--r--drivers/gpu/drm/tegra/host1x.c6
-rw-r--r--drivers/gpu/drm/udl/Kconfig2
-rw-r--r--drivers/i2c/Kconfig2
-rw-r--r--drivers/i2c/busses/Kconfig16
-rw-r--r--drivers/i2c/busses/i2c-at91.c6
-rw-r--r--drivers/i2c/busses/i2c-imx.c6
-rw-r--r--drivers/i2c/busses/i2c-ocores.c7
-rw-r--r--drivers/i2c/busses/i2c-omap.c8
-rw-r--r--drivers/i2c/busses/i2c-rcar.c8
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c7
-rw-r--r--drivers/i2c/busses/i2c-sirf.c7
-rw-r--r--drivers/i2c/busses/i2c-stu300.c6
-rw-r--r--drivers/i2c/busses/i2c-tegra.c8
-rw-r--r--drivers/i2c/busses/i2c-xlr.c9
-rw-r--r--drivers/i2c/muxes/Kconfig2
-rw-r--r--drivers/ide/Kconfig8
-rw-r--r--drivers/idle/Kconfig1
-rw-r--r--drivers/iio/adc/at91_adc.c6
-rw-r--r--drivers/input/keyboard/spear-keyboard.c8
-rw-r--r--drivers/input/serio/arc_ps2.c7
-rw-r--r--drivers/iommu/Kconfig8
-rw-r--r--drivers/iommu/tegra-smmu.c7
-rw-r--r--drivers/isdn/hisax/Kconfig15
-rw-r--r--drivers/isdn/mISDN/core.c4
-rw-r--r--drivers/leds/Kconfig2
-rw-r--r--drivers/lguest/Kconfig2
-rw-r--r--drivers/macintosh/Kconfig2
-rw-r--r--drivers/media/Kconfig7
-rw-r--r--drivers/media/pci/cx25821/Kconfig2
-rw-r--r--drivers/media/platform/Kconfig8
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-core.c8
-rw-r--r--drivers/media/platform/mx2_emmaprp.c6
-rw-r--r--drivers/media/platform/s3c-camif/camif-core.c8
-rw-r--r--drivers/media/platform/s5p-fimc/Kconfig1
-rw-r--r--drivers/media/platform/s5p-fimc/fimc-core.c8
-rw-r--r--drivers/media/platform/s5p-fimc/fimc-lite.c8
-rw-r--r--drivers/media/platform/s5p-fimc/mipi-csis.c8
-rw-r--r--drivers/media/platform/s5p-g2d/g2d.c8
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-core.c8
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc.c8
-rw-r--r--drivers/media/platform/s5p-tv/Kconfig3
-rw-r--r--drivers/media/platform/soc_camera/mx2_camera.c12
-rw-r--r--drivers/media/usb/dvb-usb-v2/Kconfig2
-rw-r--r--drivers/media/usb/pvrusb2/Kconfig8
-rw-r--r--drivers/memory/emif.c8
-rw-r--r--drivers/memory/tegra20-mc.c7
-rw-r--r--drivers/memory/tegra30-mc.c7
-rw-r--r--drivers/memstick/Kconfig2
-rw-r--r--drivers/memstick/host/Kconfig12
-rw-r--r--drivers/mfd/intel_msic.c9
-rw-r--r--drivers/misc/atmel-ssc.c8
-rw-r--r--drivers/mmc/core/Kconfig3
-rw-r--r--drivers/mmc/host/Kconfig20
-rw-r--r--drivers/mmc/host/dw_mmc-pltfm.c7
-rw-r--r--drivers/mmc/host/mxs-mmc.c6
-rw-r--r--drivers/mmc/host/sdhci-s3c.c7
-rw-r--r--drivers/mtd/Kconfig2
-rw-r--r--drivers/mtd/chips/Kconfig2
-rw-r--r--drivers/mtd/devices/Kconfig4
-rw-r--r--drivers/mtd/devices/spear_smi.c7
-rw-r--r--drivers/mtd/maps/autcpu12-nvram.c9
-rw-r--r--drivers/mtd/maps/lantiq-flash.c8
-rw-r--r--drivers/mtd/nand/Kconfig7
-rw-r--r--drivers/mtd/nand/fsmc_nand.c33
-rw-r--r--drivers/mtd/nand/lpc32xx_mlc.c9
-rw-r--r--drivers/mtd/nand/lpc32xx_slc.c8
-rw-r--r--drivers/mtd/nand/mxc_nand.c12
-rw-r--r--drivers/mtd/nand/s3c2410.c7
-rw-r--r--drivers/mtd/nand/txx9ndfmc.c7
-rw-r--r--drivers/net/Kconfig9
-rw-r--r--drivers/net/ethernet/8390/Kconfig5
-rw-r--r--drivers/net/ethernet/atheros/Kconfig8
-rw-r--r--drivers/net/ethernet/dec/tulip/Kconfig4
-rw-r--r--drivers/net/ethernet/fujitsu/Kconfig2
-rw-r--r--drivers/net/ethernet/i825xx/Kconfig4
-rw-r--r--drivers/net/ethernet/icplus/Kconfig2
-rw-r--r--drivers/net/ethernet/intel/Kconfig5
-rw-r--r--drivers/net/ethernet/microchip/Kconfig4
-rw-r--r--drivers/net/ethernet/natsemi/Kconfig3
-rw-r--r--drivers/net/ethernet/packetengines/Kconfig4
-rw-r--r--drivers/net/ethernet/realtek/Kconfig4
-rw-r--r--drivers/net/ethernet/seeq/Kconfig1
-rw-r--r--drivers/net/ethernet/silan/Kconfig6
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/Kconfig4
-rw-r--r--drivers/net/ethernet/sun/Kconfig4
-rw-r--r--drivers/net/ethernet/ti/Kconfig4
-rw-r--r--drivers/net/hippi/Kconfig8
-rw-r--r--drivers/net/irda/Kconfig36
-rw-r--r--drivers/net/phy/mdio_bus.c2
-rw-r--r--drivers/net/ppp/Kconfig20
-rw-r--r--drivers/net/team/Kconfig3
-rw-r--r--drivers/net/usb/Kconfig16
-rw-r--r--drivers/net/wan/Kconfig4
-rw-r--r--drivers/net/wireless/Kconfig10
-rw-r--r--drivers/net/wireless/ath/ath6kl/Kconfig1
-rw-r--r--drivers/net/wireless/ath/carl9170/Kconfig2
-rw-r--r--drivers/net/wireless/ath/wil6210/dbg_hexdump.h18
-rw-r--r--drivers/net/wireless/b43/Kconfig12
-rw-r--r--drivers/net/wireless/ipw2x00/Kconfig2
-rw-r--r--drivers/net/wireless/p54/Kconfig2
-rw-r--r--drivers/net/wireless/rt2x00/Kconfig5
-rw-r--r--drivers/net/wireless/rtl818x/Kconfig2
-rw-r--r--drivers/net/wireless/zd1211rw/Kconfig2
-rw-r--r--drivers/pcmcia/Kconfig4
-rw-r--r--drivers/pinctrl/pinctrl-at91.c7
-rw-r--r--drivers/pinctrl/pinctrl-bcm2835.c6
-rw-r--r--drivers/pinctrl/pinctrl-coh901.c8
-rw-r--r--drivers/pinctrl/pinctrl-exynos5440.c8
-rw-r--r--drivers/pinctrl/pinctrl-falcon.c13
-rw-r--r--drivers/pinctrl/pinctrl-imx.c6
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.c6
-rw-r--r--drivers/pinctrl/pinctrl-pxa3xx.c7
-rw-r--r--drivers/pinctrl/pinctrl-samsung.c8
-rw-r--r--drivers/pinctrl/pinctrl-u300.c6
-rw-r--r--drivers/pinctrl/pinctrl-xway.c9
-rw-r--r--drivers/pinctrl/spear/pinctrl-plgpio.c8
-rw-r--r--drivers/platform/x86/Kconfig6
-rw-r--r--drivers/power/jz4740-battery.c7
-rw-r--r--drivers/power/power_supply_core.c4
-rw-r--r--drivers/pwm/pwm-imx.c6
-rw-r--r--drivers/pwm/pwm-lpc32xx.c6
-rw-r--r--drivers/pwm/pwm-mxs.c6
-rw-r--r--drivers/pwm/pwm-puv3.c6
-rw-r--r--drivers/pwm/pwm-pxa.c6
-rw-r--r--drivers/pwm/pwm-spear.c6
-rw-r--r--drivers/pwm/pwm-tegra.c6
-rw-r--r--drivers/pwm/pwm-tiecap.c6
-rw-r--r--drivers/pwm/pwm-tiehrpwm.c6
-rw-r--r--drivers/pwm/pwm-tipwmss.c6
-rw-r--r--drivers/pwm/pwm-vt8500.c6
-rw-r--r--drivers/remoteproc/Kconfig5
-rw-r--r--drivers/rpmsg/Kconfig3
-rw-r--r--drivers/rtc/interface.c6
-rw-r--r--drivers/rtc/rtc-s3c.c8
-rw-r--r--drivers/rtc/rtc-snvs.c6
-rw-r--r--drivers/rtc/rtc-spear.c8
-rw-r--r--drivers/rtc/rtc-tegra.c8
-rw-r--r--drivers/sbus/char/Kconfig7
-rw-r--r--drivers/scsi/Kconfig18
-rw-r--r--drivers/scsi/arm/Kconfig10
-rw-r--r--drivers/scsi/device_handler/Kconfig4
-rw-r--r--drivers/scsi/hosts.c4
-rw-r--r--drivers/scsi/osd/osd_uld.c26
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c4
-rw-r--r--drivers/spi/Kconfig17
-rw-r--r--drivers/spi/spi-ep93xx.c7
-rw-r--r--drivers/spi/spi-mxs.c6
-rw-r--r--drivers/spi/spi-omap2-mcspi.c7
-rw-r--r--drivers/spi/spi-s3c64xx.c7
-rw-r--r--drivers/spi/spi-sirf.c7
-rw-r--r--drivers/spi/spi-tegra20-sflash.c8
-rw-r--r--drivers/spi/spi-tegra20-slink.c8
-rw-r--r--drivers/spi/spi.c4
-rw-r--r--drivers/staging/iio/adc/mxs-lradc.c7
-rw-r--r--drivers/staging/nvec/nvec.c8
-rw-r--r--drivers/staging/omap-thermal/omap-bandgap.c11
-rw-r--r--drivers/thermal/exynos_thermal.c8
-rw-r--r--drivers/tty/serial/sccnxp.c8
-rw-r--r--drivers/tty/tty_io.c4
-rw-r--r--drivers/usb/chipidea/usbmisc_imx6q.c6
-rw-r--r--drivers/usb/gadget/at91_udc.c12
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.c12
-rw-r--r--drivers/usb/gadget/bcm63xx_udc.c13
-rw-r--r--drivers/usb/gadget/fusb300_udc.c13
-rw-r--r--drivers/usb/gadget/imx_udc.c12
-rw-r--r--drivers/usb/gadget/lpc32xx_udc.c12
-rw-r--r--drivers/usb/gadget/m66592-udc.c12
-rw-r--r--drivers/usb/gadget/pxa25x_udc.c15
-rw-r--r--drivers/usb/gadget/r8a66597-udc.c15
-rw-r--r--drivers/usb/gadget/s3c-hsotg.c7
-rw-r--r--drivers/usb/gadget/s3c-hsudc.c7
-rw-r--r--drivers/usb/host/ehci-atmel.c7
-rw-r--r--drivers/usb/host/ehci-grlib.c9
-rw-r--r--drivers/usb/host/ehci-mxc.c7
-rw-r--r--drivers/usb/host/ehci-platform.c7
-rw-r--r--drivers/usb/host/ehci-ppc-of.c8
-rw-r--r--drivers/usb/host/ehci-sead3.c8
-rw-r--r--drivers/usb/host/ehci-sh.c7
-rw-r--r--drivers/usb/host/ehci-vt8500.c8
-rw-r--r--drivers/usb/host/ehci-xilinx-of.c8
-rw-r--r--drivers/usb/host/ohci-nxp.c7
-rw-r--r--drivers/usb/host/ohci-platform.c7
-rw-r--r--drivers/usb/host/ohci-s3c2410.c7
-rw-r--r--drivers/usb/musb/musb_dsps.c7
-rw-r--r--drivers/usb/musb/omap2430.c4
-rw-r--r--drivers/usb/otg/gpio_vbus.c12
-rw-r--r--drivers/usb/otg/msm_otg.c13
-rw-r--r--drivers/usb/otg/mxs-phy.c6
-rw-r--r--drivers/usb/phy/mv_u3d_phy.c8
-rw-r--r--drivers/usb/phy/omap-usb2.c8
-rw-r--r--drivers/usb/renesas_usbhs/common.c9
-rw-r--r--drivers/uwb/lc-rc.c21
-rw-r--r--drivers/vhost/Kconfig4
-rw-r--r--drivers/vhost/Kconfig.tcm4
-rw-r--r--drivers/video/Kconfig26
-rw-r--r--drivers/video/backlight/backlight.c2
-rw-r--r--drivers/video/console/Kconfig2
-rw-r--r--drivers/video/exynos/exynos_dp_core.c8
-rw-r--r--drivers/video/geode/Kconfig14
-rw-r--r--drivers/video/jz4740_fb.c6
-rw-r--r--drivers/video/omap/Kconfig2
-rw-r--r--drivers/video/omap2/dss/hdmi.c8
-rw-r--r--drivers/video/omap2/vrfb.c9
-rw-r--r--drivers/video/s3c-fb.c7
-rw-r--r--drivers/virtio/Kconfig8
-rw-r--r--drivers/vlynq/Kconfig2
-rw-r--r--drivers/w1/masters/omap_hdq.c8
-rw-r--r--drivers/watchdog/ar7_wdt.c8
-rw-r--r--drivers/watchdog/at32ap700x_wdt.c12
-rw-r--r--drivers/watchdog/at91sam9_wdt.c13
-rw-r--r--drivers/watchdog/coh901327_wdt.c12
-rw-r--r--drivers/watchdog/dw_wdt.c6
-rw-r--r--drivers/watchdog/imx2_wdt.c20
-rw-r--r--drivers/watchdog/jz4740_wdt.c6
-rw-r--r--drivers/watchdog/lantiq_wdt.c8
-rw-r--r--drivers/watchdog/max63xx_wdt.c7
-rw-r--r--drivers/watchdog/pnx4008_wdt.c6
-rw-r--r--drivers/watchdog/txx9wdt.c19
-rw-r--r--fs/9p/Kconfig3
-rw-r--r--fs/adfs/Kconfig4
-rw-r--r--fs/affs/Kconfig4
-rw-r--r--fs/afs/Kconfig7
-rw-r--r--fs/befs/Kconfig4
-rw-r--r--fs/bfs/Kconfig4
-rw-r--r--fs/btrfs/Kconfig3
-rw-r--r--fs/ceph/Kconfig4
-rw-r--r--fs/cifs/Kconfig8
-rw-r--r--fs/debugfs/inode.c1
-rw-r--r--fs/ecryptfs/Kconfig4
-rw-r--r--fs/efs/Kconfig4
-rw-r--r--fs/hfs/Kconfig4
-rw-r--r--fs/jffs2/Kconfig10
-rw-r--r--fs/logfs/Kconfig4
-rw-r--r--fs/nfsd/Kconfig4
-rw-r--r--fs/nilfs2/Kconfig3
-rw-r--r--fs/sysfs/mount.c2
-rw-r--r--fs/ufs/Kconfig2
-rw-r--r--fs/xfs/Kconfig4
-rw-r--r--include/linux/debugfs.h2
-rw-r--r--include/linux/device.h5
-rw-r--r--include/linux/dynamic_debug.h11
-rw-r--r--include/linux/platform_device.h18
-rw-r--r--include/linux/power_supply.h2
-rw-r--r--include/linux/printk.h17
-rw-r--r--include/linux/rtc.h2
-rw-r--r--init/Kconfig54
-rw-r--r--init/do_mounts.c4
-rw-r--r--kernel/gcov/Kconfig2
-rw-r--r--kernel/power/suspend_test.c11
-rw-r--r--lib/Kconfig2
-rw-r--r--lib/Kconfig.debug2
-rw-r--r--lib/Kconfig.kgdb2
-rw-r--r--lib/devres.c58
-rw-r--r--lib/dynamic_debug.c165
-rw-r--r--lib/hexdump.c4
-rw-r--r--mm/Kconfig2
-rw-r--r--net/9p/Kconfig2
-rw-r--r--net/Kconfig5
-rw-r--r--net/ceph/Kconfig4
-rw-r--r--net/dccp/Kconfig4
-rw-r--r--net/dccp/ccids/Kconfig5
-rw-r--r--net/decnet/Kconfig4
-rw-r--r--net/decnet/netfilter/Kconfig2
-rw-r--r--net/ieee802154/Kconfig3
-rw-r--r--net/ieee802154/wpan-class.c5
-rw-r--r--net/ipv4/Kconfig11
-rw-r--r--net/ipv4/netfilter/Kconfig4
-rw-r--r--net/ipv6/Kconfig24
-rw-r--r--net/l2tp/Kconfig4
-rw-r--r--net/lapb/Kconfig3
-rw-r--r--net/mac80211/Kconfig2
-rw-r--r--net/mac802154/Kconfig2
-rw-r--r--net/netfilter/Kconfig24
-rw-r--r--net/nfc/core.c4
-rw-r--r--net/rds/Kconfig4
-rw-r--r--net/rxrpc/Kconfig2
-rw-r--r--net/sunrpc/Kconfig2
-rw-r--r--net/tipc/Kconfig4
-rw-r--r--net/x25/Kconfig3
-rw-r--r--net/xfrm/Kconfig16
-rw-r--r--scripts/coccinelle/api/devm_ioremap_resource.cocci90
-rw-r--r--sound/soc/cirrus/ep93xx-ac97.c7
-rw-r--r--sound/soc/cirrus/ep93xx-i2s.c6
-rw-r--r--sound/soc/codecs/jz4740.c6
-rw-r--r--sound/soc/fsl/imx-audmux.c6
-rw-r--r--sound/soc/fsl/imx-ssi.c7
-rw-r--r--sound/soc/kirkwood/kirkwood-i2s.c8
-rw-r--r--sound/soc/mxs/mxs-saif.c8
-rw-r--r--sound/soc/pxa/mmp-sspa.c6
-rw-r--r--tools/lguest/lguest.txt8
378 files changed, 1686 insertions, 1880 deletions
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 495e5ba1634c..e00b8f0dde52 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -546,15 +546,7 @@ config AUDIT
546 logging of avc messages output). Does not do system-call 546 logging of avc messages output). Does not do system-call
547 auditing without CONFIG_AUDITSYSCALL. 547 auditing without CONFIG_AUDITSYSCALL.
548 548
549Features that might still be considered unstable should be defined as 549Seriously dangerous features (such as write support for certain
550dependent on "EXPERIMENTAL":
551
552config SLUB
553 depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
554 bool "SLUB (Unqueued Allocator)"
555 ...
556
557while seriously dangerous features (such as write support for certain
558filesystems) should advertise this prominently in their prompt string: 550filesystems) should advertise this prominently in their prompt string:
559 551
560config ADFS_FS_RW 552config ADFS_FS_RW
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl
index eee71426ecb8..22e0bd1adf25 100644
--- a/Documentation/DocBook/kernel-hacking.tmpl
+++ b/Documentation/DocBook/kernel-hacking.tmpl
@@ -1185,13 +1185,6 @@ static struct block_device_operations opt_fops = {
1185 </para> 1185 </para>
1186 1186
1187 <para> 1187 <para>
1188 You may well want to make your CONFIG option only visible if
1189 <symbol>CONFIG_EXPERIMENTAL</symbol> is enabled: this serves as a
1190 warning to users. There many other fancy things you can do: see
1191 the various <filename>Kconfig</filename> files for ideas.
1192 </para>
1193
1194 <para>
1195 In your description of the option, make sure you address both the 1188 In your description of the option, make sure you address both the
1196 expert user and the user who knows nothing about your feature. Mention 1189 expert user and the user who knows nothing about your feature. Mention
1197 incompatibilities and issues here. <emphasis> Definitely 1190 incompatibilities and issues here. <emphasis> Definitely
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl
index 4ee4ba3509fc..f77358f96930 100644
--- a/Documentation/DocBook/kgdb.tmpl
+++ b/Documentation/DocBook/kgdb.tmpl
@@ -94,10 +94,8 @@
94 <sect1 id="CompileKGDB"> 94 <sect1 id="CompileKGDB">
95 <title>Kernel config options for kgdb</title> 95 <title>Kernel config options for kgdb</title>
96 <para> 96 <para>
97 To enable <symbol>CONFIG_KGDB</symbol> you should first turn on 97 To enable <symbol>CONFIG_KGDB</symbol> you should look under
98 "Prompt for development and/or incomplete code/drivers" 98 "Kernel debugging" and select "KGDB: kernel debugger".
99 (CONFIG_EXPERIMENTAL) in "General setup", then under the
100 "Kernel debugging" select "KGDB: kernel debugger".
101 </para> 99 </para>
102 <para> 100 <para>
103 While it is not a hard requirement that you have symbols in your 101 While it is not a hard requirement that you have symbols in your
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt
index 43cff70465ab..b4671459857f 100644
--- a/Documentation/driver-model/devres.txt
+++ b/Documentation/driver-model/devres.txt
@@ -266,7 +266,8 @@ IOMAP
266 devm_ioremap() 266 devm_ioremap()
267 devm_ioremap_nocache() 267 devm_ioremap_nocache()
268 devm_iounmap() 268 devm_iounmap()
269 devm_request_and_ioremap() : checks resource, requests region, ioremaps 269 devm_ioremap_resource() : checks resource, requests memory region, ioremaps
270 devm_request_and_ioremap() : obsoleted by devm_ioremap_resource()
270 pcim_iomap() 271 pcim_iomap()
271 pcim_iounmap() 272 pcim_iounmap()
272 pcim_iomap_table() : array of mapped addresses indexed by BAR 273 pcim_iomap_table() : array of mapped addresses indexed by BAR
@@ -288,3 +289,7 @@ PINCTRL
288PWM 289PWM
289 devm_pwm_get() 290 devm_pwm_get()
290 devm_pwm_put() 291 devm_pwm_put()
292
293PHY
294 devm_usb_get_phy()
295 devm_usb_put_phy()
diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt
index 6e1684981da2..72322c6d7352 100644
--- a/Documentation/dynamic-debug-howto.txt
+++ b/Documentation/dynamic-debug-howto.txt
@@ -6,8 +6,16 @@ This document describes how to use the dynamic debug (dyndbg) feature.
6 6
7Dynamic debug is designed to allow you to dynamically enable/disable 7Dynamic debug is designed to allow you to dynamically enable/disable
8kernel code to obtain additional kernel information. Currently, if 8kernel code to obtain additional kernel information. Currently, if
9CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() calls can 9CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() and
10be dynamically enabled per-callsite. 10print_hex_dump_debug()/print_hex_dump_bytes() calls can be dynamically
11enabled per-callsite.
12
13If CONFIG_DYNAMIC_DEBUG is not set, print_hex_dump_debug() is just
14shortcut for print_hex_dump(KERN_DEBUG).
15
16For print_hex_dump_debug()/print_hex_dump_bytes(), format string is
17its 'prefix_str' argument, if it is constant string; or "hexdump"
18in case 'prefix_str' is build dynamically.
11 19
12Dynamic debug has even more useful features: 20Dynamic debug has even more useful features:
13 21
@@ -202,6 +210,9 @@ The flags are:
202 t Include thread ID in messages not generated from interrupt context 210 t Include thread ID in messages not generated from interrupt context
203 _ No flags are set. (Or'd with others on input) 211 _ No flags are set. (Or'd with others on input)
204 212
213For print_hex_dump_debug() and print_hex_dump_bytes(), only 'p' flag
214have meaning, other flags ignored.
215
205For display, the flags are preceded by '=' 216For display, the flags are preceded by '='
206(mnemonic: what the flags are currently equal to). 217(mnemonic: what the flags are currently equal to).
207 218
diff --git a/Documentation/intel_txt.txt b/Documentation/intel_txt.txt
index 849de1a78e77..91d89c540709 100644
--- a/Documentation/intel_txt.txt
+++ b/Documentation/intel_txt.txt
@@ -192,7 +192,7 @@ grub.conf needs to be modified as follows:
192 192
193The kernel option for enabling Intel TXT support is found under the 193The kernel option for enabling Intel TXT support is found under the
194Security top-level menu and is called "Enable Intel(R) Trusted 194Security top-level menu and is called "Enable Intel(R) Trusted
195Execution Technology (TXT)". It is marked as EXPERIMENTAL and 195Execution Technology (TXT)". It is considered EXPERIMENTAL and
196depends on the generic x86 support (to allow maximum flexibility in 196depends on the generic x86 support (to allow maximum flexibility in
197kernel build options), since the tboot code will detect whether the 197kernel build options), since the tboot code will detect whether the
198platform actually supports Intel TXT and thus whether any of the 198platform actually supports Intel TXT and thus whether any of the
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 9d666828915a..cf7bc6cb9719 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -1398,7 +1398,7 @@ Sysfs notes:
1398EXPERIMENTAL: UWB 1398EXPERIMENTAL: UWB
1399----------------- 1399-----------------
1400 1400
1401This feature is marked EXPERIMENTAL because it has not been extensively 1401This feature is considered EXPERIMENTAL because it has not been extensively
1402tested and validated in various ThinkPad models yet. The feature may not 1402tested and validated in various ThinkPad models yet. The feature may not
1403work as expected. USE WITH CAUTION! To use this feature, you need to supply 1403work as expected. USE WITH CAUTION! To use this feature, you need to supply
1404the experimental=1 parameter when loading the module. 1404the experimental=1 parameter when loading the module.
diff --git a/Documentation/zh_CN/CodingStyle b/Documentation/zh_CN/CodingStyle
index ecd9307a641f..654afd72eb24 100644
--- a/Documentation/zh_CN/CodingStyle
+++ b/Documentation/zh_CN/CodingStyle
@@ -462,13 +462,6 @@ config AUDIT
462 logging of avc messages output). Does not do system-call 462 logging of avc messages output). Does not do system-call
463 auditing without CONFIG_AUDITSYSCALL. 463 auditing without CONFIG_AUDITSYSCALL.
464 464
465仍然被认为不够稳定的功能应该被定义为依赖于“EXPERIMENTAL”:
466
467config SLUB
468 depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
469 bool "SLUB (Unqueued Allocator)"
470 ...
471
472而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这 465而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这
473一点: 466一点:
474 467
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 9b504af2e966..775361f67bfd 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -555,8 +555,7 @@ config NR_CPUS
555 with working support have a maximum of 4 CPUs. 555 with working support have a maximum of 4 CPUs.
556 556
557config ARCH_DISCONTIGMEM_ENABLE 557config ARCH_DISCONTIGMEM_ENABLE
558 bool "Discontiguous Memory Support (EXPERIMENTAL)" 558 bool "Discontiguous Memory Support"
559 depends on EXPERIMENTAL
560 help 559 help
561 Say Y to support efficient handling of discontiguous physical memory, 560 Say Y to support efficient handling of discontiguous physical memory,
562 for architectures which are either NUMA (Non-Uniform Memory Access) 561 for architectures which are either NUMA (Non-Uniform Memory Access)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2f66b2e42490..f410cb16dd22 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1530,7 +1530,6 @@ config SMP
1530 1530
1531config SMP_ON_UP 1531config SMP_ON_UP
1532 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" 1532 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
1533 depends on EXPERIMENTAL
1534 depends on SMP && !XIP_KERNEL 1533 depends on SMP && !XIP_KERNEL
1535 default y 1534 default y
1536 help 1535 help
@@ -1731,7 +1730,7 @@ config AEABI
1731 1730
1732config OABI_COMPAT 1731config OABI_COMPAT
1733 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" 1732 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1734 depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL 1733 depends on AEABI && !THUMB2_KERNEL
1735 default y 1734 default y
1736 help 1735 help
1737 This option preserves the old syscall interface along with the 1736 This option preserves the old syscall interface along with the
@@ -1855,7 +1854,6 @@ config SECCOMP
1855 1854
1856config CC_STACKPROTECTOR 1855config CC_STACKPROTECTOR
1857 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1856 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1858 depends on EXPERIMENTAL
1859 help 1857 help
1860 This option turns on the -fstack-protector GCC feature. This 1858 This option turns on the -fstack-protector GCC feature. This
1861 feature puts, at the beginning of functions, a canary value on 1859 feature puts, at the beginning of functions, a canary value on
@@ -1872,7 +1870,7 @@ config XEN_DOM0
1872 1870
1873config XEN 1871config XEN
1874 bool "Xen guest support on ARM (EXPERIMENTAL)" 1872 bool "Xen guest support on ARM (EXPERIMENTAL)"
1875 depends on EXPERIMENTAL && ARM && OF 1873 depends on ARM && OF
1876 depends on CPU_V7 && !CPU_V6 1874 depends on CPU_V7 && !CPU_V6
1877 help 1875 help
1878 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. 1876 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
@@ -1941,7 +1939,7 @@ config ZBOOT_ROM
1941 1939
1942choice 1940choice
1943 prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)" 1941 prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)"
1944 depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL 1942 depends on ZBOOT_ROM && ARCH_SH7372
1945 default ZBOOT_ROM_NONE 1943 default ZBOOT_ROM_NONE
1946 help 1944 help
1947 Include experimental SD/MMC loading code in the ROM-able zImage. 1945 Include experimental SD/MMC loading code in the ROM-able zImage.
@@ -1970,7 +1968,7 @@ endchoice
1970 1968
1971config ARM_APPENDED_DTB 1969config ARM_APPENDED_DTB
1972 bool "Use appended device tree blob to zImage (EXPERIMENTAL)" 1970 bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
1973 depends on OF && !ZBOOT_ROM && EXPERIMENTAL 1971 depends on OF && !ZBOOT_ROM
1974 help 1972 help
1975 With this option, the boot code will look for a device tree binary 1973 With this option, the boot code will look for a device tree binary
1976 (DTB) appended to zImage 1974 (DTB) appended to zImage
@@ -2088,7 +2086,7 @@ config XIP_PHYS_ADDR
2088 2086
2089config KEXEC 2087config KEXEC
2090 bool "Kexec system call (EXPERIMENTAL)" 2088 bool "Kexec system call (EXPERIMENTAL)"
2091 depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU) 2089 depends on (!SMP || HOTPLUG_CPU)
2092 help 2090 help
2093 kexec is a system call that implements the ability to shutdown your 2091 kexec is a system call that implements the ability to shutdown your
2094 current kernel, and to start another kernel. It is like a reboot 2092 current kernel, and to start another kernel. It is like a reboot
@@ -2110,7 +2108,6 @@ config ATAGS_PROC
2110 2108
2111config CRASH_DUMP 2109config CRASH_DUMP
2112 bool "Build kdump crash kernel (EXPERIMENTAL)" 2110 bool "Build kdump crash kernel (EXPERIMENTAL)"
2113 depends on EXPERIMENTAL
2114 help 2111 help
2115 Generate crash dump after being started by kexec. This should 2112 Generate crash dump after being started by kexec. This should
2116 be normally only set in special crash dump kernels which are 2113 be normally only set in special crash dump kernels which are
@@ -2177,7 +2174,7 @@ config CPU_FREQ_S3C
2177 2174
2178config CPU_FREQ_S3C24XX 2175config CPU_FREQ_S3C24XX
2179 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" 2176 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
2180 depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL 2177 depends on ARCH_S3C24XX && CPU_FREQ
2181 select CPU_FREQ_S3C 2178 select CPU_FREQ_S3C
2182 help 2179 help
2183 This enables the CPUfreq driver for the Samsung S3C24XX family 2180 This enables the CPUfreq driver for the Samsung S3C24XX family
@@ -2189,7 +2186,7 @@ config CPU_FREQ_S3C24XX
2189 2186
2190config CPU_FREQ_S3C24XX_PLL 2187config CPU_FREQ_S3C24XX_PLL
2191 bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" 2188 bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
2192 depends on CPU_FREQ_S3C24XX && EXPERIMENTAL 2189 depends on CPU_FREQ_S3C24XX
2193 help 2190 help
2194 Compile in support for changing the PLL frequency from the 2191 Compile in support for changing the PLL frequency from the
2195 S3C24XX series CPUfreq driver. The PLL takes time to settle 2192 S3C24XX series CPUfreq driver. The PLL takes time to settle
@@ -2252,7 +2249,7 @@ config FPE_NWFPE_XP
2252 2249
2253config FPE_FASTFPE 2250config FPE_FASTFPE
2254 bool "FastFPE math emulation (EXPERIMENTAL)" 2251 bool "FastFPE math emulation (EXPERIMENTAL)"
2255 depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL 2252 depends on (!AEABI || OABI_COMPAT) && !CPU_32v3
2256 ---help--- 2253 ---help---
2257 Say Y here to include the FAST floating point emulator in the kernel. 2254 Say Y here to include the FAST floating point emulator in the kernel.
2258 This is an experimental much faster emulator which now also has full 2255 This is an experimental much faster emulator which now also has full
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 661030d6bc6c..fc2a591e1676 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -32,7 +32,7 @@ config FRAME_POINTER
32 32
33config ARM_UNWIND 33config ARM_UNWIND
34 bool "Enable stack unwinding support (EXPERIMENTAL)" 34 bool "Enable stack unwinding support (EXPERIMENTAL)"
35 depends on AEABI && EXPERIMENTAL 35 depends on AEABI
36 default y 36 default y
37 help 37 help
38 This option enables stack unwinding support in the kernel 38 This option enables stack unwinding support in the kernel
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 8033cb747c86..64bac53da0e8 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -1134,11 +1134,9 @@ static int gpmc_probe(struct platform_device *pdev)
1134 phys_base = res->start; 1134 phys_base = res->start;
1135 mem_size = resource_size(res); 1135 mem_size = resource_size(res);
1136 1136
1137 gpmc_base = devm_request_and_ioremap(&pdev->dev, res); 1137 gpmc_base = devm_ioremap_resource(&pdev->dev, res);
1138 if (!gpmc_base) { 1138 if (IS_ERR(gpmc_base))
1139 dev_err(&pdev->dev, "error: request memory / ioremap\n"); 1139 return PTR_ERR(gpmc_base);
1140 return -EADDRNOTAVAIL;
1141 }
1142 1140
1143 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1141 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
1144 if (res == NULL) 1142 if (res == NULL)
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index 25df14a9e268..3445c4f42347 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -291,8 +291,8 @@ config MACH_JIVE
291 Say Y here if you are using the Logitech Jive. 291 Say Y here if you are using the Logitech Jive.
292 292
293config MACH_JIVE_SHOW_BOOTLOADER 293config MACH_JIVE_SHOW_BOOTLOADER
294 bool "Allow access to bootloader partitions in MTD (EXPERIMENTAL)" 294 bool "Allow access to bootloader partitions in MTD"
295 depends on MACH_JIVE && EXPERIMENTAL 295 depends on MACH_JIVE
296 296
297config MACH_S3C2413 297config MACH_S3C2413
298 bool 298 bool
diff --git a/arch/arm/mach-tegra/tegra2_emc.c b/arch/arm/mach-tegra/tegra2_emc.c
index e18aa2f83ebf..ce7ce42a1ac9 100644
--- a/arch/arm/mach-tegra/tegra2_emc.c
+++ b/arch/arm/mach-tegra/tegra2_emc.c
@@ -312,11 +312,9 @@ static int tegra_emc_probe(struct platform_device *pdev)
312 return -ENOMEM; 312 return -ENOMEM;
313 } 313 }
314 314
315 emc_regbase = devm_request_and_ioremap(&pdev->dev, res); 315 emc_regbase = devm_ioremap_resource(&pdev->dev, res);
316 if (!emc_regbase) { 316 if (IS_ERR(emc_regbase))
317 dev_err(&pdev->dev, "failed to remap registers\n"); 317 return PTR_ERR(emc_regbase);
318 return -ENOMEM;
319 }
320 318
321 pdata = pdev->dev.platform_data; 319 pdata = pdev->dev.platform_data;
322 320
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index 7b433f3bddca..a0daa2fb5de6 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -808,11 +808,9 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
808 return -ENOMEM; 808 return -ENOMEM;
809 } 809 }
810 810
811 timer->io_base = devm_request_and_ioremap(dev, mem); 811 timer->io_base = devm_ioremap_resource(dev, mem);
812 if (!timer->io_base) { 812 if (IS_ERR(timer->io_base))
813 dev_err(dev, "%s: region already claimed.\n", __func__); 813 return PTR_ERR(timer->io_base);
814 return -ENOMEM;
815 }
816 814
817 if (dev->of_node) { 815 if (dev->of_node) {
818 if (of_find_property(dev->of_node, "ti,timer-alwon", NULL)) 816 if (of_find_property(dev->of_node, "ti,timer-alwon", NULL))
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c
index 2d676ab50f73..ca07cb1b155a 100644
--- a/arch/arm/plat-samsung/adc.c
+++ b/arch/arm/plat-samsung/adc.c
@@ -386,11 +386,9 @@ static int s3c_adc_probe(struct platform_device *pdev)
386 return -ENXIO; 386 return -ENXIO;
387 } 387 }
388 388
389 adc->regs = devm_request_and_ioremap(dev, regs); 389 adc->regs = devm_ioremap_resource(dev, regs);
390 if (!adc->regs) { 390 if (IS_ERR(adc->regs))
391 dev_err(dev, "failed to map registers\n"); 391 return PTR_ERR(adc->regs);
392 return -ENXIO;
393 }
394 392
395 ret = regulator_enable(adc->vdd); 393 ret = regulator_enable(adc->vdd);
396 if (ret) 394 if (ret)
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 67e4aaad78f5..e98f3248c8aa 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -560,8 +560,7 @@ choice
560 accurate - This option is therefore marked experimental. 560 accurate - This option is therefore marked experimental.
561 561
562config BFIN_KERNEL_CLOCK_MEMINIT_CALC 562config BFIN_KERNEL_CLOCK_MEMINIT_CALC
563 bool "Calculate Timings (EXPERIMENTAL)" 563 bool "Calculate Timings"
564 depends on EXPERIMENTAL
565 564
566config BFIN_KERNEL_CLOCK_MEMINIT_SPEC 565config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
567 bool "Provide accurate Timings based on target SCLK" 566 bool "Provide accurate Timings based on target SCLK"
@@ -1118,7 +1117,7 @@ endchoice
1118 1117
1119comment "Memory Protection Unit" 1118comment "Memory Protection Unit"
1120config MPU 1119config MPU
1121 bool "Enable the memory protection unit (EXPERIMENTAL)" 1120 bool "Enable the memory protection unit"
1122 default n 1121 default n
1123 help 1122 help
1124 Use the processor's MPU to protect applications from accessing 1123 Use the processor's MPU to protect applications from accessing
@@ -1440,7 +1439,6 @@ config BFIN_CPU_FREQ
1440 1439
1441config CPU_VOLTAGE 1440config CPU_VOLTAGE
1442 bool "CPU Voltage scaling" 1441 bool "CPU Voltage scaling"
1443 depends on EXPERIMENTAL
1444 depends on CPU_FREQ 1442 depends on CPU_FREQ
1445 default n 1443 default n
1446 help 1444 help
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig
index de43aadcdbc4..af4a486dadcd 100644
--- a/arch/cris/arch-v32/drivers/Kconfig
+++ b/arch/cris/arch-v32/drivers/Kconfig
@@ -680,7 +680,7 @@ config ETRAX_SPI_MMC_BOARD
680 680
681config SPI_ETRAX_SSER 681config SPI_ETRAX_SSER
682 tristate 682 tristate
683 depends on SPI_MASTER && ETRAX_ARCH_V32 && EXPERIMENTAL 683 depends on SPI_MASTER && ETRAX_ARCH_V32
684 select SPI_BITBANG 684 select SPI_BITBANG
685 help 685 help
686 This enables using an synchronous serial (sser) port as a 686 This enables using an synchronous serial (sser) port as a
@@ -689,7 +689,7 @@ config SPI_ETRAX_SSER
689 689
690config SPI_ETRAX_GPIO 690config SPI_ETRAX_GPIO
691 tristate 691 tristate
692 depends on SPI_MASTER && ETRAX_ARCH_V32 && EXPERIMENTAL 692 depends on SPI_MASTER && ETRAX_ARCH_V32
693 select SPI_BITBANG 693 select SPI_BITBANG
694 help 694 help
695 This enables using GPIO pins port as a SPI master controller 695 This enables using GPIO pins port as a SPI master controller
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 00c2e88f7755..c1b80fb6938d 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -374,8 +374,8 @@ config NR_CPUS
374 performance hit. 374 performance hit.
375 375
376config HOTPLUG_CPU 376config HOTPLUG_CPU
377 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 377 bool "Support for hot-pluggable CPUs"
378 depends on SMP && EXPERIMENTAL 378 depends on SMP
379 select HOTPLUG 379 select HOTPLUG
380 default n 380 default n
381 ---help--- 381 ---help---
@@ -554,8 +554,8 @@ config IA64_HP_AML_NFW
554source "drivers/sn/Kconfig" 554source "drivers/sn/Kconfig"
555 555
556config KEXEC 556config KEXEC
557 bool "kexec system call (EXPERIMENTAL)" 557 bool "kexec system call"
558 depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) 558 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
559 help 559 help
560 kexec is a system call that implements the ability to shutdown your 560 kexec is a system call that implements the ability to shutdown your
561 current kernel, and to start another kernel. It is like a reboot 561 current kernel, and to start another kernel. It is like a reboot
diff --git a/arch/ia64/kvm/Kconfig b/arch/ia64/kvm/Kconfig
index e7947528aee6..2cd225f8c68d 100644
--- a/arch/ia64/kvm/Kconfig
+++ b/arch/ia64/kvm/Kconfig
@@ -20,7 +20,7 @@ if VIRTUALIZATION
20config KVM 20config KVM
21 tristate "Kernel-based Virtual Machine (KVM) support" 21 tristate "Kernel-based Virtual Machine (KVM) support"
22 depends on BROKEN 22 depends on BROKEN
23 depends on HAVE_KVM && MODULES && EXPERIMENTAL 23 depends on HAVE_KVM && MODULES
24 # for device assignment: 24 # for device assignment:
25 depends on PCI 25 depends on PCI
26 depends on BROKEN 26 depends on BROKEN
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig
index 515e0826803a..5d8a06b0ddf7 100644
--- a/arch/ia64/xen/Kconfig
+++ b/arch/ia64/xen/Kconfig
@@ -5,7 +5,7 @@
5config XEN 5config XEN
6 bool "Xen hypervisor support" 6 bool "Xen hypervisor support"
7 default y 7 default y
8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL 8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB
9 select XEN_XENCOMM 9 select XEN_XENCOMM
10 select NO_IDLE_HZ 10 select NO_IDLE_HZ
11 # followings are required to save/restore. 11 # followings are required to save/restore.
diff --git a/arch/microblaze/platform/Kconfig.platform b/arch/microblaze/platform/Kconfig.platform
index 669c7eec293e..b1747211b8b1 100644
--- a/arch/microblaze/platform/Kconfig.platform
+++ b/arch/microblaze/platform/Kconfig.platform
@@ -20,7 +20,7 @@ endchoice
20 20
21config SELFMOD 21config SELFMOD
22 bool "Use self modified code for intc/timer" 22 bool "Use self modified code for intc/timer"
23 depends on EXPERIMENTAL && NO_MMU 23 depends on NO_MMU
24 default n 24 default n
25 help 25 help
26 This choice enables self-modified code for interrupt controller 26 This choice enables self-modified code for interrupt controller
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 9becc44d9d7a..5d7170bfeb28 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -169,7 +169,7 @@ config MACH_DECSTATION
169 select SYS_HAS_CPU_R3000 169 select SYS_HAS_CPU_R3000
170 select SYS_HAS_CPU_R4X00 170 select SYS_HAS_CPU_R4X00
171 select SYS_SUPPORTS_32BIT_KERNEL 171 select SYS_SUPPORTS_32BIT_KERNEL
172 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL 172 select SYS_SUPPORTS_64BIT_KERNEL
173 select SYS_SUPPORTS_LITTLE_ENDIAN 173 select SYS_SUPPORTS_LITTLE_ENDIAN
174 select SYS_SUPPORTS_128HZ 174 select SYS_SUPPORTS_128HZ
175 select SYS_SUPPORTS_256HZ 175 select SYS_SUPPORTS_256HZ
@@ -205,7 +205,7 @@ config MACH_JAZZ
205 select ISA 205 select ISA
206 select SYS_HAS_CPU_R4X00 206 select SYS_HAS_CPU_R4X00
207 select SYS_SUPPORTS_32BIT_KERNEL 207 select SYS_SUPPORTS_32BIT_KERNEL
208 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL 208 select SYS_SUPPORTS_64BIT_KERNEL
209 select SYS_SUPPORTS_100HZ 209 select SYS_SUPPORTS_100HZ
210 help 210 help
211 This a family of machines based on the MIPS R4030 chipset which was 211 This a family of machines based on the MIPS R4030 chipset which was
@@ -395,7 +395,6 @@ config PNX8550_STB810
395 395
396config PMC_MSP 396config PMC_MSP
397 bool "PMC-Sierra MSP chipsets" 397 bool "PMC-Sierra MSP chipsets"
398 depends on EXPERIMENTAL
399 select CEVT_R4K 398 select CEVT_R4K
400 select CSRC_R4K 399 select CSRC_R4K
401 select DMA_NONCOHERENT 400 select DMA_NONCOHERENT
@@ -494,8 +493,7 @@ config SGI_IP27
494 here. 493 here.
495 494
496config SGI_IP28 495config SGI_IP28
497 bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)" 496 bool "SGI IP28 (Indigo2 R10k)"
498 depends on EXPERIMENTAL
499 select FW_ARC 497 select FW_ARC
500 select FW_ARC64 498 select FW_ARC64
501 select BOOT_ELF64 499 select BOOT_ELF64
@@ -553,7 +551,6 @@ config SGI_IP32
553 551
554config SIBYTE_CRHINE 552config SIBYTE_CRHINE
555 bool "Sibyte BCM91120C-CRhine" 553 bool "Sibyte BCM91120C-CRhine"
556 depends on EXPERIMENTAL
557 select BOOT_ELF32 554 select BOOT_ELF32
558 select DMA_COHERENT 555 select DMA_COHERENT
559 select SIBYTE_BCM1120 556 select SIBYTE_BCM1120
@@ -564,7 +561,6 @@ config SIBYTE_CRHINE
564 561
565config SIBYTE_CARMEL 562config SIBYTE_CARMEL
566 bool "Sibyte BCM91120x-Carmel" 563 bool "Sibyte BCM91120x-Carmel"
567 depends on EXPERIMENTAL
568 select BOOT_ELF32 564 select BOOT_ELF32
569 select DMA_COHERENT 565 select DMA_COHERENT
570 select SIBYTE_BCM1120 566 select SIBYTE_BCM1120
@@ -575,7 +571,6 @@ config SIBYTE_CARMEL
575 571
576config SIBYTE_CRHONE 572config SIBYTE_CRHONE
577 bool "Sibyte BCM91125C-CRhone" 573 bool "Sibyte BCM91125C-CRhone"
578 depends on EXPERIMENTAL
579 select BOOT_ELF32 574 select BOOT_ELF32
580 select DMA_COHERENT 575 select DMA_COHERENT
581 select SIBYTE_BCM1125 576 select SIBYTE_BCM1125
@@ -587,7 +582,6 @@ config SIBYTE_CRHONE
587 582
588config SIBYTE_RHONE 583config SIBYTE_RHONE
589 bool "Sibyte BCM91125E-Rhone" 584 bool "Sibyte BCM91125E-Rhone"
590 depends on EXPERIMENTAL
591 select BOOT_ELF32 585 select BOOT_ELF32
592 select DMA_COHERENT 586 select DMA_COHERENT
593 select SIBYTE_BCM1125H 587 select SIBYTE_BCM1125H
@@ -612,7 +606,6 @@ config SIBYTE_SWARM
612 606
613config SIBYTE_LITTLESUR 607config SIBYTE_LITTLESUR
614 bool "Sibyte BCM91250C2-LittleSur" 608 bool "Sibyte BCM91250C2-LittleSur"
615 depends on EXPERIMENTAL
616 select BOOT_ELF32 609 select BOOT_ELF32
617 select DMA_COHERENT 610 select DMA_COHERENT
618 select HAVE_PATA_PLATFORM 611 select HAVE_PATA_PLATFORM
@@ -626,7 +619,6 @@ config SIBYTE_LITTLESUR
626 619
627config SIBYTE_SENTOSA 620config SIBYTE_SENTOSA
628 bool "Sibyte BCM91250E-Sentosa" 621 bool "Sibyte BCM91250E-Sentosa"
629 depends on EXPERIMENTAL
630 select BOOT_ELF32 622 select BOOT_ELF32
631 select DMA_COHERENT 623 select DMA_COHERENT
632 select NR_CPUS_DEFAULT_2 624 select NR_CPUS_DEFAULT_2
@@ -675,7 +667,7 @@ config SNI_RM
675 select R5000_CPU_SCACHE 667 select R5000_CPU_SCACHE
676 select SYS_HAS_EARLY_PRINTK 668 select SYS_HAS_EARLY_PRINTK
677 select SYS_SUPPORTS_32BIT_KERNEL 669 select SYS_SUPPORTS_32BIT_KERNEL
678 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL 670 select SYS_SUPPORTS_64BIT_KERNEL
679 select SYS_SUPPORTS_BIG_ENDIAN 671 select SYS_SUPPORTS_BIG_ENDIAN
680 select SYS_SUPPORTS_HIGHMEM 672 select SYS_SUPPORTS_HIGHMEM
681 select SYS_SUPPORTS_LITTLE_ENDIAN 673 select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -779,7 +771,6 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
779 771
780config NLM_XLR_BOARD 772config NLM_XLR_BOARD
781 bool "Netlogic XLR/XLS based systems" 773 bool "Netlogic XLR/XLS based systems"
782 depends on EXPERIMENTAL
783 select BOOT_ELF32 774 select BOOT_ELF32
784 select NLM_COMMON 775 select NLM_COMMON
785 select SYS_HAS_CPU_XLR 776 select SYS_HAS_CPU_XLR
@@ -808,7 +799,6 @@ config NLM_XLR_BOARD
808 799
809config NLM_XLP_BOARD 800config NLM_XLP_BOARD
810 bool "Netlogic XLP based systems" 801 bool "Netlogic XLP based systems"
811 depends on EXPERIMENTAL
812 select BOOT_ELF32 802 select BOOT_ELF32
813 select NLM_COMMON 803 select NLM_COMMON
814 select SYS_HAS_CPU_XLP 804 select SYS_HAS_CPU_XLP
@@ -1374,7 +1364,6 @@ config CPU_R5500
1374 1364
1375config CPU_R6000 1365config CPU_R6000
1376 bool "R6000" 1366 bool "R6000"
1377 depends on EXPERIMENTAL
1378 depends on SYS_HAS_CPU_R6000 1367 depends on SYS_HAS_CPU_R6000
1379 select CPU_SUPPORTS_32BIT_KERNEL 1368 select CPU_SUPPORTS_32BIT_KERNEL
1380 help 1369 help
@@ -1392,7 +1381,6 @@ config CPU_NEVADA
1392 1381
1393config CPU_R8000 1382config CPU_R8000
1394 bool "R8000" 1383 bool "R8000"
1395 depends on EXPERIMENTAL
1396 depends on SYS_HAS_CPU_R8000 1384 depends on SYS_HAS_CPU_R8000
1397 select CPU_HAS_PREFETCH 1385 select CPU_HAS_PREFETCH
1398 select CPU_SUPPORTS_64BIT_KERNEL 1386 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1767,7 +1755,7 @@ config PAGE_SIZE_4KB
1767 1755
1768config PAGE_SIZE_8KB 1756config PAGE_SIZE_8KB
1769 bool "8kB" 1757 bool "8kB"
1770 depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON 1758 depends on CPU_R8000 || CPU_CAVIUM_OCTEON
1771 help 1759 help
1772 Using 8kB page size will result in higher performance kernel at 1760 Using 8kB page size will result in higher performance kernel at
1773 the price of higher memory consumption. This option is available 1761 the price of higher memory consumption. This option is available
@@ -1794,7 +1782,7 @@ config PAGE_SIZE_32KB
1794 1782
1795config PAGE_SIZE_64KB 1783config PAGE_SIZE_64KB
1796 bool "64kB" 1784 bool "64kB"
1797 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX 1785 depends on !CPU_R3000 && !CPU_TX39XX
1798 help 1786 help
1799 Using 64kB page size will result in higher performance kernel at 1787 Using 64kB page size will result in higher performance kernel at
1800 the price of higher memory consumption. This option is available on 1788 the price of higher memory consumption. This option is available on
@@ -2310,8 +2298,7 @@ config HZ
2310source "kernel/Kconfig.preempt" 2298source "kernel/Kconfig.preempt"
2311 2299
2312config KEXEC 2300config KEXEC
2313 bool "Kexec system call (EXPERIMENTAL)" 2301 bool "Kexec system call"
2314 depends on EXPERIMENTAL
2315 help 2302 help
2316 kexec is a system call that implements the ability to shutdown your 2303 kexec is a system call that implements the ability to shutdown your
2317 current kernel, and to start another kernel. It is like a reboot 2304 current kernel, and to start another kernel. It is like a reboot
diff --git a/arch/mips/jazz/Kconfig b/arch/mips/jazz/Kconfig
index 1f372b0d2559..fb1e072da30b 100644
--- a/arch/mips/jazz/Kconfig
+++ b/arch/mips/jazz/Kconfig
@@ -1,6 +1,6 @@
1config ACER_PICA_61 1config ACER_PICA_61
2 bool "Support for Acer PICA 1 chipset (EXPERIMENTAL)" 2 bool "Support for Acer PICA 1 chipset"
3 depends on MACH_JAZZ && EXPERIMENTAL 3 depends on MACH_JAZZ
4 select DMA_NONCOHERENT 4 select DMA_NONCOHERENT
5 select SYS_SUPPORTS_LITTLE_ENDIAN 5 select SYS_SUPPORTS_LITTLE_ENDIAN
6 help 6 help
@@ -13,7 +13,7 @@ config MIPS_MAGNUM_4000
13 bool "Support for MIPS Magnum 4000" 13 bool "Support for MIPS Magnum 4000"
14 depends on MACH_JAZZ 14 depends on MACH_JAZZ
15 select DMA_NONCOHERENT 15 select DMA_NONCOHERENT
16 select SYS_SUPPORTS_BIG_ENDIAN if EXPERIMENTAL 16 select SYS_SUPPORTS_BIG_ENDIAN
17 select SYS_SUPPORTS_LITTLE_ENDIAN 17 select SYS_SUPPORTS_LITTLE_ENDIAN
18 help 18 help
19 This is a machine with a R4000 100 MHz CPU. To compile a Linux 19 This is a machine with a R4000 100 MHz CPU. To compile a Linux
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c
index e44a1866653f..08f7ebd9c774 100644
--- a/arch/mips/lantiq/xway/dma.c
+++ b/arch/mips/lantiq/xway/dma.c
@@ -21,6 +21,7 @@
21#include <linux/dma-mapping.h> 21#include <linux/dma-mapping.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/err.h>
24 25
25#include <lantiq_soc.h> 26#include <lantiq_soc.h>
26#include <xway_dma.h> 27#include <xway_dma.h>
@@ -223,8 +224,8 @@ ltq_dma_init(struct platform_device *pdev)
223 panic("Failed to get dma resource"); 224 panic("Failed to get dma resource");
224 225
225 /* remap dma register range */ 226 /* remap dma register range */
226 ltq_dma_membase = devm_request_and_ioremap(&pdev->dev, res); 227 ltq_dma_membase = devm_ioremap_resource(&pdev->dev, res);
227 if (!ltq_dma_membase) 228 if (IS_ERR(ltq_dma_membase))
228 panic("Failed to remap dma resource"); 229 panic("Failed to remap dma resource");
229 230
230 /* power up and reset the dma engine */ 231 /* power up and reset the dma engine */
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c
index e30b1ed1b936..9861c8669fab 100644
--- a/arch/mips/lantiq/xway/gptu.c
+++ b/arch/mips/lantiq/xway/gptu.c
@@ -150,11 +150,9 @@ static int gptu_probe(struct platform_device *pdev)
150 } 150 }
151 151
152 /* remap gptu register range */ 152 /* remap gptu register range */
153 gptu_membase = devm_request_and_ioremap(&pdev->dev, res); 153 gptu_membase = devm_ioremap_resource(&pdev->dev, res);
154 if (!gptu_membase) { 154 if (IS_ERR(gptu_membase))
155 dev_err(&pdev->dev, "Failed to remap resource\n"); 155 return PTR_ERR(gptu_membase);
156 return -ENOMEM;
157 }
158 156
159 /* enable our clock */ 157 /* enable our clock */
160 clk = clk_get(&pdev->dev, NULL); 158 clk = clk_get(&pdev->dev, NULL);
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
index 95681789b51e..910fb4c20b9e 100644
--- a/arch/mips/pci/pci-lantiq.c
+++ b/arch/mips/pci/pci-lantiq.c
@@ -214,13 +214,13 @@ static int ltq_pci_probe(struct platform_device *pdev)
214 return -EINVAL; 214 return -EINVAL;
215 } 215 }
216 216
217 ltq_pci_membase = devm_request_and_ioremap(&pdev->dev, res_bridge); 217 ltq_pci_membase = devm_ioremap_resource(&pdev->dev, res_bridge);
218 ltq_pci_mapped_cfg = devm_request_and_ioremap(&pdev->dev, res_cfg); 218 if (IS_ERR(ltq_pci_membase))
219 return PTR_ERR(ltq_pci_membase);
219 220
220 if (!ltq_pci_membase || !ltq_pci_mapped_cfg) { 221 ltq_pci_mapped_cfg = devm_ioremap_resource(&pdev->dev, res_cfg);
221 dev_err(&pdev->dev, "failed to remap resources\n"); 222 if (IS_ERR(ltq_pci_mapped_cfg))
222 return -ENOMEM; 223 return PTR_ERR(ltq_pci_mapped_cfg);
223 }
224 224
225 ltq_pci_startup(pdev); 225 ltq_pci_startup(pdev);
226 226
diff --git a/arch/mips/sgi-ip27/Kconfig b/arch/mips/sgi-ip27/Kconfig
index 4b2ea282b9c7..4d8705a65e4a 100644
--- a/arch/mips/sgi-ip27/Kconfig
+++ b/arch/mips/sgi-ip27/Kconfig
@@ -13,7 +13,6 @@ config SGI_SN_M_MODE
13 13
14config SGI_SN_N_MODE 14config SGI_SN_N_MODE
15 bool "IP27 N-Mode" 15 bool "IP27 N-Mode"
16 depends on EXPERIMENTAL
17 help 16 help
18 The nodes of Origin, Onyx, Fuel and Tezro systems can be configured 17 The nodes of Origin, Onyx, Fuel and Tezro systems can be configured
19 in either N-Modes which allows for more nodes or M-Mode which allows 18 in either N-Modes which allows for more nodes or M-Mode which allows
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index a32e34ecda9e..9f2820659da2 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -192,12 +192,12 @@ config PARISC_PAGE_SIZE_4KB
192 If you don't know what to do, choose 4KB. 192 If you don't know what to do, choose 4KB.
193 193
194config PARISC_PAGE_SIZE_16KB 194config PARISC_PAGE_SIZE_16KB
195 bool "16KB (EXPERIMENTAL)" 195 bool "16KB"
196 depends on PA8X00 && EXPERIMENTAL 196 depends on PA8X00
197 197
198config PARISC_PAGE_SIZE_64KB 198config PARISC_PAGE_SIZE_64KB
199 bool "64KB (EXPERIMENTAL)" 199 bool "64KB"
200 depends on PA8X00 && EXPERIMENTAL 200 depends on PA8X00
201 201
202endchoice 202endchoice
203 203
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 561ccca7b1a7..e7fb8edb629b 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -332,7 +332,7 @@ config SWIOTLB
332 332
333config HOTPLUG_CPU 333config HOTPLUG_CPU
334 bool "Support for enabling/disabling CPUs" 334 bool "Support for enabling/disabling CPUs"
335 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || \ 335 depends on SMP && HOTPLUG && (PPC_PSERIES || \
336 PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC)) 336 PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC))
337 ---help--- 337 ---help---
338 Say Y here to be able to disable and re-enable individual 338 Say Y here to be able to disable and re-enable individual
@@ -354,8 +354,8 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
354 def_bool y 354 def_bool y
355 355
356config KEXEC 356config KEXEC
357 bool "kexec system call (EXPERIMENTAL)" 357 bool "kexec system call"
358 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) && EXPERIMENTAL 358 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
359 help 359 help
360 kexec is a system call that implements the ability to shutdown your 360 kexec is a system call that implements the ability to shutdown your
361 current kernel, and to start another kernel. It is like a reboot 361 current kernel, and to start another kernel. It is like a reboot
@@ -850,8 +850,8 @@ config LOWMEM_CAM_NUM
850 default 3 850 default 3
851 851
852config DYNAMIC_MEMSTART 852config DYNAMIC_MEMSTART
853 bool "Enable page aligned dynamic load address for kernel (EXPERIMENTAL)" 853 bool "Enable page aligned dynamic load address for kernel"
854 depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) 854 depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
855 select NONSTATIC_KERNEL 855 select NONSTATIC_KERNEL
856 help 856 help
857 This option enables the kernel to be loaded at any page aligned 857 This option enables the kernel to be loaded at any page aligned
@@ -868,8 +868,8 @@ config DYNAMIC_MEMSTART
868 This option is overridden by CONFIG_RELOCATABLE 868 This option is overridden by CONFIG_RELOCATABLE
869 869
870config RELOCATABLE 870config RELOCATABLE
871 bool "Build a relocatable kernel (EXPERIMENTAL)" 871 bool "Build a relocatable kernel"
872 depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && 44x 872 depends on ADVANCED_OPTIONS && FLATMEM && 44x
873 select NONSTATIC_KERNEL 873 select NONSTATIC_KERNEL
874 help 874 help
875 This builds a kernel image that is capable of running at the 875 This builds a kernel image that is capable of running at the
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
index 4730c953f435..63c67ec72e43 100644
--- a/arch/powerpc/kvm/Kconfig
+++ b/arch/powerpc/kvm/Kconfig
@@ -41,7 +41,7 @@ config KVM_BOOK3S_PR
41 41
42config KVM_BOOK3S_32 42config KVM_BOOK3S_32
43 tristate "KVM support for PowerPC book3s_32 processors" 43 tristate "KVM support for PowerPC book3s_32 processors"
44 depends on EXPERIMENTAL && PPC_BOOK3S_32 && !SMP && !PTE_64BIT 44 depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT
45 select KVM 45 select KVM
46 select KVM_BOOK3S_32_HANDLER 46 select KVM_BOOK3S_32_HANDLER
47 select KVM_BOOK3S_PR 47 select KVM_BOOK3S_PR
@@ -56,7 +56,7 @@ config KVM_BOOK3S_32
56 56
57config KVM_BOOK3S_64 57config KVM_BOOK3S_64
58 tristate "KVM support for PowerPC book3s_64 processors" 58 tristate "KVM support for PowerPC book3s_64 processors"
59 depends on EXPERIMENTAL && PPC_BOOK3S_64 59 depends on PPC_BOOK3S_64
60 select KVM_BOOK3S_64_HANDLER 60 select KVM_BOOK3S_64_HANDLER
61 select KVM 61 select KVM
62 ---help--- 62 ---help---
@@ -97,7 +97,7 @@ config KVM_BOOKE_HV
97 97
98config KVM_440 98config KVM_440
99 bool "KVM support for PowerPC 440 processors" 99 bool "KVM support for PowerPC 440 processors"
100 depends on EXPERIMENTAL && 44x 100 depends on 44x
101 select KVM 101 select KVM
102 select KVM_MMIO 102 select KVM_MMIO
103 ---help--- 103 ---help---
@@ -122,7 +122,7 @@ config KVM_EXIT_TIMING
122 122
123config KVM_E500V2 123config KVM_E500V2
124 bool "KVM support for PowerPC E500v2 processors" 124 bool "KVM support for PowerPC E500v2 processors"
125 depends on EXPERIMENTAL && E500 && !PPC_E500MC 125 depends on E500 && !PPC_E500MC
126 select KVM 126 select KVM
127 select KVM_MMIO 127 select KVM_MMIO
128 select MMU_NOTIFIER 128 select MMU_NOTIFIER
@@ -137,7 +137,7 @@ config KVM_E500V2
137 137
138config KVM_E500MC 138config KVM_E500MC
139 bool "KVM support for PowerPC E500MC/E5500 processors" 139 bool "KVM support for PowerPC E500MC/E5500 processors"
140 depends on EXPERIMENTAL && PPC_E500MC 140 depends on PPC_E500MC
141 select KVM 141 select KVM
142 select KVM_MMIO 142 select KVM_MMIO
143 select KVM_BOOKE_HV 143 select KVM_BOOKE_HV
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 02d02a09942d..92ab60a62711 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -277,7 +277,6 @@ config P5040_DS
277 277
278config PPC_QEMU_E500 278config PPC_QEMU_E500
279 bool "QEMU generic e500 platform" 279 bool "QEMU generic e500 platform"
280 depends on EXPERIMENTAL
281 select DEFAULT_UIMAGE 280 select DEFAULT_UIMAGE
282 help 281 help
283 This option enables support for running as a QEMU guest using 282 This option enables support for running as a QEMU guest using
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig
index 2e7ff0c5cf42..53aaefeb3386 100644
--- a/arch/powerpc/platforms/cell/Kconfig
+++ b/arch/powerpc/platforms/cell/Kconfig
@@ -124,7 +124,7 @@ config CBE_CPUFREQ
124 124
125config CBE_CPUFREQ_PMI_ENABLE 125config CBE_CPUFREQ_PMI_ENABLE
126 bool "CBE frequency scaling using PMI interface" 126 bool "CBE frequency scaling using PMI interface"
127 depends on CBE_CPUFREQ && EXPERIMENTAL 127 depends on CBE_CPUFREQ
128 default n 128 default n
129 help 129 help
130 Select this, if you want to use the PMI interface 130 Select this, if you want to use the PMI interface
diff --git a/arch/powerpc/platforms/ps3/Kconfig b/arch/powerpc/platforms/ps3/Kconfig
index 46b7f0232523..e87c19473973 100644
--- a/arch/powerpc/platforms/ps3/Kconfig
+++ b/arch/powerpc/platforms/ps3/Kconfig
@@ -48,7 +48,7 @@ config PS3_HTAB_SIZE
48 system will have optimal runtime performance. 48 system will have optimal runtime performance.
49 49
50config PS3_DYNAMIC_DMA 50config PS3_DYNAMIC_DMA
51 depends on PPC_PS3 && EXPERIMENTAL 51 depends on PPC_PS3
52 bool "PS3 Platform dynamic DMA page table management" 52 bool "PS3 Platform dynamic DMA page table management"
53 default n 53 default n
54 help 54 help
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index c15ba7d1be64..27c91c38d1a1 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -717,8 +717,8 @@ source "arch/s390/kvm/Kconfig"
717 717
718config S390_GUEST 718config S390_GUEST
719 def_bool y 719 def_bool y
720 prompt "s390 support for virtio devices (EXPERIMENTAL)" 720 prompt "s390 support for virtio devices"
721 depends on 64BIT && EXPERIMENTAL 721 depends on 64BIT
722 select VIRTUALIZATION 722 select VIRTUALIZATION
723 select VIRTIO 723 select VIRTIO
724 select VIRTIO_CONSOLE 724 select VIRTIO_CONSOLE
diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig
index b58dd869cb32..60f9f8ae0fc8 100644
--- a/arch/s390/kvm/Kconfig
+++ b/arch/s390/kvm/Kconfig
@@ -18,7 +18,7 @@ if VIRTUALIZATION
18config KVM 18config KVM
19 def_tristate y 19 def_tristate y
20 prompt "Kernel-based Virtual Machine (KVM) support" 20 prompt "Kernel-based Virtual Machine (KVM) support"
21 depends on HAVE_KVM && EXPERIMENTAL 21 depends on HAVE_KVM
22 select PREEMPT_NOTIFIERS 22 select PREEMPT_NOTIFIERS
23 select ANON_INODES 23 select ANON_INODES
24 select HAVE_KVM_CPU_RELAX_INTERCEPT 24 select HAVE_KVM_CPU_RELAX_INTERCEPT
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 9c833c585871..87f720037ff7 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -644,7 +644,7 @@ source kernel/Kconfig.hz
644 644
645config KEXEC 645config KEXEC
646 bool "kexec system call (EXPERIMENTAL)" 646 bool "kexec system call (EXPERIMENTAL)"
647 depends on SUPERH32 && EXPERIMENTAL && MMU 647 depends on SUPERH32 && MMU
648 help 648 help
649 kexec is a system call that implements the ability to shutdown your 649 kexec is a system call that implements the ability to shutdown your
650 current kernel, and to start another kernel. It is like a reboot 650 current kernel, and to start another kernel. It is like a reboot
@@ -661,7 +661,7 @@ config KEXEC
661 661
662config CRASH_DUMP 662config CRASH_DUMP
663 bool "kernel crash dumps (EXPERIMENTAL)" 663 bool "kernel crash dumps (EXPERIMENTAL)"
664 depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP 664 depends on SUPERH32 && BROKEN_ON_SMP
665 help 665 help
666 Generate crash dump after being started by kexec. 666 Generate crash dump after being started by kexec.
667 This should be normally only set in special crash dump kernels 667 This should be normally only set in special crash dump kernels
@@ -675,7 +675,7 @@ config CRASH_DUMP
675 675
676config KEXEC_JUMP 676config KEXEC_JUMP
677 bool "kexec jump (EXPERIMENTAL)" 677 bool "kexec jump (EXPERIMENTAL)"
678 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL 678 depends on SUPERH32 && KEXEC && HIBERNATION
679 help 679 help
680 Jump between original kernel and kexeced kernel and invoke 680 Jump between original kernel and kexeced kernel and invoke
681 code via KEXEC 681 code via KEXEC
@@ -709,7 +709,7 @@ config SECCOMP
709 709
710config CC_STACKPROTECTOR 710config CC_STACKPROTECTOR
711 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 711 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
712 depends on SUPERH32 && EXPERIMENTAL 712 depends on SUPERH32
713 help 713 help
714 This option turns on the -fstack-protector GCC feature. This 714 This option turns on the -fstack-protector GCC feature. This
715 feature puts, at the beginning of functions, a canary value on 715 feature puts, at the beginning of functions, a canary value on
@@ -760,7 +760,7 @@ config NR_CPUS
760 760
761config HOTPLUG_CPU 761config HOTPLUG_CPU
762 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 762 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
763 depends on SMP && HOTPLUG && EXPERIMENTAL 763 depends on SMP && HOTPLUG
764 help 764 help
765 Say Y here to experiment with turning CPUs off and on. CPUs 765 Say Y here to experiment with turning CPUs off and on. CPUs
766 can be controlled through /sys/devices/system/cpu. 766 can be controlled through /sys/devices/system/cpu.
@@ -839,7 +839,7 @@ config ENTRY_OFFSET
839 839
840config ROMIMAGE_MMCIF 840config ROMIMAGE_MMCIF
841 bool "Include MMCIF loader in romImage (EXPERIMENTAL)" 841 bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
842 depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL 842 depends on CPU_SUBTYPE_SH7724
843 help 843 help
844 Say Y here to include experimental MMCIF loading code in 844 Say Y here to include experimental MMCIF loading code in
845 romImage. With this enabled it is possible to write the romImage 845 romImage. With this enabled it is possible to write the romImage
@@ -925,7 +925,6 @@ source "fs/Kconfig.binfmt"
925endmenu 925endmenu
926 926
927menu "Power management options (EXPERIMENTAL)" 927menu "Power management options (EXPERIMENTAL)"
928depends on EXPERIMENTAL
929 928
930source "kernel/power/Kconfig" 929source "kernel/power/Kconfig"
931 930
diff --git a/arch/sh/Kconfig.cpu b/arch/sh/Kconfig.cpu
index 770ff2d5b94d..05b518e90cf7 100644
--- a/arch/sh/Kconfig.cpu
+++ b/arch/sh/Kconfig.cpu
@@ -33,7 +33,7 @@ config SH64_FPU_DENORM_FLUSH
33config SH_FPU_EMU 33config SH_FPU_EMU
34 def_bool n 34 def_bool n
35 prompt "FPU emulation support" 35 prompt "FPU emulation support"
36 depends on !SH_FPU && EXPERIMENTAL 36 depends on !SH_FPU
37 help 37 help
38 Selecting this option will enable support for software FPU emulation. 38 Selecting this option will enable support for software FPU emulation.
39 Most SH-3 users will want to say Y here, whereas most SH-4 users will 39 Most SH-3 users will want to say Y here, whereas most SH-4 users will
@@ -68,7 +68,6 @@ config SH_STORE_QUEUES
68 68
69config SPECULATIVE_EXECUTION 69config SPECULATIVE_EXECUTION
70 bool "Speculative subroutine return" 70 bool "Speculative subroutine return"
71 depends on EXPERIMENTAL
72 depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7786 71 depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7786
73 help 72 help
74 This enables support for a speculative instruction fetch for 73 This enables support for a speculative instruction fetch for
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index 0f7c852f355c..5a43a871e097 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -83,7 +83,7 @@ config 32BIT
83 83
84config PMB 84config PMB
85 bool "Support 32-bit physical addressing through PMB" 85 bool "Support 32-bit physical addressing through PMB"
86 depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP 86 depends on MMU && CPU_SH4A && !CPU_SH4AL_DSP
87 select 32BIT 87 select 32BIT
88 select UNCACHED_MAPPING 88 select UNCACHED_MAPPING
89 help 89 help
@@ -110,7 +110,7 @@ config VSYSCALL
110 110
111config NUMA 111config NUMA
112 bool "Non Uniform Memory Access (NUMA) Support" 112 bool "Non Uniform Memory Access (NUMA) Support"
113 depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL 113 depends on MMU && SYS_SUPPORTS_NUMA
114 select ARCH_WANT_NUMA_VARIABLE_LOCALITY 114 select ARCH_WANT_NUMA_VARIABLE_LOCALITY
115 default n 115 default n
116 help 116 help
diff --git a/arch/tile/kvm/Kconfig b/arch/tile/kvm/Kconfig
index 669fcdba31ea..2298cb1daff7 100644
--- a/arch/tile/kvm/Kconfig
+++ b/arch/tile/kvm/Kconfig
@@ -18,7 +18,7 @@ if VIRTUALIZATION
18 18
19config KVM 19config KVM
20 tristate "Kernel-based Virtual Machine (KVM) support" 20 tristate "Kernel-based Virtual Machine (KVM) support"
21 depends on HAVE_KVM && MODULES && EXPERIMENTAL 21 depends on HAVE_KVM && MODULES
22 select PREEMPT_NOTIFIERS 22 select PREEMPT_NOTIFIERS
23 select ANON_INODES 23 select ANON_INODES
24 ---help--- 24 ---help---
diff --git a/arch/um/Kconfig.net b/arch/um/Kconfig.net
index 3160b1a5adb7..820a56f00332 100644
--- a/arch/um/Kconfig.net
+++ b/arch/um/Kconfig.net
@@ -157,7 +157,7 @@ config UML_NET_MCAST
157 157
158config UML_NET_PCAP 158config UML_NET_PCAP
159 bool "pcap transport" 159 bool "pcap transport"
160 depends on UML_NET && EXPERIMENTAL 160 depends on UML_NET
161 help 161 help
162 The pcap transport makes a pcap packet stream on the host look 162 The pcap transport makes a pcap packet stream on the host look
163 like an ethernet device inside UML. This is useful for making 163 like an ethernet device inside UML. This is useful for making
diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
index bf87f25eb2de..a7520c90f62d 100644
--- a/arch/um/Kconfig.um
+++ b/arch/um/Kconfig.um
@@ -45,8 +45,8 @@ config HOSTFS
45 say Y or M here; otherwise say N. 45 say Y or M here; otherwise say N.
46 46
47config HPPFS 47config HPPFS
48 tristate "HoneyPot ProcFS (EXPERIMENTAL)" 48 tristate "HoneyPot ProcFS"
49 depends on EXPERIMENTAL && PROC_FS 49 depends on PROC_FS
50 help 50 help
51 hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc 51 hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
52 entries to be overridden, removed, or fabricated from the host. 52 entries to be overridden, removed, or fabricated from the host.
@@ -96,7 +96,7 @@ config MAGIC_SYSRQ
96 unless you really know what this hack does. 96 unless you really know what this hack does.
97 97
98config SMP 98config SMP
99 bool "Symmetric multi-processing support (EXPERIMENTAL)" 99 bool "Symmetric multi-processing support"
100 default n 100 default n
101 depends on BROKEN 101 depends on BROKEN
102 help 102 help
@@ -126,7 +126,7 @@ config NR_CPUS
126 default "32" 126 default "32"
127 127
128config HIGHMEM 128config HIGHMEM
129 bool "Highmem support (EXPERIMENTAL)" 129 bool "Highmem support"
130 depends on !64BIT && BROKEN 130 depends on !64BIT && BROKEN
131 default n 131 default n
132 help 132 help
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index f7a27fdb5098..63c0431daa3a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -225,7 +225,7 @@ config ARCH_SUPPORTS_DEBUG_PAGEALLOC
225 225
226config HAVE_INTEL_TXT 226config HAVE_INTEL_TXT
227 def_bool y 227 def_bool y
228 depends on EXPERIMENTAL && INTEL_IOMMU && ACPI 228 depends on INTEL_IOMMU && ACPI
229 229
230config X86_32_SMP 230config X86_32_SMP
231 def_bool y 231 def_bool y
@@ -642,7 +642,7 @@ config PARAVIRT
642 642
643config PARAVIRT_SPINLOCKS 643config PARAVIRT_SPINLOCKS
644 bool "Paravirtualization layer for spinlocks" 644 bool "Paravirtualization layer for spinlocks"
645 depends on PARAVIRT && SMP && EXPERIMENTAL 645 depends on PARAVIRT && SMP
646 ---help--- 646 ---help---
647 Paravirtualized spinlocks allow a pvops backend to replace the 647 Paravirtualized spinlocks allow a pvops backend to replace the
648 spinlock implementation with something virtualization-friendly 648 spinlock implementation with something virtualization-friendly
@@ -754,7 +754,7 @@ config GART_IOMMU
754config CALGARY_IOMMU 754config CALGARY_IOMMU
755 bool "IBM Calgary IOMMU support" 755 bool "IBM Calgary IOMMU support"
756 select SWIOTLB 756 select SWIOTLB
757 depends on X86_64 && PCI && EXPERIMENTAL 757 depends on X86_64 && PCI
758 ---help--- 758 ---help---
759 Support for hardware IOMMUs in IBM's xSeries x366 and x460 759 Support for hardware IOMMUs in IBM's xSeries x366 and x460
760 systems. Needed to run systems with more than 3GB of memory 760 systems. Needed to run systems with more than 3GB of memory
@@ -796,7 +796,7 @@ config IOMMU_HELPER
796 796
797config MAXSMP 797config MAXSMP
798 bool "Enable Maximum number of SMP Processors and NUMA Nodes" 798 bool "Enable Maximum number of SMP Processors and NUMA Nodes"
799 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL 799 depends on X86_64 && SMP && DEBUG_KERNEL
800 select CPUMASK_OFFSTACK 800 select CPUMASK_OFFSTACK
801 ---help--- 801 ---help---
802 Enable maximum number of CPUS and NUMA Nodes for this architecture. 802 Enable maximum number of CPUS and NUMA Nodes for this architecture.
@@ -1132,7 +1132,6 @@ config HIGHMEM64G
1132endchoice 1132endchoice
1133 1133
1134choice 1134choice
1135 depends on EXPERIMENTAL
1136 prompt "Memory split" if EXPERT 1135 prompt "Memory split" if EXPERT
1137 default VMSPLIT_3G 1136 default VMSPLIT_3G
1138 depends on X86_32 1137 depends on X86_32
@@ -1209,7 +1208,7 @@ config DIRECT_GBPAGES
1209config NUMA 1208config NUMA
1210 bool "Numa Memory Allocation and Scheduler Support" 1209 bool "Numa Memory Allocation and Scheduler Support"
1211 depends on SMP 1210 depends on SMP
1212 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) 1211 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI))
1213 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) 1212 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
1214 ---help--- 1213 ---help---
1215 Enable NUMA (Non Uniform Memory Access) support. 1214 Enable NUMA (Non Uniform Memory Access) support.
@@ -1304,7 +1303,7 @@ config ARCH_DISCONTIGMEM_DEFAULT
1304 1303
1305config ARCH_SPARSEMEM_ENABLE 1304config ARCH_SPARSEMEM_ENABLE
1306 def_bool y 1305 def_bool y
1307 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD 1306 depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD
1308 select SPARSEMEM_STATIC if X86_32 1307 select SPARSEMEM_STATIC if X86_32
1309 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1308 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1310 1309
@@ -1618,8 +1617,7 @@ config CRASH_DUMP
1618 For more details see Documentation/kdump/kdump.txt 1617 For more details see Documentation/kdump/kdump.txt
1619 1618
1620config KEXEC_JUMP 1619config KEXEC_JUMP
1621 bool "kexec jump (EXPERIMENTAL)" 1620 bool "kexec jump"
1622 depends on EXPERIMENTAL
1623 depends on KEXEC && HIBERNATION 1621 depends on KEXEC && HIBERNATION
1624 ---help--- 1622 ---help---
1625 Jump between original kernel and kexeced kernel and invoke 1623 Jump between original kernel and kexeced kernel and invoke
@@ -2063,7 +2061,7 @@ config PCI_MMCONFIG
2063 2061
2064config PCI_CNB20LE_QUIRK 2062config PCI_CNB20LE_QUIRK
2065 bool "Read CNB20LE Host Bridge Windows" if EXPERT 2063 bool "Read CNB20LE Host Bridge Windows" if EXPERT
2066 depends on PCI && EXPERIMENTAL 2064 depends on PCI
2067 help 2065 help
2068 Read the PCI windows out of the CNB20LE host bridge. This allows 2066 Read the PCI windows out of the CNB20LE host bridge. This allows
2069 PCI hotplug to work on systems with the CNB20LE chipset which do 2067 PCI hotplug to work on systems with the CNB20LE chipset which do
@@ -2267,8 +2265,8 @@ config IA32_AOUT
2267 Support old a.out binaries in the 32bit emulation. 2265 Support old a.out binaries in the 32bit emulation.
2268 2266
2269config X86_X32 2267config X86_X32
2270 bool "x32 ABI for 64-bit mode (EXPERIMENTAL)" 2268 bool "x32 ABI for 64-bit mode"
2271 depends on X86_64 && IA32_EMULATION && EXPERIMENTAL 2269 depends on X86_64 && IA32_EMULATION
2272 ---help--- 2270 ---help---
2273 Include code to run binaries for the x32 native 32-bit ABI 2271 Include code to run binaries for the x32 native 32-bit ABI
2274 for 64-bit processors. An x32 process gets access to the 2272 for 64-bit processors. An x32 process gets access to the
diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
index 53c90fd412d1..21a13ce1d751 100644
--- a/arch/x86/um/Kconfig
+++ b/arch/x86/um/Kconfig
@@ -37,9 +37,8 @@ config RWSEM_GENERIC_SPINLOCK
37 def_bool !RWSEM_XCHGADD_ALGORITHM 37 def_bool !RWSEM_XCHGADD_ALGORITHM
38 38
39config 3_LEVEL_PGTABLES 39config 3_LEVEL_PGTABLES
40 bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT 40 bool "Three-level pagetables" if !64BIT
41 default 64BIT 41 default 64BIT
42 depends on EXPERIMENTAL
43 help 42 help
44 Three-level pagetables will let UML have more than 4G of physical 43 Three-level pagetables will let UML have more than 4G of physical
45 memory. All the memory that can't be mapped directly will be treated 44 memory. All the memory that can't be mapped directly will be treated
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 4641d95651d3..3f37520035dd 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -134,8 +134,8 @@ config CRYPTO_NULL
134 These are 'Null' algorithms, used by IPsec, which do nothing. 134 These are 'Null' algorithms, used by IPsec, which do nothing.
135 135
136config CRYPTO_PCRYPT 136config CRYPTO_PCRYPT
137 tristate "Parallel crypto engine (EXPERIMENTAL)" 137 tristate "Parallel crypto engine"
138 depends on SMP && EXPERIMENTAL 138 depends on SMP
139 select PADATA 139 select PADATA
140 select CRYPTO_MANAGER 140 select CRYPTO_MANAGER
141 select CRYPTO_AEAD 141 select CRYPTO_AEAD
@@ -292,7 +292,6 @@ config CRYPTO_HMAC
292 292
293config CRYPTO_XCBC 293config CRYPTO_XCBC
294 tristate "XCBC support" 294 tristate "XCBC support"
295 depends on EXPERIMENTAL
296 select CRYPTO_HASH 295 select CRYPTO_HASH
297 select CRYPTO_MANAGER 296 select CRYPTO_MANAGER
298 help 297 help
@@ -303,7 +302,6 @@ config CRYPTO_XCBC
303 302
304config CRYPTO_VMAC 303config CRYPTO_VMAC
305 tristate "VMAC support" 304 tristate "VMAC support"
306 depends on EXPERIMENTAL
307 select CRYPTO_HASH 305 select CRYPTO_HASH
308 select CRYPTO_MANAGER 306 select CRYPTO_MANAGER
309 help 307 help
@@ -932,8 +930,7 @@ config CRYPTO_KHAZAD
932 <http://www.larc.usp.br/~pbarreto/KhazadPage.html> 930 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
933 931
934config CRYPTO_SALSA20 932config CRYPTO_SALSA20
935 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)" 933 tristate "Salsa20 stream cipher algorithm"
936 depends on EXPERIMENTAL
937 select CRYPTO_BLKCIPHER 934 select CRYPTO_BLKCIPHER
938 help 935 help
939 Salsa20 stream cipher algorithm. 936 Salsa20 stream cipher algorithm.
@@ -945,9 +942,8 @@ config CRYPTO_SALSA20
945 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 942 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
946 943
947config CRYPTO_SALSA20_586 944config CRYPTO_SALSA20_586
948 tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)" 945 tristate "Salsa20 stream cipher algorithm (i586)"
949 depends on (X86 || UML_X86) && !64BIT 946 depends on (X86 || UML_X86) && !64BIT
950 depends on EXPERIMENTAL
951 select CRYPTO_BLKCIPHER 947 select CRYPTO_BLKCIPHER
952 help 948 help
953 Salsa20 stream cipher algorithm. 949 Salsa20 stream cipher algorithm.
@@ -959,9 +955,8 @@ config CRYPTO_SALSA20_586
959 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 955 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
960 956
961config CRYPTO_SALSA20_X86_64 957config CRYPTO_SALSA20_X86_64
962 tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)" 958 tristate "Salsa20 stream cipher algorithm (x86_64)"
963 depends on (X86 || UML_X86) && 64BIT 959 depends on (X86 || UML_X86) && 64BIT
964 depends on EXPERIMENTAL
965 select CRYPTO_BLKCIPHER 960 select CRYPTO_BLKCIPHER
966 help 961 help
967 Salsa20 stream cipher algorithm. 962 Salsa20 stream cipher algorithm.
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 78105b3a5262..1a4ed64586a7 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -176,7 +176,6 @@ config ACPI_FAN
176 176
177config ACPI_DOCK 177config ACPI_DOCK
178 bool "Dock" 178 bool "Dock"
179 depends on EXPERIMENTAL
180 help 179 help
181 This driver supports ACPI-controlled docking stations and removable 180 This driver supports ACPI-controlled docking stations and removable
182 drive bays such as the IBM Ultrabay and the Dell Module Bay. 181 drive bays such as the IBM Ultrabay and the Dell Module Bay.
@@ -202,7 +201,7 @@ config ACPI_PROCESSOR
202 the module will be called processor. 201 the module will be called processor.
203config ACPI_IPMI 202config ACPI_IPMI
204 tristate "IPMI" 203 tristate "IPMI"
205 depends on EXPERIMENTAL && IPMI_SI && IPMI_HANDLER 204 depends on IPMI_SI && IPMI_HANDLER
206 default n 205 default n
207 help 206 help
208 This driver enables the ACPI to access the BMC controller. And it 207 This driver enables the ACPI to access the BMC controller. And it
@@ -214,14 +213,13 @@ config ACPI_IPMI
214 213
215config ACPI_HOTPLUG_CPU 214config ACPI_HOTPLUG_CPU
216 bool 215 bool
217 depends on EXPERIMENTAL && ACPI_PROCESSOR && HOTPLUG_CPU 216 depends on ACPI_PROCESSOR && HOTPLUG_CPU
218 select ACPI_CONTAINER 217 select ACPI_CONTAINER
219 default y 218 default y
220 219
221config ACPI_PROCESSOR_AGGREGATOR 220config ACPI_PROCESSOR_AGGREGATOR
222 tristate "Processor Aggregator" 221 tristate "Processor Aggregator"
223 depends on ACPI_PROCESSOR 222 depends on ACPI_PROCESSOR
224 depends on EXPERIMENTAL
225 depends on X86 223 depends on X86
226 help 224 help
227 ACPI 4.0 defines processor Aggregator, which enables OS to perform 225 ACPI 4.0 defines processor Aggregator, which enables OS to perform
@@ -337,8 +335,7 @@ config X86_PM_TIMER
337 systems require this timer. 335 systems require this timer.
338 336
339config ACPI_CONTAINER 337config ACPI_CONTAINER
340 bool "Container and Module Devices (EXPERIMENTAL)" 338 bool "Container and Module Devices"
341 depends on EXPERIMENTAL
342 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO) 339 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
343 help 340 help
344 This driver supports ACPI Container and Module devices (IDs 341 This driver supports ACPI Container and Module devices (IDs
diff --git a/drivers/amba/tegra-ahb.c b/drivers/amba/tegra-ahb.c
index 536c166f4253..ab92785f54dc 100644
--- a/drivers/amba/tegra-ahb.c
+++ b/drivers/amba/tegra-ahb.c
@@ -20,6 +20,7 @@
20 * 20 *
21 */ 21 */
22 22
23#include <linux/err.h>
23#include <linux/kernel.h> 24#include <linux/kernel.h>
24#include <linux/module.h> 25#include <linux/module.h>
25#include <linux/platform_device.h> 26#include <linux/platform_device.h>
@@ -257,9 +258,9 @@ static int tegra_ahb_probe(struct platform_device *pdev)
257 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 258 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
258 if (!res) 259 if (!res)
259 return -ENODEV; 260 return -ENODEV;
260 ahb->regs = devm_request_and_ioremap(&pdev->dev, res); 261 ahb->regs = devm_ioremap_resource(&pdev->dev, res);
261 if (!ahb->regs) 262 if (IS_ERR(ahb->regs))
262 return -EBUSY; 263 return PTR_ERR(ahb->regs);
263 264
264 ahb->dev = &pdev->dev; 265 ahb->dev = &pdev->dev;
265 platform_set_drvdata(pdev, ahb); 266 platform_set_drvdata(pdev, ahb);
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index e08d322d01d7..cdadce23e66d 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -163,7 +163,7 @@ config SATA_QSTOR
163 163
164config SATA_SX4 164config SATA_SX4
165 tristate "Promise SATA SX4 support (Experimental)" 165 tristate "Promise SATA SX4 support (Experimental)"
166 depends on PCI && EXPERIMENTAL 166 depends on PCI
167 help 167 help
168 This option enables support for Promise Serial ATA SX4. 168 This option enables support for Promise Serial ATA SX4.
169 169
@@ -390,7 +390,7 @@ config PATA_CS5530
390 390
391config PATA_CS5535 391config PATA_CS5535
392 tristate "CS5535 PATA support (Experimental)" 392 tristate "CS5535 PATA support (Experimental)"
393 depends on PCI && X86 && !X86_64 && EXPERIMENTAL 393 depends on PCI && X86 && !X86_64
394 help 394 help
395 This option enables support for the NatSemi/AMD CS5535 395 This option enables support for the NatSemi/AMD CS5535
396 companion chip used with the Geode processor family. 396 companion chip used with the Geode processor family.
@@ -408,7 +408,7 @@ config PATA_CS5536
408 408
409config PATA_CYPRESS 409config PATA_CYPRESS
410 tristate "Cypress CY82C693 PATA support (Very Experimental)" 410 tristate "Cypress CY82C693 PATA support (Very Experimental)"
411 depends on PCI && EXPERIMENTAL 411 depends on PCI
412 help 412 help
413 This option enables support for the Cypress/Contaq CY82C693 413 This option enables support for the Cypress/Contaq CY82C693
414 chipset found in some Alpha systems 414 chipset found in some Alpha systems
@@ -496,7 +496,7 @@ config PATA_IMX
496 496
497config PATA_IT8213 497config PATA_IT8213
498 tristate "IT8213 PATA support (Experimental)" 498 tristate "IT8213 PATA support (Experimental)"
499 depends on PCI && EXPERIMENTAL 499 depends on PCI
500 help 500 help
501 This option enables support for the ITE 821 PATA 501 This option enables support for the ITE 821 PATA
502 controllers via the new ATA layer. 502 controllers via the new ATA layer.
@@ -589,7 +589,7 @@ config PATA_OLDPIIX
589 589
590config PATA_OPTIDMA 590config PATA_OPTIDMA
591 tristate "OPTI FireStar PATA support (Very Experimental)" 591 tristate "OPTI FireStar PATA support (Very Experimental)"
592 depends on PCI && EXPERIMENTAL 592 depends on PCI
593 help 593 help
594 This option enables DMA/PIO support for the later OPTi 594 This option enables DMA/PIO support for the later OPTi
595 controllers found on some old motherboards and in some 595 controllers found on some old motherboards and in some
@@ -616,7 +616,7 @@ config PATA_PDC_OLD
616 616
617config PATA_RADISYS 617config PATA_RADISYS
618 tristate "RADISYS 82600 PATA support (Experimental)" 618 tristate "RADISYS 82600 PATA support (Experimental)"
619 depends on PCI && EXPERIMENTAL 619 depends on PCI
620 help 620 help
621 This option enables support for the RADISYS 82600 621 This option enables support for the RADISYS 82600
622 PATA controllers via the new ATA layer 622 PATA controllers via the new ATA layer
@@ -687,7 +687,7 @@ config PATA_SIS
687 687
688config PATA_TOSHIBA 688config PATA_TOSHIBA
689 tristate "Toshiba Piccolo support (Experimental)" 689 tristate "Toshiba Piccolo support (Experimental)"
690 depends on PCI && EXPERIMENTAL 690 depends on PCI
691 help 691 help
692 Support for the Toshiba Piccolo controllers. Currently only the 692 Support for the Toshiba Piccolo controllers. Currently only the
693 primary channel is supported by this driver. 693 primary channel is supported by this driver.
@@ -738,7 +738,7 @@ comment "PIO-only SFF controllers"
738 738
739config PATA_AT32 739config PATA_AT32
740 tristate "Atmel AVR32 PATA support (Experimental)" 740 tristate "Atmel AVR32 PATA support (Experimental)"
741 depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL 741 depends on AVR32 && PLATFORM_AT32AP
742 help 742 help
743 This option enables support for the IDE devices on the 743 This option enables support for the IDE devices on the
744 Atmel AT32AP platform. 744 Atmel AT32AP platform.
@@ -755,7 +755,7 @@ config PATA_AT91
755 755
756config PATA_CMD640_PCI 756config PATA_CMD640_PCI
757 tristate "CMD640 PCI PATA support (Experimental)" 757 tristate "CMD640 PCI PATA support (Experimental)"
758 depends on PCI && EXPERIMENTAL 758 depends on PCI
759 help 759 help
760 This option enables support for the CMD640 PCI IDE 760 This option enables support for the CMD640 PCI IDE
761 interface chip. Only the primary channel is currently 761 interface chip. Only the primary channel is currently
@@ -801,7 +801,7 @@ config PATA_NS87410
801 801
802config PATA_OPTI 802config PATA_OPTI
803 tristate "OPTI621/6215 PATA support (Very Experimental)" 803 tristate "OPTI621/6215 PATA support (Very Experimental)"
804 depends on PCI && EXPERIMENTAL 804 depends on PCI
805 help 805 help
806 This option enables full PIO support for the early Opti ATA 806 This option enables full PIO support for the early Opti ATA
807 controllers found on some old motherboards. 807 controllers found on some old motherboards.
@@ -881,7 +881,7 @@ config PATA_SAMSUNG_CF
881 881
882config PATA_WINBOND_VLB 882config PATA_WINBOND_VLB
883 tristate "Winbond W83759A VLB PATA support (Experimental)" 883 tristate "Winbond W83759A VLB PATA support (Experimental)"
884 depends on ISA && EXPERIMENTAL 884 depends on ISA
885 select PATA_LEGACY 885 select PATA_LEGACY
886 help 886 help
887 Support for the Winbond W83759A controller on Vesa Local Bus 887 Support for the Winbond W83759A controller on Vesa Local Bus
@@ -909,7 +909,7 @@ config ATA_GENERIC
909 909
910config PATA_LEGACY 910config PATA_LEGACY
911 tristate "Legacy ISA PATA support (Experimental)" 911 tristate "Legacy ISA PATA support (Experimental)"
912 depends on (ISA || PCI) && EXPERIMENTAL 912 depends on (ISA || PCI)
913 help 913 help
914 This option enables support for ISA/VLB/PCI bus legacy PATA 914 This option enables support for ISA/VLB/PCI bus legacy PATA
915 ports and allows them to be accessed via the new ATA layer. 915 ports and allows them to be accessed via the new ATA layer.
diff --git a/drivers/ata/pata_ep93xx.c b/drivers/ata/pata_ep93xx.c
index 556222f04731..c1bfaf43d109 100644
--- a/drivers/ata/pata_ep93xx.c
+++ b/drivers/ata/pata_ep93xx.c
@@ -31,6 +31,7 @@
31 * Copyright (C) 2006 Tower Technologies 31 * Copyright (C) 2006 Tower Technologies
32 */ 32 */
33 33
34#include <linux/err.h>
34#include <linux/kernel.h> 35#include <linux/kernel.h>
35#include <linux/module.h> 36#include <linux/module.h>
36#include <linux/init.h> 37#include <linux/init.h>
@@ -937,9 +938,9 @@ static int ep93xx_pata_probe(struct platform_device *pdev)
937 goto err_rel_gpio; 938 goto err_rel_gpio;
938 } 939 }
939 940
940 ide_base = devm_request_and_ioremap(&pdev->dev, mem_res); 941 ide_base = devm_ioremap_resource(&pdev->dev, mem_res);
941 if (!ide_base) { 942 if (IS_ERR(ide_base)) {
942 err = -ENXIO; 943 err = PTR_ERR(ide_base);
943 goto err_rel_gpio; 944 goto err_rel_gpio;
944 } 945 }
945 946
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index c8b453939da2..07abd9d76f7f 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -145,6 +145,17 @@ config EXTRA_FIRMWARE_DIR
145 this option you can point it elsewhere, such as /lib/firmware/ or 145 this option you can point it elsewhere, such as /lib/firmware/ or
146 some other directory containing the firmware files. 146 some other directory containing the firmware files.
147 147
148config FW_LOADER_USER_HELPER
149 bool "Fallback user-helper invocation for firmware loading"
150 depends on FW_LOADER
151 default y
152 help
153 This option enables / disables the invocation of user-helper
154 (e.g. udev) for loading firmware files as a fallback after the
155 direct file loading in kernel fails. The user-mode helper is
156 no longer required unless you have a special firmware file that
157 resides in a non-standard path.
158
148config DEBUG_DRIVER 159config DEBUG_DRIVER
149 bool "Driver Core verbose debug messages" 160 bool "Driver Core verbose debug messages"
150 depends on DEBUG_KERNEL 161 depends on DEBUG_KERNEL
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 24eb07868344..519865b53f76 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -290,7 +290,7 @@ int bus_for_each_dev(struct bus_type *bus, struct device *start,
290 struct device *dev; 290 struct device *dev;
291 int error = 0; 291 int error = 0;
292 292
293 if (!bus) 293 if (!bus || !bus->p)
294 return -EINVAL; 294 return -EINVAL;
295 295
296 klist_iter_init_node(&bus->p->klist_devices, &i, 296 klist_iter_init_node(&bus->p->klist_devices, &i,
@@ -324,7 +324,7 @@ struct device *bus_find_device(struct bus_type *bus,
324 struct klist_iter i; 324 struct klist_iter i;
325 struct device *dev; 325 struct device *dev;
326 326
327 if (!bus) 327 if (!bus || !bus->p)
328 return NULL; 328 return NULL;
329 329
330 klist_iter_init_node(&bus->p->klist_devices, &i, 330 klist_iter_init_node(&bus->p->klist_devices, &i,
@@ -700,12 +700,12 @@ int bus_add_driver(struct device_driver *drv)
700 if (error) 700 if (error)
701 goto out_unregister; 701 goto out_unregister;
702 702
703 klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers);
703 if (drv->bus->p->drivers_autoprobe) { 704 if (drv->bus->p->drivers_autoprobe) {
704 error = driver_attach(drv); 705 error = driver_attach(drv);
705 if (error) 706 if (error)
706 goto out_unregister; 707 goto out_unregister;
707 } 708 }
708 klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers);
709 module_add_driver(drv->owner, drv); 709 module_add_driver(drv->owner, drv);
710 710
711 error = driver_create_file(drv, &driver_attr_uevent); 711 error = driver_create_file(drv, &driver_attr_uevent);
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 03243d4002fd..3ce845471327 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -420,8 +420,8 @@ EXPORT_SYMBOL_GPL(class_for_each_device);
420 * code. There's no locking restriction. 420 * code. There's no locking restriction.
421 */ 421 */
422struct device *class_find_device(struct class *class, struct device *start, 422struct device *class_find_device(struct class *class, struct device *start,
423 void *data, 423 const void *data,
424 int (*match)(struct device *, void *)) 424 int (*match)(struct device *, const void *))
425{ 425{
426 struct class_dev_iter iter; 426 struct class_dev_iter iter;
427 struct device *dev; 427 struct device *dev;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index a235085e343c..56536f4b0f6b 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1617,9 +1617,9 @@ struct device *device_create(struct class *class, struct device *parent,
1617} 1617}
1618EXPORT_SYMBOL_GPL(device_create); 1618EXPORT_SYMBOL_GPL(device_create);
1619 1619
1620static int __match_devt(struct device *dev, void *data) 1620static int __match_devt(struct device *dev, const void *data)
1621{ 1621{
1622 dev_t *devt = data; 1622 const dev_t *devt = data;
1623 1623
1624 return dev->devt == *devt; 1624 return dev->devt == *devt;
1625} 1625}
@@ -1685,8 +1685,6 @@ EXPORT_SYMBOL_GPL(device_destroy);
1685 */ 1685 */
1686int device_rename(struct device *dev, const char *new_name) 1686int device_rename(struct device *dev, const char *new_name)
1687{ 1687{
1688 char *old_class_name = NULL;
1689 char *new_class_name = NULL;
1690 char *old_device_name = NULL; 1688 char *old_device_name = NULL;
1691 int error; 1689 int error;
1692 1690
@@ -1717,8 +1715,6 @@ int device_rename(struct device *dev, const char *new_name)
1717out: 1715out:
1718 put_device(dev); 1716 put_device(dev);
1719 1717
1720 kfree(new_class_name);
1721 kfree(old_class_name);
1722 kfree(old_device_name); 1718 kfree(old_device_name);
1723 1719
1724 return error; 1720 return error;
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 656310156dde..bb5645ea0282 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -173,6 +173,8 @@ static int deferred_probe_initcall(void)
173 173
174 driver_deferred_probe_enable = true; 174 driver_deferred_probe_enable = true;
175 driver_deferred_probe_trigger(); 175 driver_deferred_probe_trigger();
176 /* Sort as many dependencies as possible before exiting initcalls */
177 flush_workqueue(deferred_wq);
176 return 0; 178 return 0;
177} 179}
178late_initcall(deferred_probe_initcall); 180late_initcall(deferred_probe_initcall);
diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
index a3f79c495a41..ff5b745c4705 100644
--- a/drivers/base/dma-buf.c
+++ b/drivers/base/dma-buf.c
@@ -134,15 +134,14 @@ EXPORT_SYMBOL_GPL(dma_buf_export);
134 */ 134 */
135int dma_buf_fd(struct dma_buf *dmabuf, int flags) 135int dma_buf_fd(struct dma_buf *dmabuf, int flags)
136{ 136{
137 int error, fd; 137 int fd;
138 138
139 if (!dmabuf || !dmabuf->file) 139 if (!dmabuf || !dmabuf->file)
140 return -EINVAL; 140 return -EINVAL;
141 141
142 error = get_unused_fd_flags(flags); 142 fd = get_unused_fd_flags(flags);
143 if (error < 0) 143 if (fd < 0)
144 return error; 144 return fd;
145 fd = error;
146 145
147 fd_install(fd, dmabuf->file); 146 fd_install(fd, dmabuf->file);
148 147
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
index b392b353be39..4a223fedcd73 100644
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -88,11 +88,6 @@ enum {
88 FW_STATUS_ABORT, 88 FW_STATUS_ABORT,
89}; 89};
90 90
91enum fw_buf_fmt {
92 VMALLOC_BUF, /* used in direct loading */
93 PAGE_BUF, /* used in loading via userspace */
94};
95
96static int loading_timeout = 60; /* In seconds */ 91static int loading_timeout = 60; /* In seconds */
97 92
98static inline long firmware_loading_timeout(void) 93static inline long firmware_loading_timeout(void)
@@ -128,12 +123,14 @@ struct firmware_buf {
128 struct completion completion; 123 struct completion completion;
129 struct firmware_cache *fwc; 124 struct firmware_cache *fwc;
130 unsigned long status; 125 unsigned long status;
131 enum fw_buf_fmt fmt;
132 void *data; 126 void *data;
133 size_t size; 127 size_t size;
128#ifdef CONFIG_FW_LOADER_USER_HELPER
129 bool is_paged_buf;
134 struct page **pages; 130 struct page **pages;
135 int nr_pages; 131 int nr_pages;
136 int page_array_size; 132 int page_array_size;
133#endif
137 char fw_id[]; 134 char fw_id[];
138}; 135};
139 136
@@ -142,14 +139,6 @@ struct fw_cache_entry {
142 char name[]; 139 char name[];
143}; 140};
144 141
145struct firmware_priv {
146 struct delayed_work timeout_work;
147 bool nowait;
148 struct device dev;
149 struct firmware_buf *buf;
150 struct firmware *fw;
151};
152
153struct fw_name_devm { 142struct fw_name_devm {
154 unsigned long magic; 143 unsigned long magic;
155 char name[]; 144 char name[];
@@ -182,7 +171,6 @@ static struct firmware_buf *__allocate_fw_buf(const char *fw_name,
182 strcpy(buf->fw_id, fw_name); 171 strcpy(buf->fw_id, fw_name);
183 buf->fwc = fwc; 172 buf->fwc = fwc;
184 init_completion(&buf->completion); 173 init_completion(&buf->completion);
185 buf->fmt = VMALLOC_BUF;
186 174
187 pr_debug("%s: fw-%s buf=%p\n", __func__, fw_name, buf); 175 pr_debug("%s: fw-%s buf=%p\n", __func__, fw_name, buf);
188 176
@@ -240,7 +228,6 @@ static void __fw_free_buf(struct kref *ref)
240{ 228{
241 struct firmware_buf *buf = to_fwbuf(ref); 229 struct firmware_buf *buf = to_fwbuf(ref);
242 struct firmware_cache *fwc = buf->fwc; 230 struct firmware_cache *fwc = buf->fwc;
243 int i;
244 231
245 pr_debug("%s: fw-%s buf=%p data=%p size=%u\n", 232 pr_debug("%s: fw-%s buf=%p data=%p size=%u\n",
246 __func__, buf->fw_id, buf, buf->data, 233 __func__, buf->fw_id, buf, buf->data,
@@ -249,13 +236,15 @@ static void __fw_free_buf(struct kref *ref)
249 list_del(&buf->list); 236 list_del(&buf->list);
250 spin_unlock(&fwc->lock); 237 spin_unlock(&fwc->lock);
251 238
252 239#ifdef CONFIG_FW_LOADER_USER_HELPER
253 if (buf->fmt == PAGE_BUF) { 240 if (buf->is_paged_buf) {
241 int i;
254 vunmap(buf->data); 242 vunmap(buf->data);
255 for (i = 0; i < buf->nr_pages; i++) 243 for (i = 0; i < buf->nr_pages; i++)
256 __free_page(buf->pages[i]); 244 __free_page(buf->pages[i]);
257 kfree(buf->pages); 245 kfree(buf->pages);
258 } else 246 } else
247#endif
259 vfree(buf->data); 248 vfree(buf->data);
260 kfree(buf); 249 kfree(buf);
261} 250}
@@ -319,7 +308,8 @@ static bool fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf
319 return true; 308 return true;
320} 309}
321 310
322static bool fw_get_filesystem_firmware(struct firmware_buf *buf) 311static bool fw_get_filesystem_firmware(struct device *device,
312 struct firmware_buf *buf)
323{ 313{
324 int i; 314 int i;
325 bool success = false; 315 bool success = false;
@@ -343,9 +333,114 @@ static bool fw_get_filesystem_firmware(struct firmware_buf *buf)
343 break; 333 break;
344 } 334 }
345 __putname(path); 335 __putname(path);
336
337 if (success) {
338 dev_dbg(device, "firmware: direct-loading firmware %s\n",
339 buf->fw_id);
340 mutex_lock(&fw_lock);
341 set_bit(FW_STATUS_DONE, &buf->status);
342 complete_all(&buf->completion);
343 mutex_unlock(&fw_lock);
344 }
345
346 return success; 346 return success;
347} 347}
348 348
349/* firmware holds the ownership of pages */
350static void firmware_free_data(const struct firmware *fw)
351{
352 /* Loaded directly? */
353 if (!fw->priv) {
354 vfree(fw->data);
355 return;
356 }
357 fw_free_buf(fw->priv);
358}
359
360/* store the pages buffer info firmware from buf */
361static void fw_set_page_data(struct firmware_buf *buf, struct firmware *fw)
362{
363 fw->priv = buf;
364#ifdef CONFIG_FW_LOADER_USER_HELPER
365 fw->pages = buf->pages;
366#endif
367 fw->size = buf->size;
368 fw->data = buf->data;
369
370 pr_debug("%s: fw-%s buf=%p data=%p size=%u\n",
371 __func__, buf->fw_id, buf, buf->data,
372 (unsigned int)buf->size);
373}
374
375#ifdef CONFIG_PM_SLEEP
376static void fw_name_devm_release(struct device *dev, void *res)
377{
378 struct fw_name_devm *fwn = res;
379
380 if (fwn->magic == (unsigned long)&fw_cache)
381 pr_debug("%s: fw_name-%s devm-%p released\n",
382 __func__, fwn->name, res);
383}
384
385static int fw_devm_match(struct device *dev, void *res,
386 void *match_data)
387{
388 struct fw_name_devm *fwn = res;
389
390 return (fwn->magic == (unsigned long)&fw_cache) &&
391 !strcmp(fwn->name, match_data);
392}
393
394static struct fw_name_devm *fw_find_devm_name(struct device *dev,
395 const char *name)
396{
397 struct fw_name_devm *fwn;
398
399 fwn = devres_find(dev, fw_name_devm_release,
400 fw_devm_match, (void *)name);
401 return fwn;
402}
403
404/* add firmware name into devres list */
405static int fw_add_devm_name(struct device *dev, const char *name)
406{
407 struct fw_name_devm *fwn;
408
409 fwn = fw_find_devm_name(dev, name);
410 if (fwn)
411 return 1;
412
413 fwn = devres_alloc(fw_name_devm_release, sizeof(struct fw_name_devm) +
414 strlen(name) + 1, GFP_KERNEL);
415 if (!fwn)
416 return -ENOMEM;
417
418 fwn->magic = (unsigned long)&fw_cache;
419 strcpy(fwn->name, name);
420 devres_add(dev, fwn);
421
422 return 0;
423}
424#else
425static int fw_add_devm_name(struct device *dev, const char *name)
426{
427 return 0;
428}
429#endif
430
431
432/*
433 * user-mode helper code
434 */
435#ifdef CONFIG_FW_LOADER_USER_HELPER
436struct firmware_priv {
437 struct delayed_work timeout_work;
438 bool nowait;
439 struct device dev;
440 struct firmware_buf *buf;
441 struct firmware *fw;
442};
443
349static struct firmware_priv *to_firmware_priv(struct device *dev) 444static struct firmware_priv *to_firmware_priv(struct device *dev)
350{ 445{
351 return container_of(dev, struct firmware_priv, dev); 446 return container_of(dev, struct firmware_priv, dev);
@@ -359,6 +454,9 @@ static void fw_load_abort(struct firmware_priv *fw_priv)
359 complete_all(&buf->completion); 454 complete_all(&buf->completion);
360} 455}
361 456
457#define is_fw_load_aborted(buf) \
458 test_bit(FW_STATUS_ABORT, &(buf)->status)
459
362static ssize_t firmware_timeout_show(struct class *class, 460static ssize_t firmware_timeout_show(struct class *class,
363 struct class_attribute *attr, 461 struct class_attribute *attr,
364 char *buf) 462 char *buf)
@@ -435,17 +533,6 @@ static ssize_t firmware_loading_show(struct device *dev,
435 return sprintf(buf, "%d\n", loading); 533 return sprintf(buf, "%d\n", loading);
436} 534}
437 535
438/* firmware holds the ownership of pages */
439static void firmware_free_data(const struct firmware *fw)
440{
441 /* Loaded directly? */
442 if (!fw->priv) {
443 vfree(fw->data);
444 return;
445 }
446 fw_free_buf(fw->priv);
447}
448
449/* Some architectures don't have PAGE_KERNEL_RO */ 536/* Some architectures don't have PAGE_KERNEL_RO */
450#ifndef PAGE_KERNEL_RO 537#ifndef PAGE_KERNEL_RO
451#define PAGE_KERNEL_RO PAGE_KERNEL 538#define PAGE_KERNEL_RO PAGE_KERNEL
@@ -454,7 +541,7 @@ static void firmware_free_data(const struct firmware *fw)
454/* one pages buffer should be mapped/unmapped only once */ 541/* one pages buffer should be mapped/unmapped only once */
455static int fw_map_pages_buf(struct firmware_buf *buf) 542static int fw_map_pages_buf(struct firmware_buf *buf)
456{ 543{
457 if (buf->fmt != PAGE_BUF) 544 if (!buf->is_paged_buf)
458 return 0; 545 return 0;
459 546
460 if (buf->data) 547 if (buf->data)
@@ -727,171 +814,16 @@ exit:
727 return fw_priv; 814 return fw_priv;
728} 815}
729 816
730/* store the pages buffer info firmware from buf */ 817/* load a firmware via user helper */
731static void fw_set_page_data(struct firmware_buf *buf, struct firmware *fw)
732{
733 fw->priv = buf;
734 fw->pages = buf->pages;
735 fw->size = buf->size;
736 fw->data = buf->data;
737
738 pr_debug("%s: fw-%s buf=%p data=%p size=%u\n",
739 __func__, buf->fw_id, buf, buf->data,
740 (unsigned int)buf->size);
741}
742
743#ifdef CONFIG_PM_SLEEP
744static void fw_name_devm_release(struct device *dev, void *res)
745{
746 struct fw_name_devm *fwn = res;
747
748 if (fwn->magic == (unsigned long)&fw_cache)
749 pr_debug("%s: fw_name-%s devm-%p released\n",
750 __func__, fwn->name, res);
751}
752
753static int fw_devm_match(struct device *dev, void *res,
754 void *match_data)
755{
756 struct fw_name_devm *fwn = res;
757
758 return (fwn->magic == (unsigned long)&fw_cache) &&
759 !strcmp(fwn->name, match_data);
760}
761
762static struct fw_name_devm *fw_find_devm_name(struct device *dev,
763 const char *name)
764{
765 struct fw_name_devm *fwn;
766
767 fwn = devres_find(dev, fw_name_devm_release,
768 fw_devm_match, (void *)name);
769 return fwn;
770}
771
772/* add firmware name into devres list */
773static int fw_add_devm_name(struct device *dev, const char *name)
774{
775 struct fw_name_devm *fwn;
776
777 fwn = fw_find_devm_name(dev, name);
778 if (fwn)
779 return 1;
780
781 fwn = devres_alloc(fw_name_devm_release, sizeof(struct fw_name_devm) +
782 strlen(name) + 1, GFP_KERNEL);
783 if (!fwn)
784 return -ENOMEM;
785
786 fwn->magic = (unsigned long)&fw_cache;
787 strcpy(fwn->name, name);
788 devres_add(dev, fwn);
789
790 return 0;
791}
792#else
793static int fw_add_devm_name(struct device *dev, const char *name)
794{
795 return 0;
796}
797#endif
798
799static void _request_firmware_cleanup(const struct firmware **firmware_p)
800{
801 release_firmware(*firmware_p);
802 *firmware_p = NULL;
803}
804
805static struct firmware_priv *
806_request_firmware_prepare(const struct firmware **firmware_p, const char *name,
807 struct device *device, bool uevent, bool nowait)
808{
809 struct firmware *firmware;
810 struct firmware_priv *fw_priv = NULL;
811 struct firmware_buf *buf;
812 int ret;
813
814 if (!firmware_p)
815 return ERR_PTR(-EINVAL);
816
817 *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);
818 if (!firmware) {
819 dev_err(device, "%s: kmalloc(struct firmware) failed\n",
820 __func__);
821 return ERR_PTR(-ENOMEM);
822 }
823
824 if (fw_get_builtin_firmware(firmware, name)) {
825 dev_dbg(device, "firmware: using built-in firmware %s\n", name);
826 return NULL;
827 }
828
829 ret = fw_lookup_and_allocate_buf(name, &fw_cache, &buf);
830 if (!ret)
831 fw_priv = fw_create_instance(firmware, name, device,
832 uevent, nowait);
833
834 if (IS_ERR(fw_priv) || ret < 0) {
835 kfree(firmware);
836 *firmware_p = NULL;
837 return ERR_PTR(-ENOMEM);
838 } else if (fw_priv) {
839 fw_priv->buf = buf;
840
841 /*
842 * bind with 'buf' now to avoid warning in failure path
843 * of requesting firmware.
844 */
845 firmware->priv = buf;
846 return fw_priv;
847 }
848
849 /* share the cached buf, which is inprogessing or completed */
850 check_status:
851 mutex_lock(&fw_lock);
852 if (test_bit(FW_STATUS_ABORT, &buf->status)) {
853 fw_priv = ERR_PTR(-ENOENT);
854 firmware->priv = buf;
855 _request_firmware_cleanup(firmware_p);
856 goto exit;
857 } else if (test_bit(FW_STATUS_DONE, &buf->status)) {
858 fw_priv = NULL;
859 fw_set_page_data(buf, firmware);
860 goto exit;
861 }
862 mutex_unlock(&fw_lock);
863 wait_for_completion(&buf->completion);
864 goto check_status;
865
866exit:
867 mutex_unlock(&fw_lock);
868 return fw_priv;
869}
870
871static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent, 818static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent,
872 long timeout) 819 long timeout)
873{ 820{
874 int retval = 0; 821 int retval = 0;
875 struct device *f_dev = &fw_priv->dev; 822 struct device *f_dev = &fw_priv->dev;
876 struct firmware_buf *buf = fw_priv->buf; 823 struct firmware_buf *buf = fw_priv->buf;
877 struct firmware_cache *fwc = &fw_cache;
878 int direct_load = 0;
879
880 /* try direct loading from fs first */
881 if (fw_get_filesystem_firmware(buf)) {
882 dev_dbg(f_dev->parent, "firmware: direct-loading"
883 " firmware %s\n", buf->fw_id);
884
885 mutex_lock(&fw_lock);
886 set_bit(FW_STATUS_DONE, &buf->status);
887 mutex_unlock(&fw_lock);
888 complete_all(&buf->completion);
889 direct_load = 1;
890 goto handle_fw;
891 }
892 824
893 /* fall back on userspace loading */ 825 /* fall back on userspace loading */
894 buf->fmt = PAGE_BUF; 826 buf->is_paged_buf = true;
895 827
896 dev_set_uevent_suppress(f_dev, true); 828 dev_set_uevent_suppress(f_dev, true);
897 829
@@ -929,47 +861,196 @@ static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent,
929 861
930 cancel_delayed_work_sync(&fw_priv->timeout_work); 862 cancel_delayed_work_sync(&fw_priv->timeout_work);
931 863
932handle_fw: 864 fw_priv->buf = NULL;
865
866 device_remove_file(f_dev, &dev_attr_loading);
867err_del_bin_attr:
868 device_remove_bin_file(f_dev, &firmware_attr_data);
869err_del_dev:
870 device_del(f_dev);
871err_put_dev:
872 put_device(f_dev);
873 return retval;
874}
875
876static int fw_load_from_user_helper(struct firmware *firmware,
877 const char *name, struct device *device,
878 bool uevent, bool nowait, long timeout)
879{
880 struct firmware_priv *fw_priv;
881
882 fw_priv = fw_create_instance(firmware, name, device, uevent, nowait);
883 if (IS_ERR(fw_priv))
884 return PTR_ERR(fw_priv);
885
886 fw_priv->buf = firmware->priv;
887 return _request_firmware_load(fw_priv, uevent, timeout);
888}
889#else /* CONFIG_FW_LOADER_USER_HELPER */
890static inline int
891fw_load_from_user_helper(struct firmware *firmware, const char *name,
892 struct device *device, bool uevent, bool nowait,
893 long timeout)
894{
895 return -ENOENT;
896}
897
898/* No abort during direct loading */
899#define is_fw_load_aborted(buf) false
900
901#endif /* CONFIG_FW_LOADER_USER_HELPER */
902
903
904/* wait until the shared firmware_buf becomes ready (or error) */
905static int sync_cached_firmware_buf(struct firmware_buf *buf)
906{
907 int ret = 0;
908
909 mutex_lock(&fw_lock);
910 while (!test_bit(FW_STATUS_DONE, &buf->status)) {
911 if (is_fw_load_aborted(buf)) {
912 ret = -ENOENT;
913 break;
914 }
915 mutex_unlock(&fw_lock);
916 wait_for_completion(&buf->completion);
917 mutex_lock(&fw_lock);
918 }
919 mutex_unlock(&fw_lock);
920 return ret;
921}
922
923/* prepare firmware and firmware_buf structs;
924 * return 0 if a firmware is already assigned, 1 if need to load one,
925 * or a negative error code
926 */
927static int
928_request_firmware_prepare(struct firmware **firmware_p, const char *name,
929 struct device *device)
930{
931 struct firmware *firmware;
932 struct firmware_buf *buf;
933 int ret;
934
935 *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);
936 if (!firmware) {
937 dev_err(device, "%s: kmalloc(struct firmware) failed\n",
938 __func__);
939 return -ENOMEM;
940 }
941
942 if (fw_get_builtin_firmware(firmware, name)) {
943 dev_dbg(device, "firmware: using built-in firmware %s\n", name);
944 return 0; /* assigned */
945 }
946
947 ret = fw_lookup_and_allocate_buf(name, &fw_cache, &buf);
948
949 /*
950 * bind with 'buf' now to avoid warning in failure path
951 * of requesting firmware.
952 */
953 firmware->priv = buf;
954
955 if (ret > 0) {
956 ret = sync_cached_firmware_buf(buf);
957 if (!ret) {
958 fw_set_page_data(buf, firmware);
959 return 0; /* assigned */
960 }
961 }
962
963 if (ret < 0)
964 return ret;
965 return 1; /* need to load */
966}
967
968static int assign_firmware_buf(struct firmware *fw, struct device *device)
969{
970 struct firmware_buf *buf = fw->priv;
971
933 mutex_lock(&fw_lock); 972 mutex_lock(&fw_lock);
934 if (!buf->size || test_bit(FW_STATUS_ABORT, &buf->status)) 973 if (!buf->size || is_fw_load_aborted(buf)) {
935 retval = -ENOENT; 974 mutex_unlock(&fw_lock);
975 return -ENOENT;
976 }
936 977
937 /* 978 /*
938 * add firmware name into devres list so that we can auto cache 979 * add firmware name into devres list so that we can auto cache
939 * and uncache firmware for device. 980 * and uncache firmware for device.
940 * 981 *
941 * f_dev->parent may has been deleted already, but the problem 982 * device may has been deleted already, but the problem
942 * should be fixed in devres or driver core. 983 * should be fixed in devres or driver core.
943 */ 984 */
944 if (!retval && f_dev->parent) 985 if (device)
945 fw_add_devm_name(f_dev->parent, buf->fw_id); 986 fw_add_devm_name(device, buf->fw_id);
946 987
947 /* 988 /*
948 * After caching firmware image is started, let it piggyback 989 * After caching firmware image is started, let it piggyback
949 * on request firmware. 990 * on request firmware.
950 */ 991 */
951 if (!retval && fwc->state == FW_LOADER_START_CACHE) { 992 if (buf->fwc->state == FW_LOADER_START_CACHE) {
952 if (fw_cache_piggyback_on_request(buf->fw_id)) 993 if (fw_cache_piggyback_on_request(buf->fw_id))
953 kref_get(&buf->ref); 994 kref_get(&buf->ref);
954 } 995 }
955 996
956 /* pass the pages buffer to driver at the last minute */ 997 /* pass the pages buffer to driver at the last minute */
957 fw_set_page_data(buf, fw_priv->fw); 998 fw_set_page_data(buf, fw);
958
959 fw_priv->buf = NULL;
960 mutex_unlock(&fw_lock); 999 mutex_unlock(&fw_lock);
1000 return 0;
1001}
961 1002
962 if (direct_load) 1003/* called from request_firmware() and request_firmware_work_func() */
963 goto err_put_dev; 1004static int
1005_request_firmware(const struct firmware **firmware_p, const char *name,
1006 struct device *device, bool uevent, bool nowait)
1007{
1008 struct firmware *fw;
1009 long timeout;
1010 int ret;
964 1011
965 device_remove_file(f_dev, &dev_attr_loading); 1012 if (!firmware_p)
966err_del_bin_attr: 1013 return -EINVAL;
967 device_remove_bin_file(f_dev, &firmware_attr_data); 1014
968err_del_dev: 1015 ret = _request_firmware_prepare(&fw, name, device);
969 device_del(f_dev); 1016 if (ret <= 0) /* error or already assigned */
970err_put_dev: 1017 goto out;
971 put_device(f_dev); 1018
972 return retval; 1019 ret = 0;
1020 timeout = firmware_loading_timeout();
1021 if (nowait) {
1022 timeout = usermodehelper_read_lock_wait(timeout);
1023 if (!timeout) {
1024 dev_dbg(device, "firmware: %s loading timed out\n",
1025 name);
1026 ret = -EBUSY;
1027 goto out;
1028 }
1029 } else {
1030 ret = usermodehelper_read_trylock();
1031 if (WARN_ON(ret)) {
1032 dev_err(device, "firmware: %s will not be loaded\n",
1033 name);
1034 goto out;
1035 }
1036 }
1037
1038 if (!fw_get_filesystem_firmware(device, fw->priv))
1039 ret = fw_load_from_user_helper(fw, name, device,
1040 uevent, nowait, timeout);
1041 if (!ret)
1042 ret = assign_firmware_buf(fw, device);
1043
1044 usermodehelper_read_unlock();
1045
1046 out:
1047 if (ret < 0) {
1048 release_firmware(fw);
1049 fw = NULL;
1050 }
1051
1052 *firmware_p = fw;
1053 return ret;
973} 1054}
974 1055
975/** 1056/**
@@ -996,26 +1077,7 @@ int
996request_firmware(const struct firmware **firmware_p, const char *name, 1077request_firmware(const struct firmware **firmware_p, const char *name,
997 struct device *device) 1078 struct device *device)
998{ 1079{
999 struct firmware_priv *fw_priv; 1080 return _request_firmware(firmware_p, name, device, true, false);
1000 int ret;
1001
1002 fw_priv = _request_firmware_prepare(firmware_p, name, device, true,
1003 false);
1004 if (IS_ERR_OR_NULL(fw_priv))
1005 return PTR_RET(fw_priv);
1006
1007 ret = usermodehelper_read_trylock();
1008 if (WARN_ON(ret)) {
1009 dev_err(device, "firmware: %s will not be loaded\n", name);
1010 } else {
1011 ret = _request_firmware_load(fw_priv, true,
1012 firmware_loading_timeout());
1013 usermodehelper_read_unlock();
1014 }
1015 if (ret)
1016 _request_firmware_cleanup(firmware_p);
1017
1018 return ret;
1019} 1081}
1020 1082
1021/** 1083/**
@@ -1046,33 +1108,13 @@ static void request_firmware_work_func(struct work_struct *work)
1046{ 1108{
1047 struct firmware_work *fw_work; 1109 struct firmware_work *fw_work;
1048 const struct firmware *fw; 1110 const struct firmware *fw;
1049 struct firmware_priv *fw_priv;
1050 long timeout;
1051 int ret;
1052 1111
1053 fw_work = container_of(work, struct firmware_work, work); 1112 fw_work = container_of(work, struct firmware_work, work);
1054 fw_priv = _request_firmware_prepare(&fw, fw_work->name, fw_work->device,
1055 fw_work->uevent, true);
1056 if (IS_ERR_OR_NULL(fw_priv)) {
1057 ret = PTR_RET(fw_priv);
1058 goto out;
1059 }
1060
1061 timeout = usermodehelper_read_lock_wait(firmware_loading_timeout());
1062 if (timeout) {
1063 ret = _request_firmware_load(fw_priv, fw_work->uevent, timeout);
1064 usermodehelper_read_unlock();
1065 } else {
1066 dev_dbg(fw_work->device, "firmware: %s loading timed out\n",
1067 fw_work->name);
1068 ret = -EAGAIN;
1069 }
1070 if (ret)
1071 _request_firmware_cleanup(&fw);
1072 1113
1073 out: 1114 _request_firmware(&fw, fw_work->name, fw_work->device,
1115 fw_work->uevent, true);
1074 fw_work->cont(fw, fw_work->context); 1116 fw_work->cont(fw, fw_work->context);
1075 put_device(fw_work->device); 1117 put_device(fw_work->device); /* taken in request_firmware_nowait() */
1076 1118
1077 module_put(fw_work->module); 1119 module_put(fw_work->module);
1078 kfree(fw_work); 1120 kfree(fw_work);
@@ -1474,7 +1516,11 @@ static void __init fw_cache_init(void)
1474static int __init firmware_class_init(void) 1516static int __init firmware_class_init(void)
1475{ 1517{
1476 fw_cache_init(); 1518 fw_cache_init();
1519#ifdef CONFIG_FW_LOADER_USER_HELPER
1477 return class_register(&firmware_class); 1520 return class_register(&firmware_class);
1521#else
1522 return 0;
1523#endif
1478} 1524}
1479 1525
1480static void __exit firmware_class_exit(void) 1526static void __exit firmware_class_exit(void)
@@ -1483,7 +1529,9 @@ static void __exit firmware_class_exit(void)
1483 unregister_syscore_ops(&fw_syscore_ops); 1529 unregister_syscore_ops(&fw_syscore_ops);
1484 unregister_pm_notifier(&fw_cache.pm_notify); 1530 unregister_pm_notifier(&fw_cache.pm_notify);
1485#endif 1531#endif
1532#ifdef CONFIG_FW_LOADER_USER_HELPER
1486 class_unregister(&firmware_class); 1533 class_unregister(&firmware_class);
1534#endif
1487} 1535}
1488 1536
1489fs_initcall(firmware_class_init); 1537fs_initcall(firmware_class_init);
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 987604d56c83..83d0b17ba1c2 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -494,8 +494,8 @@ store_hard_offline_page(struct device *dev,
494 return ret ? ret : count; 494 return ret ? ret : count;
495} 495}
496 496
497static DEVICE_ATTR(soft_offline_page, 0644, NULL, store_soft_offline_page); 497static DEVICE_ATTR(soft_offline_page, S_IWUSR, NULL, store_soft_offline_page);
498static DEVICE_ATTR(hard_offline_page, 0644, NULL, store_hard_offline_page); 498static DEVICE_ATTR(hard_offline_page, S_IWUSR, NULL, store_hard_offline_page);
499 499
500static __init int memory_fail_init(void) 500static __init int memory_fail_init(void)
501{ 501{
diff --git a/drivers/block/paride/Kconfig b/drivers/block/paride/Kconfig
index 28cf3082d442..efefb5ac3004 100644
--- a/drivers/block/paride/Kconfig
+++ b/drivers/block/paride/Kconfig
@@ -205,8 +205,8 @@ config PARIDE_EPAT
205 support. 205 support.
206 206
207config PARIDE_EPATC8 207config PARIDE_EPATC8
208 bool "Support c7/c8 chips (EXPERIMENTAL)" 208 bool "Support c7/c8 chips"
209 depends on PARIDE_EPAT && EXPERIMENTAL 209 depends on PARIDE_EPAT
210 help 210 help
211 This option enables support for the newer Shuttle EP1284 (aka c7 and 211 This option enables support for the newer Shuttle EP1284 (aka c7 and
212 c8) chip. You need this if you are using any recent Imation SuperDisk 212 c8) chip. You need this if you are using any recent Imation SuperDisk
diff --git a/drivers/char/hw_random/exynos-rng.c b/drivers/char/hw_random/exynos-rng.c
index 48bbfeca4b5d..4673fc4ad931 100644
--- a/drivers/char/hw_random/exynos-rng.c
+++ b/drivers/char/hw_random/exynos-rng.c
@@ -104,6 +104,7 @@ static int exynos_read(struct hwrng *rng, void *buf,
104static int exynos_rng_probe(struct platform_device *pdev) 104static int exynos_rng_probe(struct platform_device *pdev)
105{ 105{
106 struct exynos_rng *exynos_rng; 106 struct exynos_rng *exynos_rng;
107 struct resource *res;
107 108
108 exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng), 109 exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng),
109 GFP_KERNEL); 110 GFP_KERNEL);
@@ -120,10 +121,10 @@ static int exynos_rng_probe(struct platform_device *pdev)
120 return -ENOENT; 121 return -ENOENT;
121 } 122 }
122 123
123 exynos_rng->mem = devm_request_and_ioremap(&pdev->dev, 124 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
124 platform_get_resource(pdev, IORESOURCE_MEM, 0)); 125 exynos_rng->mem = devm_ioremap_resource(&pdev->dev, res);
125 if (!exynos_rng->mem) 126 if (IS_ERR(exynos_rng->mem))
126 return -EBUSY; 127 return PTR_ERR(exynos_rng->mem);
127 128
128 platform_set_drvdata(pdev, exynos_rng); 129 platform_set_drvdata(pdev, exynos_rng);
129 130
diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
index d8c54e253761..749dc16ca2cc 100644
--- a/drivers/char/hw_random/omap-rng.c
+++ b/drivers/char/hw_random/omap-rng.c
@@ -124,9 +124,9 @@ static int omap_rng_probe(struct platform_device *pdev)
124 goto err_ioremap; 124 goto err_ioremap;
125 } 125 }
126 126
127 priv->base = devm_request_and_ioremap(&pdev->dev, priv->mem_res); 127 priv->base = devm_ioremap_resource(&pdev->dev, priv->mem_res);
128 if (!priv->base) { 128 if (IS_ERR(priv->base)) {
129 ret = -ENOMEM; 129 ret = PTR_ERR(priv->base);
130 goto err_ioremap; 130 goto err_ioremap;
131 } 131 }
132 dev_set_drvdata(&pdev->dev, priv); 132 dev_set_drvdata(&pdev->dev, priv);
diff --git a/drivers/char/hw_random/tx4939-rng.c b/drivers/char/hw_random/tx4939-rng.c
index de473ef3882b..30991989d65b 100644
--- a/drivers/char/hw_random/tx4939-rng.c
+++ b/drivers/char/hw_random/tx4939-rng.c
@@ -7,6 +7,7 @@
7 * License. See the file "COPYING" in the main directory of this archive 7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details. 8 * for more details.
9 */ 9 */
10#include <linux/err.h>
10#include <linux/module.h> 11#include <linux/module.h>
11#include <linux/kernel.h> 12#include <linux/kernel.h>
12#include <linux/init.h> 13#include <linux/init.h>
@@ -115,9 +116,9 @@ static int __init tx4939_rng_probe(struct platform_device *dev)
115 rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL); 116 rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL);
116 if (!rngdev) 117 if (!rngdev)
117 return -ENOMEM; 118 return -ENOMEM;
118 rngdev->base = devm_request_and_ioremap(&dev->dev, r); 119 rngdev->base = devm_ioremap_resource(&dev->dev, r);
119 if (!rngdev->base) 120 if (IS_ERR(rngdev->base))
120 return -EBUSY; 121 return PTR_ERR(rngdev->base);
121 122
122 rngdev->rng.name = dev_name(&dev->dev); 123 rngdev->rng.name = dev_name(&dev->dev);
123 rngdev->rng.data_present = tx4939_rng_data_present; 124 rngdev->rng.data_present = tx4939_rng_data_present;
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 7f333af1c059..030ddf6dd3f1 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -21,8 +21,8 @@ config ARM_S3C2416_CPUFREQ
21 If in doubt, say N. 21 If in doubt, say N.
22 22
23config ARM_S3C2416_CPUFREQ_VCORESCALE 23config ARM_S3C2416_CPUFREQ_VCORESCALE
24 bool "Allow voltage scaling for S3C2416 arm core (EXPERIMENTAL)" 24 bool "Allow voltage scaling for S3C2416 arm core"
25 depends on ARM_S3C2416_CPUFREQ && REGULATOR && EXPERIMENTAL 25 depends on ARM_S3C2416_CPUFREQ && REGULATOR
26 help 26 help
27 Enable CPU voltage scaling when entering the dvs mode. 27 Enable CPU voltage scaling when entering the dvs mode.
28 It uses information gathered through existing hardware and 28 It uses information gathered through existing hardware and
diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
index 98e5abbe8f26..d7dc0ed6adb0 100644
--- a/drivers/cpufreq/Kconfig.x86
+++ b/drivers/cpufreq/Kconfig.x86
@@ -187,7 +187,7 @@ config X86_SPEEDSTEP_ICH
187config X86_SPEEDSTEP_SMI 187config X86_SPEEDSTEP_SMI
188 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" 188 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
189 select CPU_FREQ_TABLE 189 select CPU_FREQ_TABLE
190 depends on X86_32 && EXPERIMENTAL 190 depends on X86_32
191 help 191 help
192 This adds the CPUFreq driver for certain mobile Intel Pentium III 192 This adds the CPUFreq driver for certain mobile Intel Pentium III
193 (Coppermine), all mobile Intel Pentium III-M (Tualatin) 193 (Coppermine), all mobile Intel Pentium III-M (Tualatin)
@@ -219,7 +219,7 @@ config X86_P4_CLOCKMOD
219 219
220config X86_CPUFREQ_NFORCE2 220config X86_CPUFREQ_NFORCE2
221 tristate "nVidia nForce2 FSB changing" 221 tristate "nVidia nForce2 FSB changing"
222 depends on X86_32 && EXPERIMENTAL 222 depends on X86_32
223 help 223 help
224 This adds the CPUFreq driver for FSB changing on nVidia nForce2 224 This adds the CPUFreq driver for FSB changing on nVidia nForce2
225 platforms. 225 platforms.
@@ -255,7 +255,7 @@ config X86_LONGHAUL
255config X86_E_POWERSAVER 255config X86_E_POWERSAVER
256 tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)" 256 tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
257 select CPU_FREQ_TABLE 257 select CPU_FREQ_TABLE
258 depends on X86_32 && EXPERIMENTAL 258 depends on X86_32
259 help 259 help
260 This adds the CPUFreq driver for VIA C7 processors. However, this driver 260 This adds the CPUFreq driver for VIA C7 processors. However, this driver
261 does not have any safeguards to prevent operating the CPU out of spec 261 does not have any safeguards to prevent operating the CPU out of spec
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 3e8ba02ba292..b33d1f6e1333 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -14,6 +14,7 @@
14#include <linux/delay.h> 14#include <linux/delay.h>
15#include <linux/dmaengine.h> 15#include <linux/dmaengine.h>
16#include <linux/dma-mapping.h> 16#include <linux/dma-mapping.h>
17#include <linux/err.h>
17#include <linux/init.h> 18#include <linux/init.h>
18#include <linux/interrupt.h> 19#include <linux/interrupt.h>
19#include <linux/io.h> 20#include <linux/io.h>
@@ -1489,9 +1490,9 @@ static int dw_probe(struct platform_device *pdev)
1489 if (irq < 0) 1490 if (irq < 0)
1490 return irq; 1491 return irq;
1491 1492
1492 regs = devm_request_and_ioremap(&pdev->dev, io); 1493 regs = devm_ioremap_resource(&pdev->dev, io);
1493 if (!regs) 1494 if (IS_ERR(regs))
1494 return -EBUSY; 1495 return PTR_ERR(regs);
1495 1496
1496 dw_params = dma_read_byaddr(regs, DW_PARAMS); 1497 dw_params = dma_read_byaddr(regs, DW_PARAMS);
1497 autocfg = dw_params >> DW_PARAMS_EN & 0x1; 1498 autocfg = dw_params >> DW_PARAMS_EN & 0x1;
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index a7dcf78b1ff8..70b8975d107e 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -14,6 +14,7 @@
14 * http://www.opensource.org/licenses/gpl-license.html 14 * http://www.opensource.org/licenses/gpl-license.html
15 * http://www.gnu.org/copyleft/gpl.html 15 * http://www.gnu.org/copyleft/gpl.html
16 */ 16 */
17#include <linux/err.h>
17#include <linux/init.h> 18#include <linux/init.h>
18#include <linux/types.h> 19#include <linux/types.h>
19#include <linux/mm.h> 20#include <linux/mm.h>
@@ -1010,9 +1011,9 @@ static int __init imxdma_probe(struct platform_device *pdev)
1010 imxdma->devtype = pdev->id_entry->driver_data; 1011 imxdma->devtype = pdev->id_entry->driver_data;
1011 1012
1012 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1013 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1013 imxdma->base = devm_request_and_ioremap(&pdev->dev, res); 1014 imxdma->base = devm_ioremap_resource(&pdev->dev, res);
1014 if (!imxdma->base) 1015 if (IS_ERR(imxdma->base))
1015 return -EADDRNOTAVAIL; 1016 return PTR_ERR(imxdma->base);
1016 1017
1017 irq = platform_get_irq(pdev, 0); 1018 irq = platform_get_irq(pdev, 0);
1018 if (irq < 0) 1019 if (irq < 0)
diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c
index c6d98c00f05c..dc7466563507 100644
--- a/drivers/dma/mmp_pdma.c
+++ b/drivers/dma/mmp_pdma.c
@@ -5,6 +5,7 @@
5 * it under the terms of the GNU General Public License version 2 as 5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation. 6 * published by the Free Software Foundation.
7 */ 7 */
8#include <linux/err.h>
8#include <linux/module.h> 9#include <linux/module.h>
9#include <linux/init.h> 10#include <linux/init.h>
10#include <linux/types.h> 11#include <linux/types.h>
@@ -782,9 +783,9 @@ static int mmp_pdma_probe(struct platform_device *op)
782 if (!iores) 783 if (!iores)
783 return -EINVAL; 784 return -EINVAL;
784 785
785 pdev->base = devm_request_and_ioremap(pdev->dev, iores); 786 pdev->base = devm_ioremap_resource(pdev->dev, iores);
786 if (!pdev->base) 787 if (IS_ERR(pdev->base))
787 return -EADDRNOTAVAIL; 788 return PTR_ERR(pdev->base);
788 789
789 of_id = of_match_device(mmp_pdma_dt_ids, pdev->dev); 790 of_id = of_match_device(mmp_pdma_dt_ids, pdev->dev);
790 if (of_id) 791 if (of_id)
diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
index a9f1cd56689c..43d5a6c33297 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -9,6 +9,7 @@
9 * 9 *
10 */ 10 */
11 11
12#include <linux/err.h>
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/init.h> 14#include <linux/init.h>
14#include <linux/types.h> 15#include <linux/types.h>
@@ -547,9 +548,9 @@ static int mmp_tdma_probe(struct platform_device *pdev)
547 if (!iores) 548 if (!iores)
548 return -EINVAL; 549 return -EINVAL;
549 550
550 tdev->base = devm_request_and_ioremap(&pdev->dev, iores); 551 tdev->base = devm_ioremap_resource(&pdev->dev, iores);
551 if (!tdev->base) 552 if (IS_ERR(tdev->base))
552 return -EADDRNOTAVAIL; 553 return PTR_ERR(tdev->base);
553 554
554 INIT_LIST_HEAD(&tdev->device.channels); 555 INIT_LIST_HEAD(&tdev->device.channels);
555 556
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 3cad856fe67f..58c1896271e1 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -21,6 +21,7 @@
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/dmaengine.h> 22#include <linux/dmaengine.h>
23#include <linux/dma-mapping.h> 23#include <linux/dma-mapping.h>
24#include <linux/err.h>
24#include <linux/init.h> 25#include <linux/init.h>
25#include <linux/interrupt.h> 26#include <linux/interrupt.h>
26#include <linux/io.h> 27#include <linux/io.h>
@@ -1240,12 +1241,9 @@ static int tegra_dma_probe(struct platform_device *pdev)
1240 return -EINVAL; 1241 return -EINVAL;
1241 } 1242 }
1242 1243
1243 tdma->base_addr = devm_request_and_ioremap(&pdev->dev, res); 1244 tdma->base_addr = devm_ioremap_resource(&pdev->dev, res);
1244 if (!tdma->base_addr) { 1245 if (IS_ERR(tdma->base_addr))
1245 dev_err(&pdev->dev, 1246 return PTR_ERR(tdma->base_addr);
1246 "Cannot request memregion/iomap dma address\n");
1247 return -EADDRNOTAVAIL;
1248 }
1249 1247
1250 tdma->dma_clk = devm_clk_get(&pdev->dev, NULL); 1248 tdma->dma_clk = devm_clk_get(&pdev->dev, NULL);
1251 if (IS_ERR(tdma->dma_clk)) { 1249 if (IS_ERR(tdma->dma_clk)) {
diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
index 66719925970f..acb709bfac0f 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -158,7 +158,7 @@ config EDAC_I3000
158 158
159config EDAC_I3200 159config EDAC_I3200
160 tristate "Intel 3200" 160 tristate "Intel 3200"
161 depends on EDAC_MM_EDAC && PCI && X86 && EXPERIMENTAL 161 depends on EDAC_MM_EDAC && PCI && X86
162 help 162 help
163 Support for error detection and correction on the Intel 163 Support for error detection and correction on the Intel
164 3200 and 3210 server chipsets. 164 3200 and 3210 server chipsets.
@@ -224,7 +224,7 @@ config EDAC_I7300
224config EDAC_SBRIDGE 224config EDAC_SBRIDGE
225 tristate "Intel Sandy-Bridge Integrated MC" 225 tristate "Intel Sandy-Bridge Integrated MC"
226 depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL 226 depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL
227 depends on PCI_MMCONFIG && EXPERIMENTAL 227 depends on PCI_MMCONFIG
228 help 228 help
229 Support for error detection and correction the Intel 229 Support for error detection and correction the Intel
230 Sandy Bridge Integrated Memory Controller. 230 Sandy Bridge Integrated Memory Controller.
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index e5116fa85140..1855a6fd2b0a 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -66,7 +66,7 @@ config DEBUG_GPIO
66 66
67config GPIO_SYSFS 67config GPIO_SYSFS
68 bool "/sys/class/gpio/... (sysfs interface)" 68 bool "/sys/class/gpio/... (sysfs interface)"
69 depends on SYSFS && EXPERIMENTAL 69 depends on SYSFS
70 help 70 help
71 Say Y here to add a sysfs interface for GPIOs. 71 Say Y here to add a sysfs interface for GPIOs.
72 72
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index 6819d63cb167..7472182967ce 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -33,6 +33,7 @@
33 * interrupts. 33 * interrupts.
34 */ 34 */
35 35
36#include <linux/err.h>
36#include <linux/module.h> 37#include <linux/module.h>
37#include <linux/gpio.h> 38#include <linux/gpio.h>
38#include <linux/irq.h> 39#include <linux/irq.h>
@@ -544,11 +545,9 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
544 mvchip->chip.of_node = np; 545 mvchip->chip.of_node = np;
545 546
546 spin_lock_init(&mvchip->lock); 547 spin_lock_init(&mvchip->lock);
547 mvchip->membase = devm_request_and_ioremap(&pdev->dev, res); 548 mvchip->membase = devm_ioremap_resource(&pdev->dev, res);
548 if (! mvchip->membase) { 549 if (IS_ERR(mvchip->membase))
549 dev_err(&pdev->dev, "Cannot ioremap\n"); 550 return PTR_ERR(mvchip->membase);
550 return -ENOMEM;
551 }
552 551
553 /* The Armada XP has a second range of registers for the 552 /* The Armada XP has a second range of registers for the
554 * per-CPU registers */ 553 * per-CPU registers */
@@ -559,11 +558,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
559 return -ENODEV; 558 return -ENODEV;
560 } 559 }
561 560
562 mvchip->percpu_membase = devm_request_and_ioremap(&pdev->dev, res); 561 mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev,
563 if (! mvchip->percpu_membase) { 562 res);
564 dev_err(&pdev->dev, "Cannot ioremap\n"); 563 if (IS_ERR(mvchip->percpu_membase))
565 return -ENOMEM; 564 return PTR_ERR(mvchip->percpu_membase);
566 }
567 } 565 }
568 566
569 /* 567 /*
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
index fa2a63cad32e..45d97c46831a 100644
--- a/drivers/gpio/gpio-mxs.c
+++ b/drivers/gpio/gpio-mxs.c
@@ -20,6 +20,7 @@
20 * MA 02110-1301, USA. 20 * MA 02110-1301, USA.
21 */ 21 */
22 22
23#include <linux/err.h>
23#include <linux/init.h> 24#include <linux/init.h>
24#include <linux/interrupt.h> 25#include <linux/interrupt.h>
25#include <linux/io.h> 26#include <linux/io.h>
@@ -253,12 +254,14 @@ static int mxs_gpio_probe(struct platform_device *pdev)
253 parent = of_get_parent(np); 254 parent = of_get_parent(np);
254 base = of_iomap(parent, 0); 255 base = of_iomap(parent, 0);
255 of_node_put(parent); 256 of_node_put(parent);
257 if (!base)
258 return -EADDRNOTAVAIL;
256 } else { 259 } else {
257 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); 260 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
258 base = devm_request_and_ioremap(&pdev->dev, iores); 261 base = devm_ioremap_resource(&pdev->dev, iores);
262 if (IS_ERR(base))
263 return PTR_ERR(base);
259 } 264 }
260 if (!base)
261 return -EADDRNOTAVAIL;
262 } 265 }
263 port->base = base; 266 port->base = base;
264 267
diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c
index 5f45fc4ed5d1..7a4bf7c0d98f 100644
--- a/drivers/gpio/gpio-spear-spics.c
+++ b/drivers/gpio/gpio-spear-spics.c
@@ -140,11 +140,9 @@ static int spics_gpio_probe(struct platform_device *pdev)
140 return -ENOMEM; 140 return -ENOMEM;
141 } 141 }
142 142
143 spics->base = devm_request_and_ioremap(&pdev->dev, res); 143 spics->base = devm_ioremap_resource(&pdev->dev, res);
144 if (!spics->base) { 144 if (IS_ERR(spics->base))
145 dev_err(&pdev->dev, "request and ioremap fail\n"); 145 return PTR_ERR(spics->base);
146 return -ENOMEM;
147 }
148 146
149 if (of_property_read_u32(np, "st-spics,peripcfg-reg", 147 if (of_property_read_u32(np, "st-spics,peripcfg-reg",
150 &spics->perip_cfg)) 148 &spics->perip_cfg))
diff --git a/drivers/gpio/gpio-stp-xway.c b/drivers/gpio/gpio-stp-xway.c
index 85841ee70b17..c20e05151212 100644
--- a/drivers/gpio/gpio-stp-xway.c
+++ b/drivers/gpio/gpio-stp-xway.c
@@ -214,11 +214,10 @@ static int xway_stp_probe(struct platform_device *pdev)
214 if (!chip) 214 if (!chip)
215 return -ENOMEM; 215 return -ENOMEM;
216 216
217 chip->virt = devm_request_and_ioremap(&pdev->dev, res); 217 chip->virt = devm_ioremap_resource(&pdev->dev, res);
218 if (!chip->virt) { 218 if (IS_ERR(chip->virt))
219 dev_err(&pdev->dev, "failed to remap STP memory\n"); 219 return PTR_ERR(chip->virt);
220 return -ENOMEM; 220
221 }
222 chip->gc.dev = &pdev->dev; 221 chip->gc.dev = &pdev->dev;
223 chip->gc.label = "stp-xway"; 222 chip->gc.label = "stp-xway";
224 chip->gc.direction_output = xway_stp_dir_out; 223 chip->gc.direction_output = xway_stp_dir_out;
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 63cb643d4b5a..414ad912232f 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -17,6 +17,7 @@
17 * 17 *
18 */ 18 */
19 19
20#include <linux/err.h>
20#include <linux/init.h> 21#include <linux/init.h>
21#include <linux/irq.h> 22#include <linux/irq.h>
22#include <linux/interrupt.h> 23#include <linux/interrupt.h>
@@ -450,11 +451,9 @@ static int tegra_gpio_probe(struct platform_device *pdev)
450 return -ENODEV; 451 return -ENODEV;
451 } 452 }
452 453
453 regs = devm_request_and_ioremap(&pdev->dev, res); 454 regs = devm_ioremap_resource(&pdev->dev, res);
454 if (!regs) { 455 if (IS_ERR(regs))
455 dev_err(&pdev->dev, "Couldn't ioremap regs\n"); 456 return PTR_ERR(regs);
456 return -ENODEV;
457 }
458 457
459 for (i = 0; i < tegra_gpio_bank_count; i++) { 458 for (i = 0; i < tegra_gpio_bank_count; i++) {
460 for (j = 0; j < 4; j++) { 459 for (j = 0; j < 4; j++) {
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 199fca15f270..5359ca78130f 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -806,7 +806,7 @@ fail_unlock:
806} 806}
807EXPORT_SYMBOL_GPL(gpio_export); 807EXPORT_SYMBOL_GPL(gpio_export);
808 808
809static int match_export(struct device *dev, void *data) 809static int match_export(struct device *dev, const void *data)
810{ 810{
811 return dev_get_drvdata(dev) == data; 811 return dev_get_drvdata(dev) == data;
812} 812}
diff --git a/drivers/gpu/drm/ast/Kconfig b/drivers/gpu/drm/ast/Kconfig
index a277b1257888..da4a51eae824 100644
--- a/drivers/gpu/drm/ast/Kconfig
+++ b/drivers/gpu/drm/ast/Kconfig
@@ -1,6 +1,6 @@
1config DRM_AST 1config DRM_AST
2 tristate "AST server chips" 2 tristate "AST server chips"
3 depends on DRM && PCI && EXPERIMENTAL 3 depends on DRM && PCI
4 select DRM_TTM 4 select DRM_TTM
5 select FB_SYS_COPYAREA 5 select FB_SYS_COPYAREA
6 select FB_SYS_FILLRECT 6 select FB_SYS_FILLRECT
diff --git a/drivers/gpu/drm/cirrus/Kconfig b/drivers/gpu/drm/cirrus/Kconfig
index fc154dd75296..bf67b22723f9 100644
--- a/drivers/gpu/drm/cirrus/Kconfig
+++ b/drivers/gpu/drm/cirrus/Kconfig
@@ -1,6 +1,6 @@
1config DRM_CIRRUS_QEMU 1config DRM_CIRRUS_QEMU
2 tristate "Cirrus driver for QEMU emulated device" 2 tristate "Cirrus driver for QEMU emulated device"
3 depends on DRM && PCI && EXPERIMENTAL 3 depends on DRM && PCI
4 select FB_SYS_FILLRECT 4 select FB_SYS_FILLRECT
5 select FB_SYS_COPYAREA 5 select FB_SYS_COPYAREA
6 select FB_SYS_IMAGEBLIT 6 select FB_SYS_IMAGEBLIT
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
index 67a83e69544b..411f69b76e84 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -1785,11 +1785,9 @@ static int fimc_probe(struct platform_device *pdev)
1785 1785
1786 /* resource memory */ 1786 /* resource memory */
1787 ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1787 ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1788 ctx->regs = devm_request_and_ioremap(dev, ctx->regs_res); 1788 ctx->regs = devm_ioremap_resource(dev, ctx->regs_res);
1789 if (!ctx->regs) { 1789 if (IS_ERR(ctx->regs))
1790 dev_err(dev, "failed to map registers.\n"); 1790 return PTR_ERR(ctx->regs);
1791 return -ENXIO;
1792 }
1793 1791
1794 /* resource irq */ 1792 /* resource irq */
1795 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1793 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 9537761931ee..36493ce71f9a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -913,11 +913,9 @@ static int fimd_probe(struct platform_device *pdev)
913 913
914 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 914 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
915 915
916 ctx->regs = devm_request_and_ioremap(&pdev->dev, res); 916 ctx->regs = devm_ioremap_resource(&pdev->dev, res);
917 if (!ctx->regs) { 917 if (IS_ERR(ctx->regs))
918 dev_err(dev, "failed to map registers\n"); 918 return PTR_ERR(ctx->regs);
919 return -ENXIO;
920 }
921 919
922 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 920 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
923 if (!res) { 921 if (!res) {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index 9a4c08e7453c..fb2f81b8063d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -1136,10 +1136,9 @@ static int g2d_probe(struct platform_device *pdev)
1136 1136
1137 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1137 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1138 1138
1139 g2d->regs = devm_request_and_ioremap(&pdev->dev, res); 1139 g2d->regs = devm_ioremap_resource(&pdev->dev, res);
1140 if (!g2d->regs) { 1140 if (IS_ERR(g2d->regs)) {
1141 dev_err(dev, "failed to remap I/O memory\n"); 1141 ret = PTR_ERR(g2d->regs);
1142 ret = -ENXIO;
1143 goto err_put_clk; 1142 goto err_put_clk;
1144 } 1143 }
1145 1144
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index 8140753ec9c8..7841c3b8a20e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1692,11 +1692,9 @@ static int gsc_probe(struct platform_device *pdev)
1692 1692
1693 /* resource memory */ 1693 /* resource memory */
1694 ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1694 ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1695 ctx->regs = devm_request_and_ioremap(dev, ctx->regs_res); 1695 ctx->regs = devm_ioremap_resource(dev, ctx->regs_res);
1696 if (!ctx->regs) { 1696 if (IS_ERR(ctx->regs))
1697 dev_err(dev, "failed to map registers.\n"); 1697 return PTR_ERR(ctx->regs);
1698 return -ENXIO;
1699 }
1700 1698
1701 /* resource irq */ 1699 /* resource irq */
1702 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1700 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
index f976e29def6e..a40b9fb60240 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -656,11 +656,9 @@ static int rotator_probe(struct platform_device *pdev)
656 platform_get_device_id(pdev)->driver_data; 656 platform_get_device_id(pdev)->driver_data;
657 657
658 rot->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 658 rot->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
659 rot->regs = devm_request_and_ioremap(dev, rot->regs_res); 659 rot->regs = devm_ioremap_resource(dev, rot->regs_res);
660 if (!rot->regs) { 660 if (IS_ERR(rot->regs))
661 dev_err(dev, "failed to map register\n"); 661 return PTR_ERR(rot->regs);
662 return -ENXIO;
663 }
664 662
665 rot->irq = platform_get_irq(pdev, 0); 663 rot->irq = platform_get_irq(pdev, 0);
666 if (rot->irq < 0) { 664 if (rot->irq < 0) {
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index fbab3c468603..233247505ff8 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -2501,11 +2501,9 @@ static int hdmi_probe(struct platform_device *pdev)
2501 return -ENOENT; 2501 return -ENOENT;
2502 } 2502 }
2503 2503
2504 hdata->regs = devm_request_and_ioremap(&pdev->dev, res); 2504 hdata->regs = devm_ioremap_resource(&pdev->dev, res);
2505 if (!hdata->regs) { 2505 if (IS_ERR(hdata->regs))
2506 DRM_ERROR("failed to map registers\n"); 2506 return PTR_ERR(hdata->regs);
2507 return -ENXIO;
2508 }
2509 2507
2510 ret = devm_gpio_request(&pdev->dev, hdata->hpd_gpio, "HPD"); 2508 ret = devm_gpio_request(&pdev->dev, hdata->hpd_gpio, "HPD");
2511 if (ret) { 2509 if (ret) {
diff --git a/drivers/gpu/drm/gma500/Kconfig b/drivers/gpu/drm/gma500/Kconfig
index 42e665c7e90a..1188f0fe7e4f 100644
--- a/drivers/gpu/drm/gma500/Kconfig
+++ b/drivers/gpu/drm/gma500/Kconfig
@@ -1,6 +1,6 @@
1config DRM_GMA500 1config DRM_GMA500
2 tristate "Intel GMA5/600 KMS Framebuffer" 2 tristate "Intel GMA5/600 KMS Framebuffer"
3 depends on DRM && PCI && X86 && EXPERIMENTAL 3 depends on DRM && PCI && X86
4 select FB_CFB_COPYAREA 4 select FB_CFB_COPYAREA
5 select FB_CFB_FILLRECT 5 select FB_CFB_FILLRECT
6 select FB_CFB_IMAGEBLIT 6 select FB_CFB_IMAGEBLIT
diff --git a/drivers/gpu/drm/mgag200/Kconfig b/drivers/gpu/drm/mgag200/Kconfig
index d63013497f66..b487cdec5ee7 100644
--- a/drivers/gpu/drm/mgag200/Kconfig
+++ b/drivers/gpu/drm/mgag200/Kconfig
@@ -1,6 +1,6 @@
1config DRM_MGAG200 1config DRM_MGAG200
2 tristate "Kernel modesetting driver for MGA G200 server engines" 2 tristate "Kernel modesetting driver for MGA G200 server engines"
3 depends on DRM && PCI && EXPERIMENTAL 3 depends on DRM && PCI
4 select FB_SYS_FILLRECT 4 select FB_SYS_FILLRECT
5 select FB_SYS_COPYAREA 5 select FB_SYS_COPYAREA
6 select FB_SYS_IMAGEBLIT 6 select FB_SYS_IMAGEBLIT
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 656b2e3334a6..d365c6dff0fb 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -764,11 +764,9 @@ static int tegra_dc_probe(struct platform_device *pdev)
764 return -ENXIO; 764 return -ENXIO;
765 } 765 }
766 766
767 dc->regs = devm_request_and_ioremap(&pdev->dev, regs); 767 dc->regs = devm_ioremap_resource(&pdev->dev, regs);
768 if (!dc->regs) { 768 if (IS_ERR(dc->regs))
769 dev_err(&pdev->dev, "failed to remap registers\n"); 769 return PTR_ERR(dc->regs);
770 return -ENXIO;
771 }
772 770
773 dc->irq = platform_get_irq(pdev, 0); 771 dc->irq = platform_get_irq(pdev, 0);
774 if (dc->irq < 0) { 772 if (dc->irq < 0) {
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index e060c7e6434d..266af7879240 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -1259,9 +1259,9 @@ static int tegra_hdmi_probe(struct platform_device *pdev)
1259 if (!regs) 1259 if (!regs)
1260 return -ENXIO; 1260 return -ENXIO;
1261 1261
1262 hdmi->regs = devm_request_and_ioremap(&pdev->dev, regs); 1262 hdmi->regs = devm_ioremap_resource(&pdev->dev, regs);
1263 if (!hdmi->regs) 1263 if (IS_ERR(hdmi->regs))
1264 return -EADDRNOTAVAIL; 1264 return PTR_ERR(hdmi->regs);
1265 1265
1266 err = platform_get_irq(pdev, 0); 1266 err = platform_get_irq(pdev, 0);
1267 if (err < 0) 1267 if (err < 0)
diff --git a/drivers/gpu/drm/tegra/host1x.c b/drivers/gpu/drm/tegra/host1x.c
index 5d17b113a6fc..92e25a7e00ea 100644
--- a/drivers/gpu/drm/tegra/host1x.c
+++ b/drivers/gpu/drm/tegra/host1x.c
@@ -139,9 +139,9 @@ static int tegra_host1x_probe(struct platform_device *pdev)
139 139
140 host1x->irq = err; 140 host1x->irq = err;
141 141
142 host1x->regs = devm_request_and_ioremap(&pdev->dev, regs); 142 host1x->regs = devm_ioremap_resource(&pdev->dev, regs);
143 if (!host1x->regs) { 143 if (IS_ERR(host1x->regs)) {
144 err = -EADDRNOTAVAIL; 144 err = PTR_ERR(host1x->regs);
145 goto err; 145 goto err;
146 } 146 }
147 147
diff --git a/drivers/gpu/drm/udl/Kconfig b/drivers/gpu/drm/udl/Kconfig
index 56e0bf31d425..6222af19f456 100644
--- a/drivers/gpu/drm/udl/Kconfig
+++ b/drivers/gpu/drm/udl/Kconfig
@@ -1,6 +1,6 @@
1config DRM_UDL 1config DRM_UDL
2 tristate "DisplayLink" 2 tristate "DisplayLink"
3 depends on DRM && EXPERIMENTAL 3 depends on DRM
4 depends on USB_ARCH_HAS_HCD 4 depends on USB_ARCH_HAS_HCD
5 select DRM_USB 5 select DRM_USB
6 select FB_SYS_FILLRECT 6 select FB_SYS_FILLRECT
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index 2f8c76becc6b..46cde098c11c 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -89,7 +89,7 @@ source drivers/i2c/busses/Kconfig
89 89
90config I2C_STUB 90config I2C_STUB
91 tristate "I2C/SMBus Test Stub" 91 tristate "I2C/SMBus Test Stub"
92 depends on EXPERIMENTAL && m 92 depends on m
93 default 'n' 93 default 'n'
94 help 94 help
95 This module may be useful to developers of SMBus client drivers, 95 This module may be useful to developers of SMBus client drivers,
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index bdca5111eb9d..9b94a78ca776 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -22,7 +22,7 @@ config I2C_ALI1535
22 22
23config I2C_ALI1563 23config I2C_ALI1563
24 tristate "ALI 1563" 24 tristate "ALI 1563"
25 depends on PCI && EXPERIMENTAL 25 depends on PCI
26 help 26 help
27 If you say yes to this option, support will be included for the SMB 27 If you say yes to this option, support will be included for the SMB
28 Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB 28 Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB
@@ -56,7 +56,7 @@ config I2C_AMD756
56 56
57config I2C_AMD756_S4882 57config I2C_AMD756_S4882
58 tristate "SMBus multiplexing on the Tyan S4882" 58 tristate "SMBus multiplexing on the Tyan S4882"
59 depends on I2C_AMD756 && X86 && EXPERIMENTAL 59 depends on I2C_AMD756 && X86
60 help 60 help
61 Enabling this option will add specific SMBus support for the Tyan 61 Enabling this option will add specific SMBus support for the Tyan
62 S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed 62 S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed
@@ -164,7 +164,7 @@ config I2C_NFORCE2
164 164
165config I2C_NFORCE2_S4985 165config I2C_NFORCE2_S4985
166 tristate "SMBus multiplexing on the Tyan S4985" 166 tristate "SMBus multiplexing on the Tyan S4985"
167 depends on I2C_NFORCE2 && X86 && EXPERIMENTAL 167 depends on I2C_NFORCE2 && X86
168 help 168 help
169 Enabling this option will add specific SMBus support for the Tyan 169 Enabling this option will add specific SMBus support for the Tyan
170 S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed 170 S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed
@@ -215,7 +215,7 @@ config I2C_SIS96X
215 215
216config I2C_VIA 216config I2C_VIA
217 tristate "VIA VT82C586B" 217 tristate "VIA VT82C586B"
218 depends on PCI && EXPERIMENTAL 218 depends on PCI
219 select I2C_ALGOBIT 219 select I2C_ALGOBIT
220 help 220 help
221 If you say yes to this option, support will be included for the VIA 221 If you say yes to this option, support will be included for the VIA
@@ -267,7 +267,7 @@ comment "Mac SMBus host controller drivers"
267 267
268config I2C_HYDRA 268config I2C_HYDRA
269 tristate "CHRP Apple Hydra Mac I/O I2C interface" 269 tristate "CHRP Apple Hydra Mac I/O I2C interface"
270 depends on PCI && PPC_CHRP && EXPERIMENTAL 270 depends on PCI && PPC_CHRP
271 select I2C_ALGOBIT 271 select I2C_ALGOBIT
272 help 272 help
273 This supports the use of the I2C interface in the Apple Hydra Mac 273 This supports the use of the I2C interface in the Apple Hydra Mac
@@ -293,7 +293,7 @@ comment "I2C system bus drivers (mostly embedded / system-on-chip)"
293 293
294config I2C_AT91 294config I2C_AT91
295 tristate "Atmel AT91 I2C Two-Wire interface (TWI)" 295 tristate "Atmel AT91 I2C Two-Wire interface (TWI)"
296 depends on ARCH_AT91 && EXPERIMENTAL 296 depends on ARCH_AT91
297 help 297 help
298 This supports the use of the I2C interface on Atmel AT91 298 This supports the use of the I2C interface on Atmel AT91
299 processors. 299 processors.
@@ -519,7 +519,6 @@ config I2C_NUC900
519 519
520config I2C_OCORES 520config I2C_OCORES
521 tristate "OpenCores I2C Controller" 521 tristate "OpenCores I2C Controller"
522 depends on EXPERIMENTAL
523 help 522 help
524 If you say yes to this option, support will be included for the 523 If you say yes to this option, support will be included for the
525 OpenCores I2C controller. For details see 524 OpenCores I2C controller. For details see
@@ -712,7 +711,7 @@ config I2C_OCTEON
712 711
713config I2C_XILINX 712config I2C_XILINX
714 tristate "Xilinx I2C Controller" 713 tristate "Xilinx I2C Controller"
715 depends on EXPERIMENTAL && HAS_IOMEM 714 depends on HAS_IOMEM
716 help 715 help
717 If you say yes to this option, support will be included for the 716 If you say yes to this option, support will be included for the
718 Xilinx I2C controller. 717 Xilinx I2C controller.
@@ -803,7 +802,6 @@ config I2C_PARPORT_LIGHT
803 802
804config I2C_TAOS_EVM 803config I2C_TAOS_EVM
805 tristate "TAOS evaluation module" 804 tristate "TAOS evaluation module"
806 depends on EXPERIMENTAL
807 select SERIO 805 select SERIO
808 select SERIO_SERPORT 806 select SERIO_SERPORT
809 default n 807 default n
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index 2bfc04d0a1b1..ebc224154695 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -723,9 +723,9 @@ static int at91_twi_probe(struct platform_device *pdev)
723 if (!dev->pdata) 723 if (!dev->pdata)
724 return -ENODEV; 724 return -ENODEV;
725 725
726 dev->base = devm_request_and_ioremap(&pdev->dev, mem); 726 dev->base = devm_ioremap_resource(&pdev->dev, mem);
727 if (!dev->base) 727 if (IS_ERR(dev->base))
728 return -EBUSY; 728 return PTR_ERR(dev->base);
729 729
730 dev->irq = platform_get_irq(pdev, 0); 730 dev->irq = platform_get_irq(pdev, 0);
731 if (dev->irq < 0) 731 if (dev->irq < 0)
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index b9734747d610..a71ece63e917 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -511,9 +511,9 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
511 return -ENOENT; 511 return -ENOENT;
512 } 512 }
513 513
514 base = devm_request_and_ioremap(&pdev->dev, res); 514 base = devm_ioremap_resource(&pdev->dev, res);
515 if (!base) 515 if (IS_ERR(base))
516 return -EBUSY; 516 return PTR_ERR(base);
517 517
518 i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct), 518 i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct),
519 GFP_KERNEL); 519 GFP_KERNEL);
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c
index a873d0ad1acb..a337d08a392d 100644
--- a/drivers/i2c/busses/i2c-ocores.c
+++ b/drivers/i2c/busses/i2c-ocores.c
@@ -12,6 +12,7 @@
12 * kind, whether express or implied. 12 * kind, whether express or implied.
13 */ 13 */
14 14
15#include <linux/err.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
16#include <linux/module.h> 17#include <linux/module.h>
17#include <linux/init.h> 18#include <linux/init.h>
@@ -364,9 +365,9 @@ static int ocores_i2c_probe(struct platform_device *pdev)
364 if (!i2c) 365 if (!i2c)
365 return -ENOMEM; 366 return -ENOMEM;
366 367
367 i2c->base = devm_request_and_ioremap(&pdev->dev, res); 368 i2c->base = devm_ioremap_resource(&pdev->dev, res);
368 if (!i2c->base) 369 if (IS_ERR(i2c->base))
369 return -EADDRNOTAVAIL; 370 return PTR_ERR(i2c->base);
370 371
371 pdata = pdev->dev.platform_data; 372 pdata = pdev->dev.platform_data;
372 if (pdata) { 373 if (pdata) {
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 4cc2f0528c88..3ee188679cf1 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1103,11 +1103,9 @@ omap_i2c_probe(struct platform_device *pdev)
1103 return -ENOMEM; 1103 return -ENOMEM;
1104 } 1104 }
1105 1105
1106 dev->base = devm_request_and_ioremap(&pdev->dev, mem); 1106 dev->base = devm_ioremap_resource(&pdev->dev, mem);
1107 if (!dev->base) { 1107 if (IS_ERR(dev->base))
1108 dev_err(&pdev->dev, "I2C region already claimed\n"); 1108 return PTR_ERR(dev->base);
1109 return -ENOMEM;
1110 }
1111 1109
1112 match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev); 1110 match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev);
1113 if (match) { 1111 if (match) {
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
index 9bd4d73d29e3..4ba4a95b6b26 100644
--- a/drivers/i2c/busses/i2c-rcar.c
+++ b/drivers/i2c/busses/i2c-rcar.c
@@ -642,11 +642,9 @@ static int rcar_i2c_probe(struct platform_device *pdev)
642 if (ret < 0) 642 if (ret < 0)
643 return ret; 643 return ret;
644 644
645 priv->io = devm_request_and_ioremap(dev, res); 645 priv->io = devm_ioremap_resource(dev, res);
646 if (!priv->io) { 646 if (IS_ERR(priv->io))
647 dev_err(dev, "cannot ioremap\n"); 647 return PTR_ERR(priv->io);
648 return -ENODEV;
649 }
650 648
651 priv->irq = platform_get_irq(pdev, 0); 649 priv->irq = platform_get_irq(pdev, 0);
652 init_waitqueue_head(&priv->wait); 650 init_waitqueue_head(&priv->wait);
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index a290d089ceaf..c807a6d14f0c 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -1042,11 +1042,10 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
1042 goto err_clk; 1042 goto err_clk;
1043 } 1043 }
1044 1044
1045 i2c->regs = devm_request_and_ioremap(&pdev->dev, res); 1045 i2c->regs = devm_ioremap_resource(&pdev->dev, res);
1046 1046
1047 if (i2c->regs == NULL) { 1047 if (IS_ERR(i2c->regs)) {
1048 dev_err(&pdev->dev, "cannot map IO\n"); 1048 ret = PTR_ERR(i2c->regs);
1049 ret = -ENXIO;
1050 goto err_clk; 1049 goto err_clk;
1051 } 1050 }
1052 1051
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index e03381aee34f..5a7ad240bd26 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -309,10 +309,9 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev)
309 goto out; 309 goto out;
310 } 310 }
311 311
312 siic->base = devm_request_and_ioremap(&pdev->dev, mem_res); 312 siic->base = devm_ioremap_resource(&pdev->dev, mem_res);
313 if (siic->base == NULL) { 313 if (IS_ERR(siic->base)) {
314 dev_err(&pdev->dev, "IO remap failed!\n"); 314 err = PTR_ERR(siic->base);
315 err = -ENOMEM;
316 goto out; 315 goto out;
317 } 316 }
318 317
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c
index 580a0c04cb42..60195b590637 100644
--- a/drivers/i2c/busses/i2c-stu300.c
+++ b/drivers/i2c/busses/i2c-stu300.c
@@ -888,11 +888,11 @@ stu300_probe(struct platform_device *pdev)
888 if (!res) 888 if (!res)
889 return -ENOENT; 889 return -ENOENT;
890 890
891 dev->virtbase = devm_request_and_ioremap(&pdev->dev, res); 891 dev->virtbase = devm_ioremap_resource(&pdev->dev, res);
892 dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual " 892 dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual "
893 "base %p\n", bus_nr, dev->virtbase); 893 "base %p\n", bus_nr, dev->virtbase);
894 if (!dev->virtbase) 894 if (IS_ERR(dev->virtbase))
895 return -ENOMEM; 895 return PTR_ERR(dev->virtbase);
896 896
897 dev->irq = platform_get_irq(pdev, 0); 897 dev->irq = platform_get_irq(pdev, 0);
898 ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev); 898 ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev);
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index 7b38877ffec1..1fb30099dac4 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -669,11 +669,9 @@ static int tegra_i2c_probe(struct platform_device *pdev)
669 return -EINVAL; 669 return -EINVAL;
670 } 670 }
671 671
672 base = devm_request_and_ioremap(&pdev->dev, res); 672 base = devm_ioremap_resource(&pdev->dev, res);
673 if (!base) { 673 if (IS_ERR(base))
674 dev_err(&pdev->dev, "Cannot request/ioremap I2C registers\n"); 674 return PTR_ERR(base);
675 return -EADDRNOTAVAIL;
676 }
677 675
678 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 676 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
679 if (!res) { 677 if (!res) {
diff --git a/drivers/i2c/busses/i2c-xlr.c b/drivers/i2c/busses/i2c-xlr.c
index a005265461da..93f029e98c0d 100644
--- a/drivers/i2c/busses/i2c-xlr.c
+++ b/drivers/i2c/busses/i2c-xlr.c
@@ -7,6 +7,7 @@
7 * warranty of any kind, whether express or implied. 7 * warranty of any kind, whether express or implied.
8 */ 8 */
9 9
10#include <linux/err.h>
10#include <linux/kernel.h> 11#include <linux/kernel.h>
11#include <linux/module.h> 12#include <linux/module.h>
12#include <linux/slab.h> 13#include <linux/slab.h>
@@ -225,11 +226,9 @@ static int xlr_i2c_probe(struct platform_device *pdev)
225 return -ENOMEM; 226 return -ENOMEM;
226 227
227 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 228 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
228 priv->iobase = devm_request_and_ioremap(&pdev->dev, res); 229 priv->iobase = devm_ioremap_resource(&pdev->dev, res);
229 if (!priv->iobase) { 230 if (IS_ERR(priv->iobase))
230 dev_err(&pdev->dev, "devm_request_and_ioremap failed\n"); 231 return PTR_ERR(priv->iobase);
231 return -EBUSY;
232 }
233 232
234 priv->adap.dev.parent = &pdev->dev; 233 priv->adap.dev.parent = &pdev->dev;
235 priv->adap.owner = THIS_MODULE; 234 priv->adap.owner = THIS_MODULE;
diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig
index a0edd9854218..0be5b83c08fa 100644
--- a/drivers/i2c/muxes/Kconfig
+++ b/drivers/i2c/muxes/Kconfig
@@ -19,7 +19,6 @@ config I2C_MUX_GPIO
19 19
20config I2C_MUX_PCA9541 20config I2C_MUX_PCA9541
21 tristate "NXP PCA9541 I2C Master Selector" 21 tristate "NXP PCA9541 I2C Master Selector"
22 depends on EXPERIMENTAL
23 help 22 help
24 If you say yes here you get support for the NXP PCA9541 23 If you say yes here you get support for the NXP PCA9541
25 I2C Master Selector. 24 I2C Master Selector.
@@ -29,7 +28,6 @@ config I2C_MUX_PCA9541
29 28
30config I2C_MUX_PCA954x 29config I2C_MUX_PCA954x
31 tristate "Philips PCA954x I2C Mux/switches" 30 tristate "Philips PCA954x I2C Mux/switches"
32 depends on EXPERIMENTAL
33 help 31 help
34 If you say yes here you get support for the Philips PCA954x 32 If you say yes here you get support for the Philips PCA954x
35 I2C mux/switch devices. 33 I2C mux/switch devices.
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index 5a26584934ca..3c4417a1d438 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -322,8 +322,7 @@ config BLK_DEV_GENERIC
322 which otherwise might not be supported. 322 which otherwise might not be supported.
323 323
324config BLK_DEV_OPTI621 324config BLK_DEV_OPTI621
325 tristate "OPTi 82C621 chipset enhanced support (EXPERIMENTAL)" 325 tristate "OPTi 82C621 chipset enhanced support"
326 depends on EXPERIMENTAL
327 select BLK_DEV_IDEPCI 326 select BLK_DEV_IDEPCI
328 help 327 help
329 This is a driver for the OPTi 82C621 EIDE controller. 328 This is a driver for the OPTi 82C621 EIDE controller.
@@ -417,7 +416,6 @@ config BLK_DEV_CY82C693
417 416
418config BLK_DEV_CS5520 417config BLK_DEV_CS5520
419 tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)" 418 tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)"
420 depends on EXPERIMENTAL
421 select BLK_DEV_IDEDMA_PCI 419 select BLK_DEV_IDEDMA_PCI
422 help 420 help
423 Include support for PIO tuning and virtual DMA on the Cyrix MediaGX 421 Include support for PIO tuning and virtual DMA on the Cyrix MediaGX
@@ -761,8 +759,8 @@ config BLK_DEV_GAYLE
761 use Gayle IDE interfaces on the Zorro expansion bus. 759 use Gayle IDE interfaces on the Zorro expansion bus.
762 760
763config BLK_DEV_BUDDHA 761config BLK_DEV_BUDDHA
764 tristate "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" 762 tristate "Buddha/Catweasel/X-Surf IDE interface support"
765 depends on ZORRO && EXPERIMENTAL 763 depends on ZORRO
766 help 764 help
767 This is the IDE driver for the IDE interfaces on the Buddha, Catweasel 765 This is the IDE driver for the IDE interfaces on the Buddha, Catweasel
768 and X-Surf expansion boards. It supports up to two interfaces on the 766 and X-Surf expansion boards. It supports up to two interfaces on the
diff --git a/drivers/idle/Kconfig b/drivers/idle/Kconfig
index 8489eb58a52c..4732dfc15447 100644
--- a/drivers/idle/Kconfig
+++ b/drivers/idle/Kconfig
@@ -18,7 +18,6 @@ config I7300_IDLE_IOAT_CHANNEL
18config I7300_IDLE 18config I7300_IDLE
19 tristate "Intel chipset idle memory power saving driver" 19 tristate "Intel chipset idle memory power saving driver"
20 select I7300_IDLE_IOAT_CHANNEL 20 select I7300_IDLE_IOAT_CHANNEL
21 depends on EXPERIMENTAL
22 help 21 help
23 Enable memory power savings when idle with certain Intel server 22 Enable memory power savings when idle with certain Intel server
24 chipsets. The chipset must have I/O AT support, such as the 23 chipsets. The chipset must have I/O AT support, such as the
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index a526c0e3aaa8..83c836ba600f 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -557,9 +557,9 @@ static int at91_adc_probe(struct platform_device *pdev)
557 557
558 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 558 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
559 559
560 st->reg_base = devm_request_and_ioremap(&pdev->dev, res); 560 st->reg_base = devm_ioremap_resource(&pdev->dev, res);
561 if (!st->reg_base) { 561 if (IS_ERR(st->reg_base)) {
562 ret = -ENOMEM; 562 ret = PTR_ERR(st->reg_base);
563 goto error_free_device; 563 goto error_free_device;
564 } 564 }
565 565
diff --git a/drivers/input/keyboard/spear-keyboard.c b/drivers/input/keyboard/spear-keyboard.c
index 695d237417d6..cb1e8f614631 100644
--- a/drivers/input/keyboard/spear-keyboard.c
+++ b/drivers/input/keyboard/spear-keyboard.c
@@ -228,11 +228,9 @@ static int spear_kbd_probe(struct platform_device *pdev)
228 kbd->suspended_rate = pdata->suspended_rate; 228 kbd->suspended_rate = pdata->suspended_rate;
229 } 229 }
230 230
231 kbd->io_base = devm_request_and_ioremap(&pdev->dev, res); 231 kbd->io_base = devm_ioremap_resource(&pdev->dev, res);
232 if (!kbd->io_base) { 232 if (IS_ERR(kbd->io_base))
233 dev_err(&pdev->dev, "request-ioremap failed for kbd_region\n"); 233 return PTR_ERR(kbd->io_base);
234 return -ENOMEM;
235 }
236 234
237 kbd->clk = devm_clk_get(&pdev->dev, NULL); 235 kbd->clk = devm_clk_get(&pdev->dev, NULL);
238 if (IS_ERR(kbd->clk)) 236 if (IS_ERR(kbd->clk))
diff --git a/drivers/input/serio/arc_ps2.c b/drivers/input/serio/arc_ps2.c
index b571eb3e4efc..c52e3e589f72 100644
--- a/drivers/input/serio/arc_ps2.c
+++ b/drivers/input/serio/arc_ps2.c
@@ -8,6 +8,7 @@
8 * Driver is originally developed by Pavel Sokolov <psokolov@synopsys.com> 8 * Driver is originally developed by Pavel Sokolov <psokolov@synopsys.com>
9 */ 9 */
10 10
11#include <linux/err.h>
11#include <linux/module.h> 12#include <linux/module.h>
12#include <linux/interrupt.h> 13#include <linux/interrupt.h>
13#include <linux/input.h> 14#include <linux/input.h>
@@ -206,9 +207,9 @@ static int arc_ps2_probe(struct platform_device *pdev)
206 return -ENOMEM; 207 return -ENOMEM;
207 } 208 }
208 209
209 arc_ps2->addr = devm_request_and_ioremap(&pdev->dev, res); 210 arc_ps2->addr = devm_ioremap_resource(&pdev->dev, res);
210 if (!arc_ps2->addr) 211 if (IS_ERR(arc_ps2->addr))
211 return -EBUSY; 212 return PTR_ERR(arc_ps2->addr);
212 213
213 dev_info(&pdev->dev, "irq = %d, address = 0x%p, ports = %i\n", 214 dev_info(&pdev->dev, "irq = %d, address = 0x%p, ports = %i\n",
214 irq, arc_ps2->addr, ARC_PS2_PORTS); 215 irq, arc_ps2->addr, ARC_PS2_PORTS);
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index e39f9dbf297b..01068987809d 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -65,8 +65,8 @@ config AMD_IOMMU_STATS
65 If unsure, say N. 65 If unsure, say N.
66 66
67config AMD_IOMMU_V2 67config AMD_IOMMU_V2
68 tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)" 68 tristate "AMD IOMMU Version 2 driver"
69 depends on AMD_IOMMU && PROFILING && EXPERIMENTAL 69 depends on AMD_IOMMU && PROFILING
70 select MMU_NOTIFIER 70 select MMU_NOTIFIER
71 ---help--- 71 ---help---
72 This option enables support for the AMD IOMMUv2 features of the IOMMU 72 This option enables support for the AMD IOMMUv2 features of the IOMMU
@@ -119,8 +119,8 @@ config INTEL_IOMMU_FLOPPY_WA
119 16MiB to make floppy (an ISA device) work. 119 16MiB to make floppy (an ISA device) work.
120 120
121config IRQ_REMAP 121config IRQ_REMAP
122 bool "Support for Interrupt Remapping (EXPERIMENTAL)" 122 bool "Support for Interrupt Remapping"
123 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL 123 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI
124 select DMAR_TABLE 124 select DMAR_TABLE
125 ---help--- 125 ---help---
126 Supports Interrupt remapping for IO-APIC and MSI devices. 126 Supports Interrupt remapping for IO-APIC and MSI devices.
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index fc178893789a..f08dbcd2f175 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -19,6 +19,7 @@
19 19
20#define pr_fmt(fmt) "%s(): " fmt, __func__ 20#define pr_fmt(fmt) "%s(): " fmt, __func__
21 21
22#include <linux/err.h>
22#include <linux/module.h> 23#include <linux/module.h>
23#include <linux/platform_device.h> 24#include <linux/platform_device.h>
24#include <linux/spinlock.h> 25#include <linux/spinlock.h>
@@ -1176,9 +1177,9 @@ static int tegra_smmu_probe(struct platform_device *pdev)
1176 res = platform_get_resource(pdev, IORESOURCE_MEM, i); 1177 res = platform_get_resource(pdev, IORESOURCE_MEM, i);
1177 if (!res) 1178 if (!res)
1178 return -ENODEV; 1179 return -ENODEV;
1179 smmu->regs[i] = devm_request_and_ioremap(&pdev->dev, res); 1180 smmu->regs[i] = devm_ioremap_resource(&pdev->dev, res);
1180 if (!smmu->regs[i]) 1181 if (IS_ERR(smmu->regs[i]))
1181 return -EBUSY; 1182 return PTR_ERR(smmu->regs[i]);
1182 } 1183 }
1183 1184
1184 err = of_get_dma_window(dev->of_node, NULL, 0, NULL, &base, &size); 1185 err = of_get_dma_window(dev->of_node, NULL, 0, NULL, &base, &size);
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index 70ecd0c19500..5313c9ea44dc 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig
@@ -389,8 +389,8 @@ config HISAX_TELES_CS
389comment "HiSax sub driver modules" 389comment "HiSax sub driver modules"
390 390
391config HISAX_ST5481 391config HISAX_ST5481
392 tristate "ST5481 USB ISDN modem (EXPERIMENTAL)" 392 tristate "ST5481 USB ISDN modem"
393 depends on USB && EXPERIMENTAL 393 depends on USB
394 select ISDN_HDLC 394 select ISDN_HDLC
395 select CRC_CCITT 395 select CRC_CCITT
396 select BITREVERSE 396 select BITREVERSE
@@ -399,20 +399,19 @@ config HISAX_ST5481
399 e.g. the BeWan Gazel 128 USB 399 e.g. the BeWan Gazel 128 USB
400 400
401config HISAX_HFCUSB 401config HISAX_HFCUSB
402 tristate "HFC USB based ISDN modems (EXPERIMENTAL)" 402 tristate "HFC USB based ISDN modems"
403 depends on USB && EXPERIMENTAL 403 depends on USB
404 help 404 help
405 This enables the driver for HFC USB based ISDN modems. 405 This enables the driver for HFC USB based ISDN modems.
406 406
407config HISAX_HFC4S8S 407config HISAX_HFC4S8S
408 tristate "HFC-4S/8S based ISDN cards (EXPERIMENTAL)" 408 tristate "HFC-4S/8S based ISDN cards"
409 depends on EXPERIMENTAL
410 help 409 help
411 This enables the driver for HFC-4S/8S based ISDN cards. 410 This enables the driver for HFC-4S/8S based ISDN cards.
412 411
413config HISAX_FRITZ_PCIPNP 412config HISAX_FRITZ_PCIPNP
414 tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)" 413 tristate "AVM Fritz!Card PCI/PCIv2/PnP support"
415 depends on PCI && EXPERIMENTAL 414 depends on PCI
416 help 415 help
417 This enables the driver for the AVM Fritz!Card PCI, 416 This enables the driver for the AVM Fritz!Card PCI,
418 Fritz!Card PCI v2 and Fritz!Card PnP. 417 Fritz!Card PCI v2 and Fritz!Card PnP.
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c
index 3e245712bba7..da30c5cb9609 100644
--- a/drivers/isdn/mISDN/core.c
+++ b/drivers/isdn/mISDN/core.c
@@ -168,13 +168,13 @@ static struct class mISDN_class = {
168}; 168};
169 169
170static int 170static int
171_get_mdevice(struct device *dev, void *id) 171_get_mdevice(struct device *dev, const void *id)
172{ 172{
173 struct mISDNdevice *mdev = dev_to_mISDN(dev); 173 struct mISDNdevice *mdev = dev_to_mISDN(dev);
174 174
175 if (!mdev) 175 if (!mdev)
176 return 0; 176 return 0;
177 if (mdev->id != *(u_int *)id) 177 if (mdev->id != *(const u_int *)id)
178 return 0; 178 return 0;
179 return 1; 179 return 1;
180} 180}
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index b58bc8a14b9c..4469b441b785 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -154,7 +154,7 @@ config LEDS_HP6XX
154config LEDS_PCA9532 154config LEDS_PCA9532
155 tristate "LED driver for PCA9532 dimmer" 155 tristate "LED driver for PCA9532 dimmer"
156 depends on LEDS_CLASS 156 depends on LEDS_CLASS
157 depends on I2C && INPUT && EXPERIMENTAL 157 depends on I2C && INPUT
158 help 158 help
159 This option enables support for NXP pca9532 159 This option enables support for NXP pca9532
160 LED controller. It is generally only useful 160 LED controller. It is generally only useful
diff --git a/drivers/lguest/Kconfig b/drivers/lguest/Kconfig
index 34ae49dc557c..6cdcdb0d3d58 100644
--- a/drivers/lguest/Kconfig
+++ b/drivers/lguest/Kconfig
@@ -1,6 +1,6 @@
1config LGUEST 1config LGUEST
2 tristate "Linux hypervisor example code" 2 tristate "Linux hypervisor example code"
3 depends on X86_32 && EXPERIMENTAL && EVENTFD 3 depends on X86_32 && EVENTFD
4 select HVC_DRIVER 4 select HVC_DRIVER
5 ---help--- 5 ---help---
6 This is a very simple module which allows you to run 6 This is a very simple module which allows you to run
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig
index a555da64224e..696238b9f0f7 100644
--- a/drivers/macintosh/Kconfig
+++ b/drivers/macintosh/Kconfig
@@ -278,7 +278,7 @@ config PMAC_RACKMETER
278 278
279config SENSORS_AMS 279config SENSORS_AMS
280 tristate "Apple Motion Sensor driver" 280 tristate "Apple Motion Sensor driver"
281 depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y) || (ADB_PMU && !I2C) || I2C) && EXPERIMENTAL 281 depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y) || (ADB_PMU && !I2C) || I2C)
282 select INPUT_POLLDEV 282 select INPUT_POLLDEV
283 help 283 help
284 Support for the motion sensor included in PowerBooks. Includes 284 Support for the motion sensor included in PowerBooks. Includes
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 4ef0d80b57f4..8567a7a64104 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -79,8 +79,7 @@ config MEDIA_RC_SUPPORT
79# 79#
80 80
81config MEDIA_CONTROLLER 81config MEDIA_CONTROLLER
82 bool "Media Controller API (EXPERIMENTAL)" 82 bool "Media Controller API"
83 depends on EXPERIMENTAL
84 depends on MEDIA_CAMERA_SUPPORT 83 depends on MEDIA_CAMERA_SUPPORT
85 ---help--- 84 ---help---
86 Enable the media controller API used to query media devices internal 85 Enable the media controller API used to query media devices internal
@@ -100,8 +99,8 @@ config VIDEO_DEV
100 default y 99 default y
101 100
102config VIDEO_V4L2_SUBDEV_API 101config VIDEO_V4L2_SUBDEV_API
103 bool "V4L2 sub-device userspace API (EXPERIMENTAL)" 102 bool "V4L2 sub-device userspace API"
104 depends on VIDEO_DEV && MEDIA_CONTROLLER && EXPERIMENTAL 103 depends on VIDEO_DEV && MEDIA_CONTROLLER
105 ---help--- 104 ---help---
106 Enables the V4L2 sub-device pad-level userspace API used to configure 105 Enables the V4L2 sub-device pad-level userspace API used to configure
107 video format, size and frame rate between hardware blocks. 106 video format, size and frame rate between hardware blocks.
diff --git a/drivers/media/pci/cx25821/Kconfig b/drivers/media/pci/cx25821/Kconfig
index 5f6b54213713..4017c9420348 100644
--- a/drivers/media/pci/cx25821/Kconfig
+++ b/drivers/media/pci/cx25821/Kconfig
@@ -18,7 +18,7 @@ config VIDEO_CX25821
18 18
19config VIDEO_CX25821_ALSA 19config VIDEO_CX25821_ALSA
20 tristate "Conexant 25821 DMA audio support" 20 tristate "Conexant 25821 DMA audio support"
21 depends on VIDEO_CX25821 && SND && EXPERIMENTAL 21 depends on VIDEO_CX25821 && SND
22 select SND_PCM 22 select SND_PCM
23 ---help--- 23 ---help---
24 This is a video4linux driver for direct (DMA) audio on 24 This is a video4linux driver for direct (DMA) audio on
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index 3dcfea612c42..33241120a58c 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -98,8 +98,8 @@ config VIDEO_OMAP2
98 This is a v4l2 driver for the TI OMAP2 camera capture interface 98 This is a v4l2 driver for the TI OMAP2 camera capture interface
99 99
100config VIDEO_OMAP3 100config VIDEO_OMAP3
101 tristate "OMAP 3 Camera support (EXPERIMENTAL)" 101 tristate "OMAP 3 Camera support"
102 depends on OMAP_IOVMM && VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && ARCH_OMAP3 && EXPERIMENTAL 102 depends on OMAP_IOVMM && VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && ARCH_OMAP3
103 ---help--- 103 ---help---
104 Driver for an OMAP 3 camera controller. 104 Driver for an OMAP 3 camera controller.
105 105
@@ -169,8 +169,8 @@ config VIDEO_SAMSUNG_S5P_G2D
169 2d graphics accelerator. 169 2d graphics accelerator.
170 170
171config VIDEO_SAMSUNG_S5P_JPEG 171config VIDEO_SAMSUNG_S5P_JPEG
172 tristate "Samsung S5P/Exynos4 JPEG codec driver (EXPERIMENTAL)" 172 tristate "Samsung S5P/Exynos4 JPEG codec driver"
173 depends on VIDEO_DEV && VIDEO_V4L2 && PLAT_S5P && EXPERIMENTAL 173 depends on VIDEO_DEV && VIDEO_V4L2 && PLAT_S5P
174 select VIDEOBUF2_DMA_CONTIG 174 select VIDEOBUF2_DMA_CONTIG
175 select V4L2_MEM2MEM_DEV 175 select V4L2_MEM2MEM_DEV
176 ---help--- 176 ---help---
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
index 2b1b9f30e1f9..c1a07133cc56 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -1098,11 +1098,9 @@ static int gsc_probe(struct platform_device *pdev)
1098 mutex_init(&gsc->lock); 1098 mutex_init(&gsc->lock);
1099 1099
1100 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1100 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1101 gsc->regs = devm_request_and_ioremap(dev, res); 1101 gsc->regs = devm_ioremap_resource(dev, res);
1102 if (!gsc->regs) { 1102 if (IS_ERR(gsc->regs))
1103 dev_err(dev, "failed to map registers\n"); 1103 return PTR_ERR(gsc->regs);
1104 return -ENOENT;
1105 }
1106 1104
1107 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1105 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
1108 if (!res) { 1106 if (!res) {
diff --git a/drivers/media/platform/mx2_emmaprp.c b/drivers/media/platform/mx2_emmaprp.c
index 6b155d7be8e0..4b9e0a28616a 100644
--- a/drivers/media/platform/mx2_emmaprp.c
+++ b/drivers/media/platform/mx2_emmaprp.c
@@ -941,9 +941,9 @@ static int emmaprp_probe(struct platform_device *pdev)
941 941
942 platform_set_drvdata(pdev, pcdev); 942 platform_set_drvdata(pdev, pcdev);
943 943
944 pcdev->base_emma = devm_request_and_ioremap(&pdev->dev, res_emma); 944 pcdev->base_emma = devm_ioremap_resource(&pdev->dev, res_emma);
945 if (!pcdev->base_emma) { 945 if (IS_ERR(pcdev->base_emma)) {
946 ret = -ENXIO; 946 ret = PTR_ERR(pcdev->base_emma);
947 goto rel_vdev; 947 goto rel_vdev;
948 } 948 }
949 949
diff --git a/drivers/media/platform/s3c-camif/camif-core.c b/drivers/media/platform/s3c-camif/camif-core.c
index e2716c35f8f1..09a8c9cac5c9 100644
--- a/drivers/media/platform/s3c-camif/camif-core.c
+++ b/drivers/media/platform/s3c-camif/camif-core.c
@@ -433,11 +433,9 @@ static int s3c_camif_probe(struct platform_device *pdev)
433 433
434 mres = platform_get_resource(pdev, IORESOURCE_MEM, 0); 434 mres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
435 435
436 camif->io_base = devm_request_and_ioremap(dev, mres); 436 camif->io_base = devm_ioremap_resource(dev, mres);
437 if (!camif->io_base) { 437 if (IS_ERR(camif->io_base))
438 dev_err(dev, "failed to obtain I/O memory\n"); 438 return PTR_ERR(camif->io_base);
439 return -ENOENT;
440 }
441 439
442 ret = camif_request_irqs(pdev, camif); 440 ret = camif_request_irqs(pdev, camif);
443 if (ret < 0) 441 if (ret < 0)
diff --git a/drivers/media/platform/s5p-fimc/Kconfig b/drivers/media/platform/s5p-fimc/Kconfig
index c16b20d86ed2..f997a5203b7c 100644
--- a/drivers/media/platform/s5p-fimc/Kconfig
+++ b/drivers/media/platform/s5p-fimc/Kconfig
@@ -2,7 +2,6 @@
2config VIDEO_SAMSUNG_S5P_FIMC 2config VIDEO_SAMSUNG_S5P_FIMC
3 bool "Samsung S5P/EXYNOS SoC camera interface driver (experimental)" 3 bool "Samsung S5P/EXYNOS SoC camera interface driver (experimental)"
4 depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && PLAT_S5P && PM_RUNTIME 4 depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && PLAT_S5P && PM_RUNTIME
5 depends on EXPERIMENTAL
6 help 5 help
7 Say Y here to enable camera host interface devices for 6 Say Y here to enable camera host interface devices for
8 Samsung S5P and EXYNOS SoC series. 7 Samsung S5P and EXYNOS SoC series.
diff --git a/drivers/media/platform/s5p-fimc/fimc-core.c b/drivers/media/platform/s5p-fimc/fimc-core.c
index 545b46ae12a1..acc0f84ffa56 100644
--- a/drivers/media/platform/s5p-fimc/fimc-core.c
+++ b/drivers/media/platform/s5p-fimc/fimc-core.c
@@ -909,11 +909,9 @@ static int fimc_probe(struct platform_device *pdev)
909 mutex_init(&fimc->lock); 909 mutex_init(&fimc->lock);
910 910
911 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 911 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
912 fimc->regs = devm_request_and_ioremap(&pdev->dev, res); 912 fimc->regs = devm_ioremap_resource(&pdev->dev, res);
913 if (fimc->regs == NULL) { 913 if (IS_ERR(fimc->regs))
914 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 914 return PTR_ERR(fimc->regs);
915 return -ENOENT;
916 }
917 915
918 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 916 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
919 if (res == NULL) { 917 if (res == NULL) {
diff --git a/drivers/media/platform/s5p-fimc/fimc-lite.c b/drivers/media/platform/s5p-fimc/fimc-lite.c
index ed67220d0a64..67db9f8102e4 100644
--- a/drivers/media/platform/s5p-fimc/fimc-lite.c
+++ b/drivers/media/platform/s5p-fimc/fimc-lite.c
@@ -1426,11 +1426,9 @@ static int fimc_lite_probe(struct platform_device *pdev)
1426 mutex_init(&fimc->lock); 1426 mutex_init(&fimc->lock);
1427 1427
1428 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1428 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1429 fimc->regs = devm_request_and_ioremap(&pdev->dev, res); 1429 fimc->regs = devm_ioremap_resource(&pdev->dev, res);
1430 if (fimc->regs == NULL) { 1430 if (IS_ERR(fimc->regs))
1431 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 1431 return PTR_ERR(fimc->regs);
1432 return -ENOENT;
1433 }
1434 1432
1435 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1433 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
1436 if (res == NULL) { 1434 if (res == NULL) {
diff --git a/drivers/media/platform/s5p-fimc/mipi-csis.c b/drivers/media/platform/s5p-fimc/mipi-csis.c
index ec3fa7d75306..7abae012f55e 100644
--- a/drivers/media/platform/s5p-fimc/mipi-csis.c
+++ b/drivers/media/platform/s5p-fimc/mipi-csis.c
@@ -686,11 +686,9 @@ static int s5pcsis_probe(struct platform_device *pdev)
686 } 686 }
687 687
688 mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 688 mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
689 state->regs = devm_request_and_ioremap(&pdev->dev, mem_res); 689 state->regs = devm_ioremap_resource(&pdev->dev, mem_res);
690 if (state->regs == NULL) { 690 if (IS_ERR(state->regs))
691 dev_err(&pdev->dev, "Failed to request and remap io memory\n"); 691 return PTR_ERR(state->regs);
692 return -ENXIO;
693 }
694 692
695 state->irq = platform_get_irq(pdev, 0); 693 state->irq = platform_get_irq(pdev, 0);
696 if (state->irq < 0) { 694 if (state->irq < 0) {
diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c
index 1bfbc325836b..6ed259fb1046 100644
--- a/drivers/media/platform/s5p-g2d/g2d.c
+++ b/drivers/media/platform/s5p-g2d/g2d.c
@@ -708,11 +708,9 @@ static int g2d_probe(struct platform_device *pdev)
708 708
709 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 709 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
710 710
711 dev->regs = devm_request_and_ioremap(&pdev->dev, res); 711 dev->regs = devm_ioremap_resource(&pdev->dev, res);
712 if (dev->regs == NULL) { 712 if (IS_ERR(dev->regs))
713 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 713 return PTR_ERR(dev->regs);
714 return -ENOENT;
715 }
716 714
717 dev->clk = clk_get(&pdev->dev, "sclk_fimg2d"); 715 dev->clk = clk_get(&pdev->dev, "sclk_fimg2d");
718 if (IS_ERR_OR_NULL(dev->clk)) { 716 if (IS_ERR_OR_NULL(dev->clk)) {
diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c
index 17983c4c9a9a..3b023752bcb4 100644
--- a/drivers/media/platform/s5p-jpeg/jpeg-core.c
+++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c
@@ -1325,11 +1325,9 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
1325 /* memory-mapped registers */ 1325 /* memory-mapped registers */
1326 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1326 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1327 1327
1328 jpeg->regs = devm_request_and_ioremap(&pdev->dev, res); 1328 jpeg->regs = devm_ioremap_resource(&pdev->dev, res);
1329 if (jpeg->regs == NULL) { 1329 if (IS_ERR(jpeg->regs))
1330 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 1330 return PTR_ERR(jpeg->regs);
1331 return -ENOENT;
1332 }
1333 1331
1334 /* interrupt service routine registration */ 1332 /* interrupt service routine registration */
1335 jpeg->irq = ret = platform_get_irq(pdev, 0); 1333 jpeg->irq = ret = platform_get_irq(pdev, 0);
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c
index 681bc6ba149d..8b7fbc7cc04d 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
@@ -1047,11 +1047,9 @@ static int s5p_mfc_probe(struct platform_device *pdev)
1047 1047
1048 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1048 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1049 1049
1050 dev->regs_base = devm_request_and_ioremap(&pdev->dev, res); 1050 dev->regs_base = devm_ioremap_resource(&pdev->dev, res);
1051 if (dev->regs_base == NULL) { 1051 if (IS_ERR(dev->regs_base))
1052 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 1052 return PTR_ERR(dev->regs_base);
1053 return -ENOENT;
1054 }
1055 1053
1056 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1054 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
1057 if (res == NULL) { 1055 if (res == NULL) {
diff --git a/drivers/media/platform/s5p-tv/Kconfig b/drivers/media/platform/s5p-tv/Kconfig
index ea11a513033f..7b659bd09bfd 100644
--- a/drivers/media/platform/s5p-tv/Kconfig
+++ b/drivers/media/platform/s5p-tv/Kconfig
@@ -7,9 +7,8 @@
7# Licensed under GPL 7# Licensed under GPL
8 8
9config VIDEO_SAMSUNG_S5P_TV 9config VIDEO_SAMSUNG_S5P_TV
10 bool "Samsung TV driver for S5P platform (experimental)" 10 bool "Samsung TV driver for S5P platform"
11 depends on PLAT_S5P && PM_RUNTIME 11 depends on PLAT_S5P && PM_RUNTIME
12 depends on EXPERIMENTAL
13 default n 12 default n
14 ---help--- 13 ---help---
15 Say Y here to enable selecting the TV output devices for 14 Say Y here to enable selecting the TV output devices for
diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c
index 8bda2c908aba..1abdc7d9c744 100644
--- a/drivers/media/platform/soc_camera/mx2_camera.c
+++ b/drivers/media/platform/soc_camera/mx2_camera.c
@@ -1707,9 +1707,9 @@ static int mx27_camera_emma_init(struct platform_device *pdev)
1707 goto out; 1707 goto out;
1708 } 1708 }
1709 1709
1710 pcdev->base_emma = devm_request_and_ioremap(pcdev->dev, res_emma); 1710 pcdev->base_emma = devm_ioremap_resource(pcdev->dev, res_emma);
1711 if (!pcdev->base_emma) { 1711 if (IS_ERR(pcdev->base_emma)) {
1712 err = -EADDRNOTAVAIL; 1712 err = PTR_ERR(pcdev->base_emma);
1713 goto out; 1713 goto out;
1714 } 1714 }
1715 1715
@@ -1824,9 +1824,9 @@ static int mx2_camera_probe(struct platform_device *pdev)
1824 INIT_LIST_HEAD(&pcdev->discard); 1824 INIT_LIST_HEAD(&pcdev->discard);
1825 spin_lock_init(&pcdev->lock); 1825 spin_lock_init(&pcdev->lock);
1826 1826
1827 pcdev->base_csi = devm_request_and_ioremap(&pdev->dev, res_csi); 1827 pcdev->base_csi = devm_ioremap_resource(&pdev->dev, res_csi);
1828 if (!pcdev->base_csi) { 1828 if (IS_ERR(pcdev->base_csi)) {
1829 err = -EADDRNOTAVAIL; 1829 err = PTR_ERR(pcdev->base_csi);
1830 goto exit; 1830 goto exit;
1831 } 1831 }
1832 1832
diff --git a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig
index 834bfecbed73..7a622dbe9b6d 100644
--- a/drivers/media/usb/dvb-usb-v2/Kconfig
+++ b/drivers/media/usb/dvb-usb-v2/Kconfig
@@ -134,7 +134,7 @@ config DVB_USB_MXL111SF
134 134
135config DVB_USB_RTL28XXU 135config DVB_USB_RTL28XXU
136 tristate "Realtek RTL28xxU DVB USB support" 136 tristate "Realtek RTL28xxU DVB USB support"
137 depends on DVB_USB_V2 && EXPERIMENTAL 137 depends on DVB_USB_V2
138 select DVB_RTL2830 138 select DVB_RTL2830
139 select DVB_RTL2832 139 select DVB_RTL2832
140 select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT 140 select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT
diff --git a/drivers/media/usb/pvrusb2/Kconfig b/drivers/media/usb/pvrusb2/Kconfig
index 32b11c15bb1a..60a2604e4cb3 100644
--- a/drivers/media/usb/pvrusb2/Kconfig
+++ b/drivers/media/usb/pvrusb2/Kconfig
@@ -17,9 +17,9 @@ config VIDEO_PVRUSB2
17 module will be called pvrusb2 17 module will be called pvrusb2
18 18
19config VIDEO_PVRUSB2_SYSFS 19config VIDEO_PVRUSB2_SYSFS
20 bool "pvrusb2 sysfs support (EXPERIMENTAL)" 20 bool "pvrusb2 sysfs support"
21 default y 21 default y
22 depends on VIDEO_PVRUSB2 && SYSFS && EXPERIMENTAL 22 depends on VIDEO_PVRUSB2 && SYSFS
23 ---help--- 23 ---help---
24 This option enables the operation of a sysfs based 24 This option enables the operation of a sysfs based
25 interface for query and control of the pvrusb2 driver. 25 interface for query and control of the pvrusb2 driver.
@@ -33,9 +33,9 @@ config VIDEO_PVRUSB2_SYSFS
33 Note: This feature is experimental and subject to change. 33 Note: This feature is experimental and subject to change.
34 34
35config VIDEO_PVRUSB2_DVB 35config VIDEO_PVRUSB2_DVB
36 bool "pvrusb2 ATSC/DVB support (EXPERIMENTAL)" 36 bool "pvrusb2 ATSC/DVB support"
37 default y 37 default y
38 depends on VIDEO_PVRUSB2 && DVB_CORE && EXPERIMENTAL 38 depends on VIDEO_PVRUSB2 && DVB_CORE
39 select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT 39 select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT
40 select DVB_S5H1409 if MEDIA_SUBDRV_AUTOSELECT 40 select DVB_S5H1409 if MEDIA_SUBDRV_AUTOSELECT
41 select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT 41 select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT
diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
index 06d31c99e6ac..df0873694858 100644
--- a/drivers/memory/emif.c
+++ b/drivers/memory/emif.c
@@ -10,6 +10,7 @@
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12 */ 12 */
13#include <linux/err.h>
13#include <linux/kernel.h> 14#include <linux/kernel.h>
14#include <linux/reboot.h> 15#include <linux/reboot.h>
15#include <linux/platform_data/emif_plat.h> 16#include <linux/platform_data/emif_plat.h>
@@ -1468,12 +1469,9 @@ static int __init_or_module emif_probe(struct platform_device *pdev)
1468 goto error; 1469 goto error;
1469 } 1470 }
1470 1471
1471 emif->base = devm_request_and_ioremap(emif->dev, res); 1472 emif->base = devm_ioremap_resource(emif->dev, res);
1472 if (!emif->base) { 1473 if (IS_ERR(emif->base))
1473 dev_err(emif->dev, "%s: devm_request_and_ioremap() failed\n",
1474 __func__);
1475 goto error; 1474 goto error;
1476 }
1477 1475
1478 irq = platform_get_irq(pdev, 0); 1476 irq = platform_get_irq(pdev, 0);
1479 if (irq < 0) { 1477 if (irq < 0) {
diff --git a/drivers/memory/tegra20-mc.c b/drivers/memory/tegra20-mc.c
index 186f27d9e5f1..2ca5f2814f4a 100644
--- a/drivers/memory/tegra20-mc.c
+++ b/drivers/memory/tegra20-mc.c
@@ -17,6 +17,7 @@
17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18 */ 18 */
19 19
20#include <linux/err.h>
20#include <linux/kernel.h> 21#include <linux/kernel.h>
21#include <linux/module.h> 22#include <linux/module.h>
22#include <linux/ratelimit.h> 23#include <linux/ratelimit.h>
@@ -216,9 +217,9 @@ static int tegra20_mc_probe(struct platform_device *pdev)
216 res = platform_get_resource(pdev, IORESOURCE_MEM, i); 217 res = platform_get_resource(pdev, IORESOURCE_MEM, i);
217 if (!res) 218 if (!res)
218 return -ENODEV; 219 return -ENODEV;
219 mc->regs[i] = devm_request_and_ioremap(&pdev->dev, res); 220 mc->regs[i] = devm_ioremap_resource(&pdev->dev, res);
220 if (!mc->regs[i]) 221 if (IS_ERR(mc->regs[i]))
221 return -EBUSY; 222 return PTR_ERR(mc->regs[i]);
222 } 223 }
223 224
224 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 225 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
diff --git a/drivers/memory/tegra30-mc.c b/drivers/memory/tegra30-mc.c
index 0b7ab9332a18..0b975986777d 100644
--- a/drivers/memory/tegra30-mc.c
+++ b/drivers/memory/tegra30-mc.c
@@ -17,6 +17,7 @@
17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18 */ 18 */
19 19
20#include <linux/err.h>
20#include <linux/kernel.h> 21#include <linux/kernel.h>
21#include <linux/module.h> 22#include <linux/module.h>
22#include <linux/ratelimit.h> 23#include <linux/ratelimit.h>
@@ -336,9 +337,9 @@ static int tegra30_mc_probe(struct platform_device *pdev)
336 res = platform_get_resource(pdev, IORESOURCE_MEM, i); 337 res = platform_get_resource(pdev, IORESOURCE_MEM, i);
337 if (!res) 338 if (!res)
338 return -ENODEV; 339 return -ENODEV;
339 mc->regs[i] = devm_request_and_ioremap(&pdev->dev, res); 340 mc->regs[i] = devm_ioremap_resource(&pdev->dev, res);
340 if (!mc->regs[i]) 341 if (IS_ERR(mc->regs[i]))
341 return -EBUSY; 342 return PTR_ERR(mc->regs[i]);
342 } 343 }
343 344
344 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 345 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
diff --git a/drivers/memstick/Kconfig b/drivers/memstick/Kconfig
index f0ca41c20323..1314605d791f 100644
--- a/drivers/memstick/Kconfig
+++ b/drivers/memstick/Kconfig
@@ -3,7 +3,7 @@
3# 3#
4 4
5menuconfig MEMSTICK 5menuconfig MEMSTICK
6 tristate "Sony MemoryStick card support (EXPERIMENTAL)" 6 tristate "Sony MemoryStick card support"
7 help 7 help
8 Sony MemoryStick is a proprietary storage/extension card protocol. 8 Sony MemoryStick is a proprietary storage/extension card protocol.
9 9
diff --git a/drivers/memstick/host/Kconfig b/drivers/memstick/host/Kconfig
index 4f7a17fd1aa7..1b37cf8cd204 100644
--- a/drivers/memstick/host/Kconfig
+++ b/drivers/memstick/host/Kconfig
@@ -5,8 +5,8 @@
5comment "MemoryStick Host Controller Drivers" 5comment "MemoryStick Host Controller Drivers"
6 6
7config MEMSTICK_TIFM_MS 7config MEMSTICK_TIFM_MS
8 tristate "TI Flash Media MemoryStick Interface support (EXPERIMENTAL)" 8 tristate "TI Flash Media MemoryStick Interface support "
9 depends on EXPERIMENTAL && PCI 9 depends on PCI
10 select TIFM_CORE 10 select TIFM_CORE
11 help 11 help
12 Say Y here if you want to be able to access MemoryStick cards with 12 Say Y here if you want to be able to access MemoryStick cards with
@@ -21,8 +21,8 @@ config MEMSTICK_TIFM_MS
21 module will be called tifm_ms. 21 module will be called tifm_ms.
22 22
23config MEMSTICK_JMICRON_38X 23config MEMSTICK_JMICRON_38X
24 tristate "JMicron JMB38X MemoryStick interface support (EXPERIMENTAL)" 24 tristate "JMicron JMB38X MemoryStick interface support"
25 depends on EXPERIMENTAL && PCI 25 depends on PCI
26 26
27 help 27 help
28 Say Y here if you want to be able to access MemoryStick cards with 28 Say Y here if you want to be able to access MemoryStick cards with
@@ -32,8 +32,8 @@ config MEMSTICK_JMICRON_38X
32 module will be called jmb38x_ms. 32 module will be called jmb38x_ms.
33 33
34config MEMSTICK_R592 34config MEMSTICK_R592
35 tristate "Ricoh R5C592 MemoryStick interface support (EXPERIMENTAL)" 35 tristate "Ricoh R5C592 MemoryStick interface support"
36 depends on EXPERIMENTAL && PCI 36 depends on PCI
37 37
38 help 38 help
39 Say Y here if you want to be able to access MemoryStick cards with 39 Say Y here if you want to be able to access MemoryStick cards with
diff --git a/drivers/mfd/intel_msic.c b/drivers/mfd/intel_msic.c
index ab8d0b2739b2..1804331bd52c 100644
--- a/drivers/mfd/intel_msic.c
+++ b/drivers/mfd/intel_msic.c
@@ -9,6 +9,7 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12#include <linux/err.h>
12#include <linux/gpio.h> 13#include <linux/gpio.h>
13#include <linux/io.h> 14#include <linux/io.h>
14#include <linux/module.h> 15#include <linux/module.h>
@@ -424,11 +425,9 @@ static int intel_msic_probe(struct platform_device *pdev)
424 return -ENODEV; 425 return -ENODEV;
425 } 426 }
426 427
427 msic->irq_base = devm_request_and_ioremap(&pdev->dev, res); 428 msic->irq_base = devm_ioremap_resource(&pdev->dev, res);
428 if (!msic->irq_base) { 429 if (IS_ERR(msic->irq_base))
429 dev_err(&pdev->dev, "failed to map SRAM memory\n"); 430 return PTR_ERR(msic->irq_base);
430 return -ENOMEM;
431 }
432 431
433 platform_set_drvdata(pdev, msic); 432 platform_set_drvdata(pdev, msic);
434 433
diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
index bd90dd23242e..c09c28f92055 100644
--- a/drivers/misc/atmel-ssc.c
+++ b/drivers/misc/atmel-ssc.c
@@ -159,11 +159,9 @@ static int ssc_probe(struct platform_device *pdev)
159 return -ENXIO; 159 return -ENXIO;
160 } 160 }
161 161
162 ssc->regs = devm_request_and_ioremap(&pdev->dev, regs); 162 ssc->regs = devm_ioremap_resource(&pdev->dev, regs);
163 if (!ssc->regs) { 163 if (IS_ERR(ssc->regs))
164 dev_dbg(&pdev->dev, "ioremap failed\n"); 164 return PTR_ERR(ssc->regs);
165 return -EINVAL;
166 }
167 165
168 ssc->phybase = regs->start; 166 ssc->phybase = regs->start;
169 167
diff --git a/drivers/mmc/core/Kconfig b/drivers/mmc/core/Kconfig
index ef103871517f..269d072ef55e 100644
--- a/drivers/mmc/core/Kconfig
+++ b/drivers/mmc/core/Kconfig
@@ -18,8 +18,7 @@ config MMC_UNSAFE_RESUME
18 module parameter "removable=0" or "removable=1". 18 module parameter "removable=0" or "removable=1".
19 19
20config MMC_CLKGATE 20config MMC_CLKGATE
21 bool "MMC host clock gating (EXPERIMENTAL)" 21 bool "MMC host clock gating"
22 depends on EXPERIMENTAL
23 help 22 help
24 This will attempt to aggressively gate the clock to the MMC card. 23 This will attempt to aggressively gate the clock to the MMC card.
25 This is done to save power due to gating off the logic and bus 24 This is done to save power due to gating off the logic and bus
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 8d13c6594520..cc8a8fad455a 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -69,7 +69,7 @@ config MMC_SDHCI_PCI
69 If unsure, say N. 69 If unsure, say N.
70 70
71config MMC_RICOH_MMC 71config MMC_RICOH_MMC
72 bool "Ricoh MMC Controller Disabler (EXPERIMENTAL)" 72 bool "Ricoh MMC Controller Disabler"
73 depends on MMC_SDHCI_PCI 73 depends on MMC_SDHCI_PCI
74 help 74 help
75 This adds a pci quirk to disable Ricoh MMC Controller. This 75 This adds a pci quirk to disable Ricoh MMC Controller. This
@@ -186,9 +186,6 @@ config MMC_SDHCI_S3C
186 often referrered to as the HSMMC block in some of the Samsung S3C 186 often referrered to as the HSMMC block in some of the Samsung S3C
187 range of SoC. 187 range of SoC.
188 188
189 Note, due to the problems with DMA, the DMA support is only
190 available with CONFIG_EXPERIMENTAL is selected.
191
192 If you have a controller with this interface, say Y or M here. 189 If you have a controller with this interface, say Y or M here.
193 190
194 If unsure, say N. 191 If unsure, say N.
@@ -233,7 +230,7 @@ config MMC_SDHCI_SPEAR
233 230
234config MMC_SDHCI_S3C_DMA 231config MMC_SDHCI_S3C_DMA
235 bool "DMA support on S3C SDHCI" 232 bool "DMA support on S3C SDHCI"
236 depends on MMC_SDHCI_S3C && EXPERIMENTAL 233 depends on MMC_SDHCI_S3C
237 help 234 help
238 Enable DMA support on the Samsung S3C SDHCI glue. The DMA 235 Enable DMA support on the Samsung S3C SDHCI glue. The DMA
239 has proved to be problematic if the controller encounters 236 has proved to be problematic if the controller encounters
@@ -330,8 +327,8 @@ config MMC_MXS
330 If unsure, say N. 327 If unsure, say N.
331 328
332config MMC_TIFM_SD 329config MMC_TIFM_SD
333 tristate "TI Flash Media MMC/SD Interface support (EXPERIMENTAL)" 330 tristate "TI Flash Media MMC/SD Interface support"
334 depends on EXPERIMENTAL && PCI 331 depends on PCI
335 select TIFM_CORE 332 select TIFM_CORE
336 help 333 help
337 Say Y here if you want to be able to access MMC/SD cards with 334 Say Y here if you want to be able to access MMC/SD cards with
@@ -410,8 +407,7 @@ config MMC_S3C_PIO
410 the S3C MCI driver. 407 the S3C MCI driver.
411 408
412config MMC_S3C_DMA 409config MMC_S3C_DMA
413 bool "Use DMA transfers only (EXPERIMENTAL)" 410 bool "Use DMA transfers only"
414 depends on EXPERIMENTAL
415 help 411 help
416 Use DMA to transfer data between memory and the hardare. 412 Use DMA to transfer data between memory and the hardare.
417 413
@@ -420,7 +416,7 @@ config MMC_S3C_DMA
420 option is useful. 416 option is useful.
421 417
422config MMC_S3C_PIODMA 418config MMC_S3C_PIODMA
423 bool "Support for both PIO and DMA (EXPERIMENTAL)" 419 bool "Support for both PIO and DMA"
424 help 420 help
425 Compile both the PIO and DMA transfer routines into the 421 Compile both the PIO and DMA transfer routines into the
426 driver and let the platform select at run-time which one 422 driver and let the platform select at run-time which one
@@ -431,8 +427,8 @@ config MMC_S3C_PIODMA
431endchoice 427endchoice
432 428
433config MMC_SDRICOH_CS 429config MMC_SDRICOH_CS
434 tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)" 430 tristate "MMC/SD driver for Ricoh Bay1Controllers"
435 depends on EXPERIMENTAL && PCI && PCMCIA 431 depends on PCI && PCMCIA
436 help 432 help
437 Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA 433 Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
438 card whenever you insert a MMC or SD card into the card slot. 434 card whenever you insert a MMC or SD card into the card slot.
diff --git a/drivers/mmc/host/dw_mmc-pltfm.c b/drivers/mmc/host/dw_mmc-pltfm.c
index 5e1fb1d2c422..41c27b74b003 100644
--- a/drivers/mmc/host/dw_mmc-pltfm.c
+++ b/drivers/mmc/host/dw_mmc-pltfm.c
@@ -10,6 +10,7 @@
10 * (at your option) any later version. 10 * (at your option) any later version.
11 */ 11 */
12 12
13#include <linux/err.h>
13#include <linux/interrupt.h> 14#include <linux/interrupt.h>
14#include <linux/module.h> 15#include <linux/module.h>
15#include <linux/io.h> 16#include <linux/io.h>
@@ -46,9 +47,9 @@ int dw_mci_pltfm_register(struct platform_device *pdev,
46 host->dev = &pdev->dev; 47 host->dev = &pdev->dev;
47 host->irq_flags = 0; 48 host->irq_flags = 0;
48 host->pdata = pdev->dev.platform_data; 49 host->pdata = pdev->dev.platform_data;
49 host->regs = devm_request_and_ioremap(&pdev->dev, regs); 50 host->regs = devm_ioremap_resource(&pdev->dev, regs);
50 if (!host->regs) 51 if (IS_ERR(host->regs))
51 return -ENOMEM; 52 return PTR_ERR(host->regs);
52 53
53 if (drv_data && drv_data->init) { 54 if (drv_data && drv_data->init) {
54 ret = drv_data->init(host); 55 ret = drv_data->init(host);
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index 206fe499ded5..5b665551a6f3 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -614,9 +614,9 @@ static int mxs_mmc_probe(struct platform_device *pdev)
614 host = mmc_priv(mmc); 614 host = mmc_priv(mmc);
615 ssp = &host->ssp; 615 ssp = &host->ssp;
616 ssp->dev = &pdev->dev; 616 ssp->dev = &pdev->dev;
617 ssp->base = devm_request_and_ioremap(&pdev->dev, iores); 617 ssp->base = devm_ioremap_resource(&pdev->dev, iores);
618 if (!ssp->base) { 618 if (IS_ERR(ssp->base)) {
619 ret = -EADDRNOTAVAIL; 619 ret = PTR_ERR(ssp->base);
620 goto out_mmc_free; 620 goto out_mmc_free;
621 } 621 }
622 622
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 82a8de148a8f..a0c621421ee8 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -651,10 +651,9 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
651#endif 651#endif
652 652
653 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 653 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
654 host->ioaddr = devm_request_and_ioremap(&pdev->dev, res); 654 host->ioaddr = devm_ioremap_resource(&pdev->dev, res);
655 if (!host->ioaddr) { 655 if (IS_ERR(host->ioaddr)) {
656 dev_err(dev, "failed to map registers\n"); 656 ret = PTR_ERR(host->ioaddr);
657 ret = -ENXIO;
658 goto err_req_regs; 657 goto err_req_regs;
659 } 658 }
660 659
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 73fcbbeb78d0..03f2eb5627ec 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -291,7 +291,7 @@ config SSFDC
291 291
292config SM_FTL 292config SM_FTL
293 tristate "SmartMedia/xD new translation layer" 293 tristate "SmartMedia/xD new translation layer"
294 depends on EXPERIMENTAL && BLOCK 294 depends on BLOCK
295 select MTD_BLKDEVS 295 select MTD_BLKDEVS
296 select MTD_NAND_ECC 296 select MTD_NAND_ECC
297 help 297 help
diff --git a/drivers/mtd/chips/Kconfig b/drivers/mtd/chips/Kconfig
index e469b01d40d2..c219e3d098d9 100644
--- a/drivers/mtd/chips/Kconfig
+++ b/drivers/mtd/chips/Kconfig
@@ -225,7 +225,7 @@ config MTD_ABSENT
225 225
226config MTD_XIP 226config MTD_XIP
227 bool "XIP aware MTD support" 227 bool "XIP aware MTD support"
228 depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && EXPERIMENTAL && ARCH_MTD_XIP 228 depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && ARCH_MTD_XIP
229 default y if XIP_KERNEL 229 default y if XIP_KERNEL
230 help 230 help
231 This allows MTD support to work with flash memory which is also 231 This allows MTD support to work with flash memory which is also
diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig
index 46dcb54c32ec..12311f506ca1 100644
--- a/drivers/mtd/devices/Kconfig
+++ b/drivers/mtd/devices/Kconfig
@@ -52,7 +52,7 @@ config MTD_MS02NV
52 52
53config MTD_DATAFLASH 53config MTD_DATAFLASH
54 tristate "Support for AT45xxx DataFlash" 54 tristate "Support for AT45xxx DataFlash"
55 depends on SPI_MASTER && EXPERIMENTAL 55 depends on SPI_MASTER
56 help 56 help
57 This enables access to AT45xxx DataFlash chips, using SPI. 57 This enables access to AT45xxx DataFlash chips, using SPI.
58 Sometimes DataFlash chips are packaged inside MMC-format 58 Sometimes DataFlash chips are packaged inside MMC-format
@@ -81,7 +81,7 @@ config MTD_DATAFLASH_OTP
81 81
82config MTD_M25P80 82config MTD_M25P80
83 tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)" 83 tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)"
84 depends on SPI_MASTER && EXPERIMENTAL 84 depends on SPI_MASTER
85 help 85 help
86 This enables access to most modern SPI flash chips, used for 86 This enables access to most modern SPI flash chips, used for
87 program and data storage. Series supported include Atmel AT26DF, 87 program and data storage. Series supported include Atmel AT26DF,
diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c
index 2aabd96bf0ff..8a82b8bc21e1 100644
--- a/drivers/mtd/devices/spear_smi.c
+++ b/drivers/mtd/devices/spear_smi.c
@@ -949,10 +949,9 @@ static int spear_smi_probe(struct platform_device *pdev)
949 949
950 smi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0); 950 smi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
951 951
952 dev->io_base = devm_request_and_ioremap(&pdev->dev, smi_base); 952 dev->io_base = devm_ioremap_resource(&pdev->dev, smi_base);
953 if (!dev->io_base) { 953 if (IS_ERR(dev->io_base)) {
954 ret = -EIO; 954 ret = PTR_ERR(dev->io_base);
955 dev_err(&pdev->dev, "devm_request_and_ioremap fail\n");
956 goto err; 955 goto err;
957 } 956 }
958 957
diff --git a/drivers/mtd/maps/autcpu12-nvram.c b/drivers/mtd/maps/autcpu12-nvram.c
index a2dc2ae4b24e..c3525d2a2fa8 100644
--- a/drivers/mtd/maps/autcpu12-nvram.c
+++ b/drivers/mtd/maps/autcpu12-nvram.c
@@ -16,6 +16,7 @@
16 * along with this program; if not, write to the Free Software 16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19#include <linux/err.h>
19#include <linux/sizes.h> 20#include <linux/sizes.h>
20 21
21#include <linux/types.h> 22#include <linux/types.h>
@@ -55,12 +56,10 @@ static int autcpu12_nvram_probe(struct platform_device *pdev)
55 priv->map.bankwidth = 4; 56 priv->map.bankwidth = 4;
56 priv->map.phys = res->start; 57 priv->map.phys = res->start;
57 priv->map.size = resource_size(res); 58 priv->map.size = resource_size(res);
58 priv->map.virt = devm_request_and_ioremap(&pdev->dev, res); 59 priv->map.virt = devm_ioremap_resource(&pdev->dev, res);
59 strcpy((char *)priv->map.name, res->name); 60 strcpy((char *)priv->map.name, res->name);
60 if (!priv->map.virt) { 61 if (IS_ERR(priv->map.virt))
61 dev_err(&pdev->dev, "failed to remap mem resource\n"); 62 return PTR_ERR(priv->map.virt);
62 return -EBUSY;
63 }
64 63
65 simple_map_init(&priv->map); 64 simple_map_init(&priv->map);
66 65
diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
index 3c3c791eb96a..d1da6ede3845 100644
--- a/drivers/mtd/maps/lantiq-flash.c
+++ b/drivers/mtd/maps/lantiq-flash.c
@@ -7,6 +7,7 @@
7 * Copyright (C) 2010 John Crispin <blogic@openwrt.org> 7 * Copyright (C) 2010 John Crispin <blogic@openwrt.org>
8 */ 8 */
9 9
10#include <linux/err.h>
10#include <linux/module.h> 11#include <linux/module.h>
11#include <linux/types.h> 12#include <linux/types.h>
12#include <linux/kernel.h> 13#include <linux/kernel.h>
@@ -136,10 +137,9 @@ ltq_mtd_probe(struct platform_device *pdev)
136 ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL); 137 ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL);
137 ltq_mtd->map->phys = ltq_mtd->res->start; 138 ltq_mtd->map->phys = ltq_mtd->res->start;
138 ltq_mtd->map->size = resource_size(ltq_mtd->res); 139 ltq_mtd->map->size = resource_size(ltq_mtd->res);
139 ltq_mtd->map->virt = devm_request_and_ioremap(&pdev->dev, ltq_mtd->res); 140 ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
140 if (!ltq_mtd->map->virt) { 141 if (IS_ERR(ltq_mtd->map->virt)) {
141 dev_err(&pdev->dev, "failed to remap mem resource\n"); 142 err = PTR_ERR(ltq_mtd->map->virt);
142 err = -EBUSY;
143 goto err_out; 143 goto err_out;
144 } 144 }
145 145
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 5819eb575210..81bf5e52601e 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -260,8 +260,7 @@ config MTD_NAND_S3C2410_CLKSTOP
260 approximately 5mA of power when there is nothing happening. 260 approximately 5mA of power when there is nothing happening.
261 261
262config MTD_NAND_DISKONCHIP 262config MTD_NAND_DISKONCHIP
263 tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)" 263 tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)"
264 depends on EXPERIMENTAL
265 depends on HAS_IOMEM 264 depends on HAS_IOMEM
266 select REED_SOLOMON 265 select REED_SOLOMON
267 select REED_SOLOMON_DEC16 266 select REED_SOLOMON_DEC16
@@ -331,8 +330,8 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
331 parameter "inftl_bbt_write=1". 330 parameter "inftl_bbt_write=1".
332 331
333config MTD_NAND_DOCG4 332config MTD_NAND_DOCG4
334 tristate "Support for DiskOnChip G4 (EXPERIMENTAL)" 333 tristate "Support for DiskOnChip G4"
335 depends on EXPERIMENTAL && HAS_IOMEM 334 depends on HAS_IOMEM
336 select BCH 335 select BCH
337 select BITREVERSE 336 select BITREVERSE
338 help 337 help
diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
index 67e62d3d495c..c543cc09f193 100644
--- a/drivers/mtd/nand/fsmc_nand.c
+++ b/drivers/mtd/nand/fsmc_nand.c
@@ -937,42 +937,35 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
937 if (!res) 937 if (!res)
938 return -EINVAL; 938 return -EINVAL;
939 939
940 host->data_va = devm_request_and_ioremap(&pdev->dev, res); 940 host->data_va = devm_ioremap_resource(&pdev->dev, res);
941 if (!host->data_va) { 941 if (IS_ERR(host->data_va))
942 dev_err(&pdev->dev, "data ioremap failed\n"); 942 return PTR_ERR(host->data_va);
943 return -ENOMEM; 943
944 }
945 host->data_pa = (dma_addr_t)res->start; 944 host->data_pa = (dma_addr_t)res->start;
946 945
947 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_addr"); 946 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_addr");
948 if (!res) 947 if (!res)
949 return -EINVAL; 948 return -EINVAL;
950 949
951 host->addr_va = devm_request_and_ioremap(&pdev->dev, res); 950 host->addr_va = devm_ioremap_resource(&pdev->dev, res);
952 if (!host->addr_va) { 951 if (IS_ERR(host->addr_va))
953 dev_err(&pdev->dev, "ale ioremap failed\n"); 952 return PTR_ERR(host->addr_va);
954 return -ENOMEM;
955 }
956 953
957 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_cmd"); 954 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_cmd");
958 if (!res) 955 if (!res)
959 return -EINVAL; 956 return -EINVAL;
960 957
961 host->cmd_va = devm_request_and_ioremap(&pdev->dev, res); 958 host->cmd_va = devm_ioremap_resource(&pdev->dev, res);
962 if (!host->cmd_va) { 959 if (IS_ERR(host->cmd_va))
963 dev_err(&pdev->dev, "ale ioremap failed\n"); 960 return PTR_ERR(host->cmd_va);
964 return -ENOMEM;
965 }
966 961
967 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fsmc_regs"); 962 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fsmc_regs");
968 if (!res) 963 if (!res)
969 return -EINVAL; 964 return -EINVAL;
970 965
971 host->regs_va = devm_request_and_ioremap(&pdev->dev, res); 966 host->regs_va = devm_ioremap_resource(&pdev->dev, res);
972 if (!host->regs_va) { 967 if (IS_ERR(host->regs_va))
973 dev_err(&pdev->dev, "regs ioremap failed\n"); 968 return PTR_ERR(host->regs_va);
974 return -ENOMEM;
975 }
976 969
977 host->clk = clk_get(&pdev->dev, NULL); 970 host->clk = clk_get(&pdev->dev, NULL);
978 if (IS_ERR(host->clk)) { 971 if (IS_ERR(host->clk)) {
diff --git a/drivers/mtd/nand/lpc32xx_mlc.c b/drivers/mtd/nand/lpc32xx_mlc.c
index f182befa7360..0ca22ae9135c 100644
--- a/drivers/mtd/nand/lpc32xx_mlc.c
+++ b/drivers/mtd/nand/lpc32xx_mlc.c
@@ -677,11 +677,10 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
677 return -ENXIO; 677 return -ENXIO;
678 } 678 }
679 679
680 host->io_base = devm_request_and_ioremap(&pdev->dev, rc); 680 host->io_base = devm_ioremap_resource(&pdev->dev, rc);
681 if (host->io_base == NULL) { 681 if (IS_ERR(host->io_base))
682 dev_err(&pdev->dev, "ioremap failed\n"); 682 return PTR_ERR(host->io_base);
683 return -EIO; 683
684 }
685 host->io_base_phy = rc->start; 684 host->io_base_phy = rc->start;
686 685
687 mtd = &host->mtd; 686 mtd = &host->mtd;
diff --git a/drivers/mtd/nand/lpc32xx_slc.c b/drivers/mtd/nand/lpc32xx_slc.c
index 030b78c62895..be94ed5abefb 100644
--- a/drivers/mtd/nand/lpc32xx_slc.c
+++ b/drivers/mtd/nand/lpc32xx_slc.c
@@ -778,11 +778,9 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
778 } 778 }
779 host->io_base_dma = rc->start; 779 host->io_base_dma = rc->start;
780 780
781 host->io_base = devm_request_and_ioremap(&pdev->dev, rc); 781 host->io_base = devm_ioremap_resource(&pdev->dev, rc);
782 if (host->io_base == NULL) { 782 if (IS_ERR(host->io_base))
783 dev_err(&pdev->dev, "ioremap failed\n"); 783 return PTR_ERR(host->io_base);
784 return -ENOMEM;
785 }
786 784
787 if (pdev->dev.of_node) 785 if (pdev->dev.of_node)
788 host->ncfg = lpc32xx_parse_dt(&pdev->dev); 786 host->ncfg = lpc32xx_parse_dt(&pdev->dev);
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index 45204e41a028..60ac5b98b718 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -1437,9 +1437,9 @@ static int mxcnd_probe(struct platform_device *pdev)
1437 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1437 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1438 if (!res) 1438 if (!res)
1439 return -ENODEV; 1439 return -ENODEV;
1440 host->regs_ip = devm_request_and_ioremap(&pdev->dev, res); 1440 host->regs_ip = devm_ioremap_resource(&pdev->dev, res);
1441 if (!host->regs_ip) 1441 if (IS_ERR(host->regs_ip))
1442 return -ENOMEM; 1442 return PTR_ERR(host->regs_ip);
1443 1443
1444 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 1444 res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
1445 } else { 1445 } else {
@@ -1449,9 +1449,9 @@ static int mxcnd_probe(struct platform_device *pdev)
1449 if (!res) 1449 if (!res)
1450 return -ENODEV; 1450 return -ENODEV;
1451 1451
1452 host->base = devm_request_and_ioremap(&pdev->dev, res); 1452 host->base = devm_ioremap_resource(&pdev->dev, res);
1453 if (!host->base) 1453 if (IS_ERR(host->base))
1454 return -ENOMEM; 1454 return PTR_ERR(host->base);
1455 1455
1456 host->main_area0 = host->base; 1456 host->main_area0 = host->base;
1457 1457
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index df954b4dcba2..d65afd23e171 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -952,10 +952,9 @@ static int s3c24xx_nand_probe(struct platform_device *pdev)
952 info->platform = plat; 952 info->platform = plat;
953 info->cpu_type = cpu_type; 953 info->cpu_type = cpu_type;
954 954
955 info->regs = devm_request_and_ioremap(&pdev->dev, res); 955 info->regs = devm_ioremap_resource(&pdev->dev, res);
956 if (info->regs == NULL) { 956 if (IS_ERR(info->regs)) {
957 dev_err(&pdev->dev, "cannot reserve register region\n"); 957 err = PTR_ERR(info->regs);
958 err = -EIO;
959 goto exit_error; 958 goto exit_error;
960 } 959 }
961 960
diff --git a/drivers/mtd/nand/txx9ndfmc.c b/drivers/mtd/nand/txx9ndfmc.c
index e3d7266e256f..e1e8748aa47b 100644
--- a/drivers/mtd/nand/txx9ndfmc.c
+++ b/drivers/mtd/nand/txx9ndfmc.c
@@ -9,6 +9,7 @@
9 * (C) Copyright TOSHIBA CORPORATION 2004-2007 9 * (C) Copyright TOSHIBA CORPORATION 2004-2007
10 * All Rights Reserved. 10 * All Rights Reserved.
11 */ 11 */
12#include <linux/err.h>
12#include <linux/init.h> 13#include <linux/init.h>
13#include <linux/slab.h> 14#include <linux/slab.h>
14#include <linux/module.h> 15#include <linux/module.h>
@@ -286,9 +287,9 @@ static int __init txx9ndfmc_probe(struct platform_device *dev)
286 drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL); 287 drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL);
287 if (!drvdata) 288 if (!drvdata)
288 return -ENOMEM; 289 return -ENOMEM;
289 drvdata->base = devm_request_and_ioremap(&dev->dev, res); 290 drvdata->base = devm_ioremap_resource(&dev->dev, res);
290 if (!drvdata->base) 291 if (IS_ERR(drvdata->base))
291 return -EBUSY; 292 return PTR_ERR(drvdata->base);
292 293
293 hold = plat->hold ?: 20; /* tDH */ 294 hold = plat->hold ?: 20; /* tDH */
294 spw = plat->spw ?: 90; /* max(tREADID, tWP, tRP) */ 295 spw = plat->spw ?: 90; /* max(tREADID, tWP, tRP) */
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 6a70184c3f23..2334190ff8d2 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -123,8 +123,7 @@ config IFB
123source "drivers/net/team/Kconfig" 123source "drivers/net/team/Kconfig"
124 124
125config MACVLAN 125config MACVLAN
126 tristate "MAC-VLAN support (EXPERIMENTAL)" 126 tristate "MAC-VLAN support"
127 depends on EXPERIMENTAL
128 ---help--- 127 ---help---
129 This allows one to create virtual interfaces that map packets to 128 This allows one to create virtual interfaces that map packets to
130 or from specific MAC addresses to a particular interface. 129 or from specific MAC addresses to a particular interface.
@@ -138,7 +137,7 @@ config MACVLAN
138 will be called macvlan. 137 will be called macvlan.
139 138
140config MACVTAP 139config MACVTAP
141 tristate "MAC-VLAN based tap driver (EXPERIMENTAL)" 140 tristate "MAC-VLAN based tap driver"
142 depends on MACVLAN 141 depends on MACVLAN
143 help 142 help
144 This adds a specialized tap character device driver that is based 143 This adds a specialized tap character device driver that is based
@@ -234,8 +233,8 @@ config VETH
234 versa. 233 versa.
235 234
236config VIRTIO_NET 235config VIRTIO_NET
237 tristate "Virtio network driver (EXPERIMENTAL)" 236 tristate "Virtio network driver"
238 depends on EXPERIMENTAL && VIRTIO 237 depends on VIRTIO
239 ---help--- 238 ---help---
240 This is the virtual network driver for virtio. It can be used with 239 This is the virtual network driver for virtio. It can be used with
241 lguest or QEMU based VMMs (like KVM or Xen). Say Y or M. 240 lguest or QEMU based VMMs (like KVM or Xen). Say Y or M.
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig
index 1b78ca7a9786..a5f91e1e8fe3 100644
--- a/drivers/net/ethernet/8390/Kconfig
+++ b/drivers/net/ethernet/8390/Kconfig
@@ -5,10 +5,7 @@
5config NET_VENDOR_8390 5config NET_VENDOR_8390
6 bool "National Semi-conductor 8390 devices" 6 bool "National Semi-conductor 8390 devices"
7 default y 7 default y
8 depends on NET_VENDOR_NATSEMI && (AMIGA_PCMCIA || PCI || SUPERH || \ 8 depends on NET_VENDOR_NATSEMI
9 ISA || MAC || M32R || MACH_TX49XX || \
10 H8300 || ARM || MIPS || ZORRO || PCMCIA || \
11 EXPERIMENTAL)
12 ---help--- 9 ---help---
13 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
14 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/atheros/Kconfig b/drivers/net/ethernet/atheros/Kconfig
index 1ed886d421f8..36d6abd1cfff 100644
--- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig
@@ -44,8 +44,8 @@ config ATL1
44 will be called atl1. 44 will be called atl1.
45 45
46config ATL1E 46config ATL1E
47 tristate "Atheros L1E Gigabit Ethernet support (EXPERIMENTAL)" 47 tristate "Atheros L1E Gigabit Ethernet support"
48 depends on PCI && EXPERIMENTAL 48 depends on PCI
49 select CRC32 49 select CRC32
50 select NET_CORE 50 select NET_CORE
51 select MII 51 select MII
@@ -56,8 +56,8 @@ config ATL1E
56 will be called atl1e. 56 will be called atl1e.
57 57
58config ATL1C 58config ATL1C
59 tristate "Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)" 59 tristate "Atheros L1C Gigabit Ethernet support"
60 depends on PCI && EXPERIMENTAL 60 depends on PCI
61 select CRC32 61 select CRC32
62 select NET_CORE 62 select NET_CORE
63 select MII 63 select MII
diff --git a/drivers/net/ethernet/dec/tulip/Kconfig b/drivers/net/ethernet/dec/tulip/Kconfig
index 1203be0436e2..0c37fb2cc867 100644
--- a/drivers/net/ethernet/dec/tulip/Kconfig
+++ b/drivers/net/ethernet/dec/tulip/Kconfig
@@ -57,8 +57,8 @@ config TULIP
57 be called tulip. 57 be called tulip.
58 58
59config TULIP_MWI 59config TULIP_MWI
60 bool "New bus configuration (EXPERIMENTAL)" 60 bool "New bus configuration"
61 depends on TULIP && EXPERIMENTAL 61 depends on TULIP
62 ---help--- 62 ---help---
63 This configures your Tulip card specifically for the card and 63 This configures your Tulip card specifically for the card and
64 system cache line size type you are using. 64 system cache line size type you are using.
diff --git a/drivers/net/ethernet/fujitsu/Kconfig b/drivers/net/ethernet/fujitsu/Kconfig
index c6a87625898a..6231bc02b964 100644
--- a/drivers/net/ethernet/fujitsu/Kconfig
+++ b/drivers/net/ethernet/fujitsu/Kconfig
@@ -5,7 +5,7 @@
5config NET_VENDOR_FUJITSU 5config NET_VENDOR_FUJITSU
6 bool "Fujitsu devices" 6 bool "Fujitsu devices"
7 default y 7 default y
8 depends on ISA || PCMCIA || (ISA && EXPERIMENTAL) 8 depends on ISA || PCMCIA
9 ---help--- 9 ---help---
10 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
11 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/i825xx/Kconfig b/drivers/net/ethernet/i825xx/Kconfig
index 955d929cd00f..9521e68aa3b3 100644
--- a/drivers/net/ethernet/i825xx/Kconfig
+++ b/drivers/net/ethernet/i825xx/Kconfig
@@ -5,9 +5,7 @@
5config NET_VENDOR_I825XX 5config NET_VENDOR_I825XX
6 bool "Intel (82586/82593/82596) devices" 6 bool "Intel (82586/82593/82596) devices"
7 default y 7 default y
8 depends on NET_VENDOR_INTEL && (ISA || ISA_DMA_API || ARM || \ 8 depends on NET_VENDOR_INTEL
9 ARCH_ACORN || SNI_RM || SUN3 || \
10 GSC || BVME6000 || MVME16x || EXPERIMENTAL)
11 ---help--- 9 ---help---
12 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
13 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/icplus/Kconfig b/drivers/net/ethernet/icplus/Kconfig
index 3aff81d7989f..5119ef18953b 100644
--- a/drivers/net/ethernet/icplus/Kconfig
+++ b/drivers/net/ethernet/icplus/Kconfig
@@ -4,7 +4,7 @@
4 4
5config IP1000 5config IP1000
6 tristate "IP1000 Gigabit Ethernet support" 6 tristate "IP1000 Gigabit Ethernet support"
7 depends on PCI && EXPERIMENTAL 7 depends on PCI
8 select NET_CORE 8 select NET_CORE
9 select MII 9 select MII
10 ---help--- 10 ---help---
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
index 3d5f6d463757..05f7264c51f7 100644
--- a/drivers/net/ethernet/intel/Kconfig
+++ b/drivers/net/ethernet/intel/Kconfig
@@ -5,11 +5,6 @@
5config NET_VENDOR_INTEL 5config NET_VENDOR_INTEL
6 bool "Intel devices" 6 bool "Intel devices"
7 default y 7 default y
8 depends on PCI || PCI_MSI || ISA || ISA_DMA_API || ARM || \
9 ARCH_ACORN || SNI_RM || SUN3 || \
10 GSC || BVME6000 || MVME16x || \
11 (ARM && ARCH_IXP4XX && IXP4XX_NPE && IXP4XX_QMGR) || \
12 EXPERIMENTAL
13 ---help--- 8 ---help---
14 If you have a network (Ethernet) card belonging to this class, say Y 9 If you have a network (Ethernet) card belonging to this class, say Y
15 and read the Ethernet-HOWTO, available from 10 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/microchip/Kconfig b/drivers/net/ethernet/microchip/Kconfig
index 8163fd0f453f..afaf0c07f37f 100644
--- a/drivers/net/ethernet/microchip/Kconfig
+++ b/drivers/net/ethernet/microchip/Kconfig
@@ -5,7 +5,7 @@
5config NET_VENDOR_MICROCHIP 5config NET_VENDOR_MICROCHIP
6 bool "Microchip devices" 6 bool "Microchip devices"
7 default y 7 default y
8 depends on SPI && EXPERIMENTAL 8 depends on SPI
9 ---help--- 9 ---help---
10 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
11 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
@@ -20,7 +20,7 @@ if NET_VENDOR_MICROCHIP
20 20
21config ENC28J60 21config ENC28J60
22 tristate "ENC28J60 support" 22 tristate "ENC28J60 support"
23 depends on SPI && EXPERIMENTAL 23 depends on SPI
24 select CRC32 24 select CRC32
25 ---help--- 25 ---help---
26 Support for the Microchip EN28J60 ethernet chip. 26 Support for the Microchip EN28J60 ethernet chip.
diff --git a/drivers/net/ethernet/natsemi/Kconfig b/drivers/net/ethernet/natsemi/Kconfig
index f157334579fd..a100860d45e6 100644
--- a/drivers/net/ethernet/natsemi/Kconfig
+++ b/drivers/net/ethernet/natsemi/Kconfig
@@ -5,9 +5,6 @@
5config NET_VENDOR_NATSEMI 5config NET_VENDOR_NATSEMI
6 bool "National Semi-conductor devices" 6 bool "National Semi-conductor devices"
7 default y 7 default y
8 depends on AMIGA_PCMCIA || ARM || EISA || EXPERIMENTAL || H8300 || \
9 ISA || M32R || MAC || MACH_JAZZ || MACH_TX49XX || MIPS || \
10 PCI || PCMCIA || SUPERH || XTENSA_PLATFORM_XT2000 || ZORRO
11 ---help--- 8 ---help---
12 If you have a network (Ethernet) card belonging to this class, say Y 9 If you have a network (Ethernet) card belonging to this class, say Y
13 and read the Ethernet-HOWTO, available from 10 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/packetengines/Kconfig b/drivers/net/ethernet/packetengines/Kconfig
index 8f29feb35548..cbbeca3f8c5c 100644
--- a/drivers/net/ethernet/packetengines/Kconfig
+++ b/drivers/net/ethernet/packetengines/Kconfig
@@ -32,8 +32,8 @@ config HAMACHI
32 called hamachi. 32 called hamachi.
33 33
34config YELLOWFIN 34config YELLOWFIN
35 tristate "Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)" 35 tristate "Packet Engines Yellowfin Gigabit-NIC support"
36 depends on PCI && EXPERIMENTAL 36 depends on PCI
37 select CRC32 37 select CRC32
38 ---help--- 38 ---help---
39 Say Y here if you have a Packet Engines G-NIC PCI Gigabit Ethernet 39 Say Y here if you have a Packet Engines G-NIC PCI Gigabit Ethernet
diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
index 5821966f9f28..783fa8b5cde7 100644
--- a/drivers/net/ethernet/realtek/Kconfig
+++ b/drivers/net/ethernet/realtek/Kconfig
@@ -34,8 +34,8 @@ config ATP
34 will be called atp. 34 will be called atp.
35 35
36config 8139CP 36config 8139CP
37 tristate "RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)" 37 tristate "RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support"
38 depends on PCI && EXPERIMENTAL 38 depends on PCI
39 select CRC32 39 select CRC32
40 select NET_CORE 40 select NET_CORE
41 select MII 41 select MII
diff --git a/drivers/net/ethernet/seeq/Kconfig b/drivers/net/ethernet/seeq/Kconfig
index a71e1ec068ed..11f168e46ebe 100644
--- a/drivers/net/ethernet/seeq/Kconfig
+++ b/drivers/net/ethernet/seeq/Kconfig
@@ -6,7 +6,6 @@ config NET_VENDOR_SEEQ
6 bool "SEEQ devices" 6 bool "SEEQ devices"
7 default y 7 default y
8 depends on HAS_IOMEM 8 depends on HAS_IOMEM
9 depends on (ARM && ARCH_ACORN) || SGI_HAS_SEEQ || EXPERIMENTAL
10 ---help--- 9 ---help---
11 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
12 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/silan/Kconfig b/drivers/net/ethernet/silan/Kconfig
index ae1ce170864d..3409b3f97a1b 100644
--- a/drivers/net/ethernet/silan/Kconfig
+++ b/drivers/net/ethernet/silan/Kconfig
@@ -5,7 +5,7 @@
5config NET_VENDOR_SILAN 5config NET_VENDOR_SILAN
6 bool "Silan devices" 6 bool "Silan devices"
7 default y 7 default y
8 depends on PCI && EXPERIMENTAL 8 depends on PCI
9 ---help--- 9 ---help---
10 If you have a network (Ethernet) card belonging to this class, say Y 10 If you have a network (Ethernet) card belonging to this class, say Y
11 and read the Ethernet-HOWTO, available from 11 and read the Ethernet-HOWTO, available from
@@ -19,8 +19,8 @@ config NET_VENDOR_SILAN
19if NET_VENDOR_SILAN 19if NET_VENDOR_SILAN
20 20
21config SC92031 21config SC92031
22 tristate "Silan SC92031 PCI Fast Ethernet Adapter driver (EXPERIMENTAL)" 22 tristate "Silan SC92031 PCI Fast Ethernet Adapter driver"
23 depends on PCI && EXPERIMENTAL 23 depends on PCI
24 select CRC32 24 select CRC32
25 ---help--- 25 ---help---
26 This is a driver for the Fast Ethernet PCI network cards based on 26 This is a driver for the Fast Ethernet PCI network cards based on
diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
index 1164930a40a5..c0ea838c78d1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
+++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
@@ -26,8 +26,8 @@ config STMMAC_PLATFORM
26 If unsure, say N. 26 If unsure, say N.
27 27
28config STMMAC_PCI 28config STMMAC_PCI
29 bool "STMMAC PCI bus support (EXPERIMENTAL)" 29 bool "STMMAC PCI bus support"
30 depends on STMMAC_ETH && PCI && EXPERIMENTAL 30 depends on STMMAC_ETH && PCI
31 ---help--- 31 ---help---
32 This is to select the Synopsys DWMAC available on PCI devices, 32 This is to select the Synopsys DWMAC available on PCI devices,
33 if you have a controller with this interface, say Y or M here. 33 if you have a controller with this interface, say Y or M here.
diff --git a/drivers/net/ethernet/sun/Kconfig b/drivers/net/ethernet/sun/Kconfig
index 57bfd8599679..ae3a3557293f 100644
--- a/drivers/net/ethernet/sun/Kconfig
+++ b/drivers/net/ethernet/sun/Kconfig
@@ -32,8 +32,8 @@ config HAPPYMEAL
32 will be called sunhme. 32 will be called sunhme.
33 33
34config SUNBMAC 34config SUNBMAC
35 tristate "Sun BigMAC 10/100baseT support (EXPERIMENTAL)" 35 tristate "Sun BigMAC 10/100baseT support"
36 depends on SBUS && EXPERIMENTAL 36 depends on SBUS
37 select CRC32 37 select CRC32
38 ---help--- 38 ---help---
39 This driver supports the "be" interface available as an Sbus option. 39 This driver supports the "be" interface available as an Sbus option.
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index 4426151d4ac9..de71b1ec4625 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -88,8 +88,8 @@ config TLAN
88 Please email feedback to <torben.mathiasen@compaq.com>. 88 Please email feedback to <torben.mathiasen@compaq.com>.
89 89
90config CPMAC 90config CPMAC
91 tristate "TI AR7 CPMAC Ethernet support (EXPERIMENTAL)" 91 tristate "TI AR7 CPMAC Ethernet support"
92 depends on EXPERIMENTAL && AR7 92 depends on AR7
93 select PHYLIB 93 select PHYLIB
94 ---help--- 94 ---help---
95 TI AR7 CPMAC Ethernet support 95 TI AR7 CPMAC Ethernet support
diff --git a/drivers/net/hippi/Kconfig b/drivers/net/hippi/Kconfig
index 95eb34fdbba7..f71515dc5beb 100644
--- a/drivers/net/hippi/Kconfig
+++ b/drivers/net/hippi/Kconfig
@@ -3,8 +3,8 @@
3# 3#
4 4
5config HIPPI 5config HIPPI
6 bool "HIPPI driver support (EXPERIMENTAL)" 6 bool "HIPPI driver support"
7 depends on EXPERIMENTAL && INET && PCI 7 depends on INET && PCI
8 ---help--- 8 ---help---
9 HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and 9 HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and
10 1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI 10 1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI
@@ -18,7 +18,7 @@ config HIPPI
18if HIPPI 18if HIPPI
19 19
20config ROADRUNNER 20config ROADRUNNER
21 tristate "Essential RoadRunner HIPPI PCI adapter support (EXPERIMENTAL)" 21 tristate "Essential RoadRunner HIPPI PCI adapter support"
22 depends on PCI 22 depends on PCI
23 ---help--- 23 ---help---
24 Say Y here if this is your PCI HIPPI network card. 24 Say Y here if this is your PCI HIPPI network card.
@@ -27,7 +27,7 @@ config ROADRUNNER
27 will be called rrunner. If unsure, say N. 27 will be called rrunner. If unsure, say N.
28 28
29config ROADRUNNER_LARGE_RINGS 29config ROADRUNNER_LARGE_RINGS
30 bool "Use large TX/RX rings (EXPERIMENTAL)" 30 bool "Use large TX/RX rings"
31 depends on ROADRUNNER 31 depends on ROADRUNNER
32 ---help--- 32 ---help---
33 If you say Y here, the RoadRunner driver will preallocate up to 2 MB 33 If you say Y here, the RoadRunner driver will preallocate up to 2 MB
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index 595205406d73..59e9d9e1fd0f 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -140,7 +140,7 @@ config LITELINK_DONGLE
140 140
141config MA600_DONGLE 141config MA600_DONGLE
142 tristate "Mobile Action MA600 dongle" 142 tristate "Mobile Action MA600 dongle"
143 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL 143 depends on IRTTY_SIR && DONGLE && IRDA
144 help 144 help
145 Say Y here if you want to build support for the Mobile Action MA600 145 Say Y here if you want to build support for the Mobile Action MA600
146 dongle. To compile it as a module, choose M here. The MA600 dongle 146 dongle. To compile it as a module, choose M here. The MA600 dongle
@@ -153,7 +153,7 @@ config MA600_DONGLE
153 153
154config GIRBIL_DONGLE 154config GIRBIL_DONGLE
155 tristate "Greenwich GIrBIL dongle" 155 tristate "Greenwich GIrBIL dongle"
156 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL 156 depends on IRTTY_SIR && DONGLE && IRDA
157 help 157 help
158 Say Y here if you want to build support for the Greenwich GIrBIL 158 Say Y here if you want to build support for the Greenwich GIrBIL
159 dongle. If you want to compile it as a module, choose M here. 159 dongle. If you want to compile it as a module, choose M here.
@@ -164,7 +164,7 @@ config GIRBIL_DONGLE
164 164
165config MCP2120_DONGLE 165config MCP2120_DONGLE
166 tristate "Microchip MCP2120" 166 tristate "Microchip MCP2120"
167 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL 167 depends on IRTTY_SIR && DONGLE && IRDA
168 help 168 help
169 Say Y here if you want to build support for the Microchip MCP2120 169 Say Y here if you want to build support for the Microchip MCP2120
170 dongle. If you want to compile it as a module, choose M here. 170 dongle. If you want to compile it as a module, choose M here.
@@ -178,7 +178,7 @@ config MCP2120_DONGLE
178 178
179config OLD_BELKIN_DONGLE 179config OLD_BELKIN_DONGLE
180 tristate "Old Belkin dongle" 180 tristate "Old Belkin dongle"
181 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL 181 depends on IRTTY_SIR && DONGLE && IRDA
182 help 182 help
183 Say Y here if you want to build support for the Adaptec Airport 1000 183 Say Y here if you want to build support for the Adaptec Airport 1000
184 and 2000 dongles. If you want to compile it as a module, choose 184 and 2000 dongles. If you want to compile it as a module, choose
@@ -187,7 +187,7 @@ config OLD_BELKIN_DONGLE
187 187
188config ACT200L_DONGLE 188config ACT200L_DONGLE
189 tristate "ACTiSYS IR-200L dongle" 189 tristate "ACTiSYS IR-200L dongle"
190 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL 190 depends on IRTTY_SIR && DONGLE && IRDA
191 help 191 help
192 Say Y here if you want to build support for the ACTiSYS IR-200L 192 Say Y here if you want to build support for the ACTiSYS IR-200L
193 dongle. If you want to compile it as a module, choose M here. 193 dongle. If you want to compile it as a module, choose M here.
@@ -198,7 +198,7 @@ config ACT200L_DONGLE
198 198
199config KINGSUN_DONGLE 199config KINGSUN_DONGLE
200 tristate "KingSun/DonShine DS-620 IrDA-USB dongle" 200 tristate "KingSun/DonShine DS-620 IrDA-USB dongle"
201 depends on IRDA && USB && EXPERIMENTAL 201 depends on IRDA && USB
202 help 202 help
203 Say Y or M here if you want to build support for the KingSun/DonShine 203 Say Y or M here if you want to build support for the KingSun/DonShine
204 DS-620 IrDA-USB bridge device driver. 204 DS-620 IrDA-USB bridge device driver.
@@ -212,14 +212,14 @@ config KINGSUN_DONGLE
212 212
213config EP7211_DONGLE 213config EP7211_DONGLE
214 tristate "Cirrus Logic clps711x I/R support" 214 tristate "Cirrus Logic clps711x I/R support"
215 depends on IRTTY_SIR && ARCH_CLPS711X && IRDA && EXPERIMENTAL 215 depends on IRTTY_SIR && ARCH_CLPS711X && IRDA
216 help 216 help
217 Say Y here if you want to build support for the Cirrus logic 217 Say Y here if you want to build support for the Cirrus logic
218 EP7211 chipset's infrared module. 218 EP7211 chipset's infrared module.
219 219
220config KSDAZZLE_DONGLE 220config KSDAZZLE_DONGLE
221 tristate "KingSun Dazzle IrDA-USB dongle (EXPERIMENTAL)" 221 tristate "KingSun Dazzle IrDA-USB dongle"
222 depends on IRDA && USB && EXPERIMENTAL 222 depends on IRDA && USB
223 help 223 help
224 Say Y or M here if you want to build support for the KingSun Dazzle 224 Say Y or M here if you want to build support for the KingSun Dazzle
225 IrDA-USB bridge device driver. 225 IrDA-USB bridge device driver.
@@ -232,8 +232,8 @@ config KSDAZZLE_DONGLE
232 ksdazzle-sir. 232 ksdazzle-sir.
233 233
234config KS959_DONGLE 234config KS959_DONGLE
235 tristate "KingSun KS-959 IrDA-USB dongle (EXPERIMENTAL)" 235 tristate "KingSun KS-959 IrDA-USB dongle"
236 depends on IRDA && USB && EXPERIMENTAL 236 depends on IRDA && USB
237 help 237 help
238 Say Y or M here if you want to build support for the KingSun KS-959 238 Say Y or M here if you want to build support for the KingSun KS-959
239 IrDA-USB bridge device driver. 239 IrDA-USB bridge device driver.
@@ -264,8 +264,8 @@ config USB_IRDA
264 you will need both USB and IrDA support in your kernel... 264 you will need both USB and IrDA support in your kernel...
265 265
266config SIGMATEL_FIR 266config SIGMATEL_FIR
267 tristate "SigmaTel STIr4200 bridge (EXPERIMENTAL)" 267 tristate "SigmaTel STIr4200 bridge"
268 depends on IRDA && USB && EXPERIMENTAL 268 depends on IRDA && USB
269 select CRC32 269 select CRC32
270 ---help--- 270 ---help---
271 Say Y here if you want to build support for the SigmaTel STIr4200 271 Say Y here if you want to build support for the SigmaTel STIr4200
@@ -331,8 +331,8 @@ config SMC_IRCC_FIR
331 smsc-ircc2.o. 331 smsc-ircc2.o.
332 332
333config ALI_FIR 333config ALI_FIR
334 tristate "ALi M5123 FIR (EXPERIMENTAL)" 334 tristate "ALi M5123 FIR"
335 depends on EXPERIMENTAL && IRDA && ISA_DMA_API 335 depends on IRDA && ISA_DMA_API
336 help 336 help
337 Say Y here if you want to build support for the ALi M5123 FIR 337 Say Y here if you want to build support for the ALi M5123 FIR
338 Controller. The ALi M5123 FIR Controller is embedded in ALi M1543C, 338 Controller. The ALi M5123 FIR Controller is embedded in ALi M1543C,
@@ -343,8 +343,8 @@ config ALI_FIR
343 ali-ircc. 343 ali-ircc.
344 344
345config VLSI_FIR 345config VLSI_FIR
346 tristate "VLSI 82C147 SIR/MIR/FIR (EXPERIMENTAL)" 346 tristate "VLSI 82C147 SIR/MIR/FIR"
347 depends on EXPERIMENTAL && IRDA && PCI 347 depends on IRDA && PCI
348 help 348 help
349 Say Y here if you want to build support for the VLSI 82C147 349 Say Y here if you want to build support for the VLSI 82C147
350 PCI-IrDA Controller. This controller is used by the HP OmniBook 800 350 PCI-IrDA Controller. This controller is used by the HP OmniBook 800
@@ -387,7 +387,7 @@ config PXA_FICP
387 387
388config MCS_FIR 388config MCS_FIR
389 tristate "MosChip MCS7780 IrDA-USB dongle" 389 tristate "MosChip MCS7780 IrDA-USB dongle"
390 depends on IRDA && USB && EXPERIMENTAL 390 depends on IRDA && USB
391 select CRC32 391 select CRC32
392 help 392 help
393 Say Y or M here if you want to build support for the MosChip 393 Say Y or M here if you want to build support for the MosChip
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 044b5326459f..dc920974204e 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -95,7 +95,7 @@ static struct class mdio_bus_class = {
95 95
96#if IS_ENABLED(CONFIG_OF_MDIO) 96#if IS_ENABLED(CONFIG_OF_MDIO)
97/* Helper function for of_mdio_find_bus */ 97/* Helper function for of_mdio_find_bus */
98static int of_mdio_bus_match(struct device *dev, void *mdio_bus_np) 98static int of_mdio_bus_match(struct device *dev, const void *mdio_bus_np)
99{ 99{
100 return dev->of_node == mdio_bus_np; 100 return dev->of_node == mdio_bus_np;
101} 101}
diff --git a/drivers/net/ppp/Kconfig b/drivers/net/ppp/Kconfig
index 872df3ef07a6..278dea0c4c98 100644
--- a/drivers/net/ppp/Kconfig
+++ b/drivers/net/ppp/Kconfig
@@ -82,8 +82,8 @@ config PPP_FILTER
82 If unsure, say N. 82 If unsure, say N.
83 83
84config PPP_MPPE 84config PPP_MPPE
85 tristate "PPP MPPE compression (encryption) (EXPERIMENTAL)" 85 tristate "PPP MPPE compression (encryption)"
86 depends on PPP && EXPERIMENTAL 86 depends on PPP
87 select CRYPTO 87 select CRYPTO
88 select CRYPTO_SHA1 88 select CRYPTO_SHA1
89 select CRYPTO_ARC4 89 select CRYPTO_ARC4
@@ -96,8 +96,8 @@ config PPP_MPPE
96 configuring PPTP clients and servers to utilize this method. 96 configuring PPTP clients and servers to utilize this method.
97 97
98config PPP_MULTILINK 98config PPP_MULTILINK
99 bool "PPP multilink support (EXPERIMENTAL)" 99 bool "PPP multilink support"
100 depends on PPP && EXPERIMENTAL 100 depends on PPP
101 ---help--- 101 ---help---
102 PPP multilink is a protocol (defined in RFC 1990) which allows you 102 PPP multilink is a protocol (defined in RFC 1990) which allows you
103 to combine several (logical or physical) lines into one logical PPP 103 to combine several (logical or physical) lines into one logical PPP
@@ -118,8 +118,8 @@ config PPPOATM
118 changes its encapsulation unilaterally. 118 changes its encapsulation unilaterally.
119 119
120config PPPOE 120config PPPOE
121 tristate "PPP over Ethernet (EXPERIMENTAL)" 121 tristate "PPP over Ethernet"
122 depends on EXPERIMENTAL && PPP 122 depends on PPP
123 ---help--- 123 ---help---
124 Support for PPP over Ethernet. 124 Support for PPP over Ethernet.
125 125
@@ -130,8 +130,8 @@ config PPPOE
130 the heading "Kernel mode PPPoE"). 130 the heading "Kernel mode PPPoE").
131 131
132config PPTP 132config PPTP
133 tristate "PPP over IPv4 (PPTP) (EXPERIMENTAL)" 133 tristate "PPP over IPv4 (PPTP)"
134 depends on EXPERIMENTAL && PPP && NET_IPGRE_DEMUX 134 depends on PPP && NET_IPGRE_DEMUX
135 ---help--- 135 ---help---
136 Support for PPP over IPv4.(Point-to-Point Tunneling Protocol) 136 Support for PPP over IPv4.(Point-to-Point Tunneling Protocol)
137 137
@@ -141,8 +141,8 @@ config PPTP
141 utilize this module. 141 utilize this module.
142 142
143config PPPOL2TP 143config PPPOL2TP
144 tristate "PPP over L2TP (EXPERIMENTAL)" 144 tristate "PPP over L2TP"
145 depends on EXPERIMENTAL && L2TP && PPP 145 depends on L2TP && PPP
146 ---help--- 146 ---help---
147 Support for PPP-over-L2TP socket family. L2TP is a protocol 147 Support for PPP-over-L2TP socket family. L2TP is a protocol
148 used by ISPs and enterprises to tunnel PPP traffic over UDP 148 used by ISPs and enterprises to tunnel PPP traffic over UDP
diff --git a/drivers/net/team/Kconfig b/drivers/net/team/Kconfig
index 6b08bd419fba..c3011af68e91 100644
--- a/drivers/net/team/Kconfig
+++ b/drivers/net/team/Kconfig
@@ -1,6 +1,5 @@
1menuconfig NET_TEAM 1menuconfig NET_TEAM
2 tristate "Ethernet team driver support (EXPERIMENTAL)" 2 tristate "Ethernet team driver support"
3 depends on EXPERIMENTAL
4 ---help--- 3 ---help---
5 This allows one to create virtual interfaces that teams together 4 This allows one to create virtual interfaces that teams together
6 multiple ethernet devices. 5 multiple ethernet devices.
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index ef976215b649..3a44a5d7bf9e 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -8,8 +8,7 @@ menu "USB Network Adapters"
8 depends on USB && NET 8 depends on USB && NET
9 9
10config USB_CATC 10config USB_CATC
11 tristate "USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)" 11 tristate "USB CATC NetMate-based Ethernet device support"
12 depends on EXPERIMENTAL
13 select CRC32 12 select CRC32
14 ---help--- 13 ---help---
15 Say Y if you want to use one of the following 10Mbps USB Ethernet 14 Say Y if you want to use one of the following 10Mbps USB Ethernet
@@ -83,8 +82,7 @@ config USB_PEGASUS
83 module will be called pegasus. 82 module will be called pegasus.
84 83
85config USB_RTL8150 84config USB_RTL8150
86 tristate "USB RTL8150 based ethernet device support (EXPERIMENTAL)" 85 tristate "USB RTL8150 based ethernet device support"
87 depends on EXPERIMENTAL
88 select NET_CORE 86 select NET_CORE
89 select MII 87 select MII
90 help 88 help
@@ -188,7 +186,7 @@ config USB_NET_CDCETHER
188 186
189config USB_NET_CDC_EEM 187config USB_NET_CDC_EEM
190 tristate "CDC EEM support" 188 tristate "CDC EEM support"
191 depends on USB_USBNET && EXPERIMENTAL 189 depends on USB_USBNET
192 help 190 help
193 This option supports devices conforming to the Communication Device 191 This option supports devices conforming to the Communication Device
194 Class (CDC) Ethernet Emulation Model, a specification that's easy to 192 Class (CDC) Ethernet Emulation Model, a specification that's easy to
@@ -287,7 +285,7 @@ config USB_NET_PLUSB
287 tristate "Prolific PL-2301/2302/25A1 based cables" 285 tristate "Prolific PL-2301/2302/25A1 based cables"
288 # if the handshake/init/reset problems, from original 'plusb', 286 # if the handshake/init/reset problems, from original 'plusb',
289 # are ever resolved ... then remove "experimental" 287 # are ever resolved ... then remove "experimental"
290 depends on USB_USBNET && EXPERIMENTAL 288 depends on USB_USBNET
291 help 289 help
292 Choose this option if you're using a host-to-host cable 290 Choose this option if you're using a host-to-host cable
293 with one of these chips. 291 with one of these chips.
@@ -301,8 +299,8 @@ config USB_NET_MCS7830
301 adapters marketed under the DeLOCK brand. 299 adapters marketed under the DeLOCK brand.
302 300
303config USB_NET_RNDIS_HOST 301config USB_NET_RNDIS_HOST
304 tristate "Host for RNDIS and ActiveSync devices (EXPERIMENTAL)" 302 tristate "Host for RNDIS and ActiveSync devices"
305 depends on USB_USBNET && EXPERIMENTAL 303 depends on USB_USBNET
306 select USB_NET_CDCETHER 304 select USB_NET_CDCETHER
307 help 305 help
308 This option enables hosting "Remote NDIS" USB networking links, 306 This option enables hosting "Remote NDIS" USB networking links,
@@ -380,7 +378,7 @@ config USB_EPSON2888
380 378
381config USB_KC2190 379config USB_KC2190
382 boolean "KT Technology KC2190 based cables (InstaNet)" 380 boolean "KT Technology KC2190 based cables (InstaNet)"
383 depends on USB_NET_CDC_SUBSET && EXPERIMENTAL 381 depends on USB_NET_CDC_SUBSET
384 help 382 help
385 Choose this option if you're using a host-to-host cable 383 Choose this option if you're using a host-to-host cable
386 with one of these chips. 384 with one of these chips.
diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig
index 0c077b0f7a2b..13daec88d918 100644
--- a/drivers/net/wan/Kconfig
+++ b/drivers/net/wan/Kconfig
@@ -358,7 +358,7 @@ config SDLA
358 358
359# X.25 network drivers 359# X.25 network drivers
360config LAPBETHER 360config LAPBETHER
361 tristate "LAPB over Ethernet driver (EXPERIMENTAL)" 361 tristate "LAPB over Ethernet driver"
362 depends on LAPB && X25 362 depends on LAPB && X25
363 ---help--- 363 ---help---
364 Driver for a pseudo device (typically called /dev/lapb0) which allows 364 Driver for a pseudo device (typically called /dev/lapb0) which allows
@@ -374,7 +374,7 @@ config LAPBETHER
374 If unsure, say N. 374 If unsure, say N.
375 375
376config X25_ASY 376config X25_ASY
377 tristate "X.25 async driver (EXPERIMENTAL)" 377 tristate "X.25 async driver"
378 depends on LAPB && X25 378 depends on LAPB && X25
379 ---help--- 379 ---help---
380 Send and receive X.25 frames over regular asynchronous serial 380 Send and receive X.25 frames over regular asynchronous serial
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index 28aa05f60c26..f8f0156dff4e 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -138,7 +138,7 @@ config AIRO_CS
138 138
139config PCMCIA_WL3501 139config PCMCIA_WL3501
140 tristate "Planet WL3501 PCMCIA cards" 140 tristate "Planet WL3501 PCMCIA cards"
141 depends on EXPERIMENTAL && PCMCIA 141 depends on PCMCIA
142 select WIRELESS_EXT 142 select WIRELESS_EXT
143 select WEXT_SPY 143 select WEXT_SPY
144 help 144 help
@@ -148,7 +148,7 @@ config PCMCIA_WL3501
148 148
149config PRISM54 149config PRISM54
150 tristate 'Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)' 150 tristate 'Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)'
151 depends on PCI && EXPERIMENTAL 151 depends on PCI
152 select WIRELESS_EXT 152 select WIRELESS_EXT
153 select WEXT_SPY 153 select WEXT_SPY
154 select WEXT_PRIV 154 select WEXT_PRIV
@@ -187,7 +187,7 @@ config USB_ZD1201
187 187
188config USB_NET_RNDIS_WLAN 188config USB_NET_RNDIS_WLAN
189 tristate "Wireless RNDIS USB support" 189 tristate "Wireless RNDIS USB support"
190 depends on USB && EXPERIMENTAL 190 depends on USB
191 depends on CFG80211 191 depends on CFG80211
192 select USB_USBNET 192 select USB_USBNET
193 select USB_NET_CDCETHER 193 select USB_NET_CDCETHER
@@ -217,7 +217,7 @@ source "drivers/net/wireless/rtl818x/Kconfig"
217 217
218config ADM8211 218config ADM8211
219 tristate "ADMtek ADM8211 support" 219 tristate "ADMtek ADM8211 support"
220 depends on MAC80211 && PCI && EXPERIMENTAL 220 depends on MAC80211 && PCI
221 select CRC32 221 select CRC32
222 select EEPROM_93CX6 222 select EEPROM_93CX6
223 ---help--- 223 ---help---
@@ -257,7 +257,7 @@ config MAC80211_HWSIM
257 257
258config MWL8K 258config MWL8K
259 tristate "Marvell 88W8xxx PCI/PCIe Wireless support" 259 tristate "Marvell 88W8xxx PCI/PCIe Wireless support"
260 depends on MAC80211 && PCI && EXPERIMENTAL 260 depends on MAC80211 && PCI
261 ---help--- 261 ---help---
262 This driver supports Marvell TOPDOG 802.11 wireless cards. 262 This driver supports Marvell TOPDOG 802.11 wireless cards.
263 263
diff --git a/drivers/net/wireless/ath/ath6kl/Kconfig b/drivers/net/wireless/ath/ath6kl/Kconfig
index 26c4b7220859..630c83db056e 100644
--- a/drivers/net/wireless/ath/ath6kl/Kconfig
+++ b/drivers/net/wireless/ath/ath6kl/Kconfig
@@ -18,7 +18,6 @@ config ATH6KL_USB
18 depends on ATH6KL 18 depends on ATH6KL
19 depends on USB 19 depends on USB
20 depends on CFG80211 20 depends on CFG80211
21 depends on EXPERIMENTAL
22 ---help--- 21 ---help---
23 This module adds support for wireless adapters based on 22 This module adds support for wireless adapters based on
24 Atheros AR6004 chipset running over USB. This is still under 23 Atheros AR6004 chipset running over USB. This is still under
diff --git a/drivers/net/wireless/ath/carl9170/Kconfig b/drivers/net/wireless/ath/carl9170/Kconfig
index 13a204598766..1a796e5f69ec 100644
--- a/drivers/net/wireless/ath/carl9170/Kconfig
+++ b/drivers/net/wireless/ath/carl9170/Kconfig
@@ -1,6 +1,6 @@
1config CARL9170 1config CARL9170
2 tristate "Linux Community AR9170 802.11n USB support" 2 tristate "Linux Community AR9170 802.11n USB support"
3 depends on USB && MAC80211 && EXPERIMENTAL 3 depends on USB && MAC80211
4 select ATH_COMMON 4 select ATH_COMMON
5 select FW_LOADER 5 select FW_LOADER
6 select CRC32 6 select CRC32
diff --git a/drivers/net/wireless/ath/wil6210/dbg_hexdump.h b/drivers/net/wireless/ath/wil6210/dbg_hexdump.h
index 6a315ba5aa7d..e5712f026c47 100644
--- a/drivers/net/wireless/ath/wil6210/dbg_hexdump.h
+++ b/drivers/net/wireless/ath/wil6210/dbg_hexdump.h
@@ -1,25 +1,15 @@
1#ifndef WIL_DBG_HEXDUMP_H_ 1#ifndef WIL_DBG_HEXDUMP_H_
2#define WIL_DBG_HEXDUMP_H_ 2#define WIL_DBG_HEXDUMP_H_
3 3
4#if defined(CONFIG_DYNAMIC_DEBUG) 4#include <linux/printk.h>
5#define wil_dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ 5#include <linux/dynamic_debug.h>
6 groupsize, buf, len, ascii) \
7do { \
8 DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, \
9 __builtin_constant_p(prefix_str) ? prefix_str : "hexdump");\
10 if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \
11 print_hex_dump(KERN_DEBUG, prefix_str, \
12 prefix_type, rowsize, groupsize, \
13 buf, len, ascii); \
14} while (0)
15 6
7#if defined(CONFIG_DYNAMIC_DEBUG)
16#define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ 8#define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \
17 groupsize, buf, len, ascii) \ 9 groupsize, buf, len, ascii) \
18 wil_dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ 10 dynamic_hex_dump(prefix_str, prefix_type, rowsize, \
19 groupsize, buf, len, ascii) 11 groupsize, buf, len, ascii)
20 12
21#define print_hex_dump_bytes(prefix_str, prefix_type, buf, len) \
22 wil_dynamic_hex_dump(prefix_str, prefix_type, 16, 1, buf, len, true)
23#else /* defined(CONFIG_DYNAMIC_DEBUG) */ 13#else /* defined(CONFIG_DYNAMIC_DEBUG) */
24#define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ 14#define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \
25 groupsize, buf, len, ascii) \ 15 groupsize, buf, len, ascii) \
diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig
index 7a28d21ac389..287c6b670a36 100644
--- a/drivers/net/wireless/b43/Kconfig
+++ b/drivers/net/wireless/b43/Kconfig
@@ -78,8 +78,8 @@ config B43_PCMCIA
78 If unsure, say N. 78 If unsure, say N.
79 79
80config B43_SDIO 80config B43_SDIO
81 bool "Broadcom 43xx SDIO device support (EXPERIMENTAL)" 81 bool "Broadcom 43xx SDIO device support"
82 depends on B43 && SSB_SDIOHOST_POSSIBLE && EXPERIMENTAL 82 depends on B43 && SSB_SDIOHOST_POSSIBLE
83 select SSB_SDIOHOST 83 select SSB_SDIOHOST
84 ---help--- 84 ---help---
85 Broadcom 43xx device support for Soft-MAC SDIO devices. 85 Broadcom 43xx device support for Soft-MAC SDIO devices.
@@ -109,8 +109,8 @@ config B43_PIO
109 default y 109 default y
110 110
111config B43_PHY_N 111config B43_PHY_N
112 bool "Support for 802.11n (N-PHY) devices (EXPERIMENTAL)" 112 bool "Support for 802.11n (N-PHY) devices"
113 depends on B43 && EXPERIMENTAL 113 depends on B43
114 ---help--- 114 ---help---
115 Support for the N-PHY. 115 Support for the N-PHY.
116 116
@@ -130,8 +130,8 @@ config B43_PHY_LP
130 (802.11a support is optional, and currently disabled). 130 (802.11a support is optional, and currently disabled).
131 131
132config B43_PHY_HT 132config B43_PHY_HT
133 bool "Support for HT-PHY (high throughput) devices (EXPERIMENTAL)" 133 bool "Support for HT-PHY (high throughput) devices"
134 depends on B43 && EXPERIMENTAL 134 depends on B43
135 ---help--- 135 ---help---
136 Support for the HT-PHY. 136 Support for the HT-PHY.
137 137
diff --git a/drivers/net/wireless/ipw2x00/Kconfig b/drivers/net/wireless/ipw2x00/Kconfig
index 2715b101aded..91c0cb3c368e 100644
--- a/drivers/net/wireless/ipw2x00/Kconfig
+++ b/drivers/net/wireless/ipw2x00/Kconfig
@@ -137,7 +137,7 @@ config IPW2200_PROMISCUOUS
137 137
138config IPW2200_QOS 138config IPW2200_QOS
139 bool "Enable QoS support" 139 bool "Enable QoS support"
140 depends on IPW2200 && EXPERIMENTAL 140 depends on IPW2200
141 141
142config IPW2200_DEBUG 142config IPW2200_DEBUG
143 bool "Enable full debugging output in IPW2200 module." 143 bool "Enable full debugging output in IPW2200 module."
diff --git a/drivers/net/wireless/p54/Kconfig b/drivers/net/wireless/p54/Kconfig
index 0ec55b50798e..15ea36b51a66 100644
--- a/drivers/net/wireless/p54/Kconfig
+++ b/drivers/net/wireless/p54/Kconfig
@@ -1,6 +1,6 @@
1config P54_COMMON 1config P54_COMMON
2 tristate "Softmac Prism54 support" 2 tristate "Softmac Prism54 support"
3 depends on MAC80211 && EXPERIMENTAL 3 depends on MAC80211
4 select FW_LOADER 4 select FW_LOADER
5 select CRC_CCITT 5 select CRC_CCITT
6 ---help--- 6 ---help---
diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig
index c7548da6573d..44d6ead43341 100644
--- a/drivers/net/wireless/rt2x00/Kconfig
+++ b/drivers/net/wireless/rt2x00/Kconfig
@@ -82,7 +82,6 @@ config RT2800PCI_RT33XX
82 82
83config RT2800PCI_RT35XX 83config RT2800PCI_RT35XX
84 bool "rt2800pci - Include support for rt35xx devices (EXPERIMENTAL)" 84 bool "rt2800pci - Include support for rt35xx devices (EXPERIMENTAL)"
85 depends on EXPERIMENTAL
86 default y 85 default y
87 ---help--- 86 ---help---
88 This adds support for rt35xx wireless chipset family to the 87 This adds support for rt35xx wireless chipset family to the
@@ -92,7 +91,6 @@ config RT2800PCI_RT35XX
92 91
93config RT2800PCI_RT53XX 92config RT2800PCI_RT53XX
94 bool "rt2800pci - Include support for rt53xx devices (EXPERIMENTAL)" 93 bool "rt2800pci - Include support for rt53xx devices (EXPERIMENTAL)"
95 depends on EXPERIMENTAL
96 default y 94 default y
97 ---help--- 95 ---help---
98 This adds support for rt53xx wireless chipset family to the 96 This adds support for rt53xx wireless chipset family to the
@@ -101,7 +99,6 @@ config RT2800PCI_RT53XX
101 99
102config RT2800PCI_RT3290 100config RT2800PCI_RT3290
103 bool "rt2800pci - Include support for rt3290 devices (EXPERIMENTAL)" 101 bool "rt2800pci - Include support for rt3290 devices (EXPERIMENTAL)"
104 depends on EXPERIMENTAL
105 default y 102 default y
106 ---help--- 103 ---help---
107 This adds support for rt3290 wireless chipset family to the 104 This adds support for rt3290 wireless chipset family to the
@@ -159,7 +156,6 @@ config RT2800USB_RT33XX
159 156
160config RT2800USB_RT35XX 157config RT2800USB_RT35XX
161 bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)" 158 bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)"
162 depends on EXPERIMENTAL
163 default y 159 default y
164 ---help--- 160 ---help---
165 This adds support for rt35xx wireless chipset family to the 161 This adds support for rt35xx wireless chipset family to the
@@ -168,7 +164,6 @@ config RT2800USB_RT35XX
168 164
169config RT2800USB_RT53XX 165config RT2800USB_RT53XX
170 bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)" 166 bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)"
171 depends on EXPERIMENTAL
172 ---help--- 167 ---help---
173 This adds support for rt53xx wireless chipset family to the 168 This adds support for rt53xx wireless chipset family to the
174 rt2800usb driver. 169 rt2800usb driver.
diff --git a/drivers/net/wireless/rtl818x/Kconfig b/drivers/net/wireless/rtl818x/Kconfig
index 17d80fe556de..30332175bcd8 100644
--- a/drivers/net/wireless/rtl818x/Kconfig
+++ b/drivers/net/wireless/rtl818x/Kconfig
@@ -3,7 +3,7 @@
3# 3#
4config RTL8180 4config RTL8180
5 tristate "Realtek 8180/8185 PCI support" 5 tristate "Realtek 8180/8185 PCI support"
6 depends on MAC80211 && PCI && EXPERIMENTAL 6 depends on MAC80211 && PCI
7 select EEPROM_93CX6 7 select EEPROM_93CX6
8 ---help--- 8 ---help---
9 This is a driver for RTL8180 and RTL8185 based cards. 9 This is a driver for RTL8180 and RTL8185 based cards.
diff --git a/drivers/net/wireless/zd1211rw/Kconfig b/drivers/net/wireless/zd1211rw/Kconfig
index 5f809695f71a..96c8e1de0879 100644
--- a/drivers/net/wireless/zd1211rw/Kconfig
+++ b/drivers/net/wireless/zd1211rw/Kconfig
@@ -1,6 +1,6 @@
1config ZD1211RW 1config ZD1211RW
2 tristate "ZyDAS ZD1211/ZD1211B USB-wireless support" 2 tristate "ZyDAS ZD1211/ZD1211B USB-wireless support"
3 depends on USB && MAC80211 && EXPERIMENTAL 3 depends on USB && MAC80211
4 select FW_LOADER 4 select FW_LOADER
5 ---help--- 5 ---help---
6 This is an experimental driver for the ZyDAS ZD1211/ZD1211B wireless 6 This is an experimental driver for the ZyDAS ZD1211/ZD1211B wireless
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 8fd255f7ee40..b90f85bf5f81 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -36,8 +36,8 @@ config PCMCIA
36 If unsure, say Y. 36 If unsure, say Y.
37 37
38config PCMCIA_LOAD_CIS 38config PCMCIA_LOAD_CIS
39 bool "Load CIS updates from userspace (EXPERIMENTAL)" 39 bool "Load CIS updates from userspace"
40 depends on PCMCIA && EXPERIMENTAL 40 depends on PCMCIA
41 select FW_LOADER 41 select FW_LOADER
42 default y 42 default y
43 help 43 help
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 471c71f7f8b6..75933a6aa828 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -1503,10 +1503,9 @@ static int at91_gpio_probe(struct platform_device *pdev)
1503 goto err; 1503 goto err;
1504 } 1504 }
1505 1505
1506 at91_chip->regbase = devm_request_and_ioremap(&pdev->dev, res); 1506 at91_chip->regbase = devm_ioremap_resource(&pdev->dev, res);
1507 if (!at91_chip->regbase) { 1507 if (IS_ERR(at91_chip->regbase)) {
1508 dev_err(&pdev->dev, "failed to map registers, ignoring.\n"); 1508 ret = PTR_ERR(at91_chip->regbase);
1509 ret = -EBUSY;
1510 goto err; 1509 goto err;
1511 } 1510 }
1512 1511
diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c
index d347b9f2eae3..4eb6d2c4e4df 100644
--- a/drivers/pinctrl/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/pinctrl-bcm2835.c
@@ -959,9 +959,9 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
959 return err; 959 return err;
960 } 960 }
961 961
962 pc->base = devm_request_and_ioremap(dev, &iomem); 962 pc->base = devm_ioremap_resource(dev, &iomem);
963 if (!pc->base) 963 if (IS_ERR(pc->base))
964 return -EADDRNOTAVAIL; 964 return PTR_ERR(pc->base);
965 965
966 pc->gpio_chip = bcm2835_gpio_chip; 966 pc->gpio_chip = bcm2835_gpio_chip;
967 pc->gpio_chip.dev = dev; 967 pc->gpio_chip.dev = dev;
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c
index fbb37154471c..8b7e7bc2226b 100644
--- a/drivers/pinctrl/pinctrl-coh901.c
+++ b/drivers/pinctrl/pinctrl-coh901.c
@@ -715,11 +715,9 @@ static int __init u300_gpio_probe(struct platform_device *pdev)
715 return -ENODEV; 715 return -ENODEV;
716 } 716 }
717 717
718 gpio->base = devm_request_and_ioremap(&pdev->dev, memres); 718 gpio->base = devm_ioremap_resource(&pdev->dev, memres);
719 if (!gpio->base) { 719 if (IS_ERR(gpio->base))
720 dev_err(gpio->dev, "could not get remap memory\n"); 720 return PTR_ERR(gpio->base);
721 return -ENOMEM;
722 }
723 721
724 gpio->clk = devm_clk_get(gpio->dev, NULL); 722 gpio->clk = devm_clk_get(gpio->dev, NULL);
725 if (IS_ERR(gpio->clk)) { 723 if (IS_ERR(gpio->clk)) {
diff --git a/drivers/pinctrl/pinctrl-exynos5440.c b/drivers/pinctrl/pinctrl-exynos5440.c
index 142729914c34..1376eb7305db 100644
--- a/drivers/pinctrl/pinctrl-exynos5440.c
+++ b/drivers/pinctrl/pinctrl-exynos5440.c
@@ -866,11 +866,9 @@ static int exynos5440_pinctrl_probe(struct platform_device *pdev)
866 return -ENOENT; 866 return -ENOENT;
867 } 867 }
868 868
869 priv->reg_base = devm_request_and_ioremap(&pdev->dev, res); 869 priv->reg_base = devm_ioremap_resource(&pdev->dev, res);
870 if (!priv->reg_base) { 870 if (IS_ERR(priv->reg_base))
871 dev_err(dev, "ioremap failed\n"); 871 return PTR_ERR(priv->reg_base);
872 return -ENODEV;
873 }
874 872
875 ret = exynos5440_gpiolib_register(pdev, priv); 873 ret = exynos5440_gpiolib_register(pdev, priv);
876 if (ret) 874 if (ret)
diff --git a/drivers/pinctrl/pinctrl-falcon.c b/drivers/pinctrl/pinctrl-falcon.c
index 4a0d54a08890..af97a1f90007 100644
--- a/drivers/pinctrl/pinctrl-falcon.c
+++ b/drivers/pinctrl/pinctrl-falcon.c
@@ -447,14 +447,11 @@ static int pinctrl_falcon_probe(struct platform_device *pdev)
447 dev_err(&ppdev->dev, "failed to get clock\n"); 447 dev_err(&ppdev->dev, "failed to get clock\n");
448 return PTR_ERR(falcon_info.clk[*bank]); 448 return PTR_ERR(falcon_info.clk[*bank]);
449 } 449 }
450 falcon_info.membase[*bank] = 450 falcon_info.membase[*bank] = devm_ioremap_resource(&pdev->dev,
451 devm_request_and_ioremap(&pdev->dev, &res); 451 &res);
452 if (!falcon_info.membase[*bank]) { 452 if (IS_ERR(falcon_info.membase[*bank]))
453 dev_err(&pdev->dev, 453 return PTR_ERR(falcon_info.membase[*bank]);
454 "Failed to remap memory for bank %d\n", 454
455 *bank);
456 return -ENOMEM;
457 }
458 avail = pad_r32(falcon_info.membase[*bank], 455 avail = pad_r32(falcon_info.membase[*bank],
459 LTQ_PADC_AVAIL); 456 LTQ_PADC_AVAIL);
460 pins = fls(avail); 457 pins = fls(avail);
diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c
index 43a6f1ffc786..4cebb9c6c5c5 100644
--- a/drivers/pinctrl/pinctrl-imx.c
+++ b/drivers/pinctrl/pinctrl-imx.c
@@ -584,9 +584,9 @@ int imx_pinctrl_probe(struct platform_device *pdev,
584 if (!res) 584 if (!res)
585 return -ENOENT; 585 return -ENOENT;
586 586
587 ipctl->base = devm_request_and_ioremap(&pdev->dev, res); 587 ipctl->base = devm_ioremap_resource(&pdev->dev, res);
588 if (!ipctl->base) 588 if (IS_ERR(ipctl->base))
589 return -EBUSY; 589 return PTR_ERR(ipctl->base);
590 590
591 imx_pinctrl_desc.name = dev_name(&pdev->dev); 591 imx_pinctrl_desc.name = dev_name(&pdev->dev);
592 imx_pinctrl_desc.pins = info->pins; 592 imx_pinctrl_desc.pins = info->pins;
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c
index de9e8519b803..3c80dd98304b 100644
--- a/drivers/pinctrl/pinctrl-nomadik.c
+++ b/drivers/pinctrl/pinctrl-nomadik.c
@@ -1362,9 +1362,9 @@ static int nmk_gpio_probe(struct platform_device *dev)
1362 if (secondary_irq >= 0 && !pdata->get_secondary_status) 1362 if (secondary_irq >= 0 && !pdata->get_secondary_status)
1363 return -EINVAL; 1363 return -EINVAL;
1364 1364
1365 base = devm_request_and_ioremap(&dev->dev, res); 1365 base = devm_ioremap_resource(&dev->dev, res);
1366 if (!base) 1366 if (IS_ERR(base))
1367 return -ENOMEM; 1367 return PTR_ERR(base);
1368 1368
1369 clk = devm_clk_get(&dev->dev, NULL); 1369 clk = devm_clk_get(&dev->dev, NULL);
1370 if (IS_ERR(clk)) 1370 if (IS_ERR(clk))
diff --git a/drivers/pinctrl/pinctrl-pxa3xx.c b/drivers/pinctrl/pinctrl-pxa3xx.c
index 51f8a388b917..1f49bb02a6af 100644
--- a/drivers/pinctrl/pinctrl-pxa3xx.c
+++ b/drivers/pinctrl/pinctrl-pxa3xx.c
@@ -11,6 +11,7 @@
11 * 11 *
12 */ 12 */
13 13
14#include <linux/err.h>
14#include <linux/module.h> 15#include <linux/module.h>
15#include <linux/device.h> 16#include <linux/device.h>
16#include <linux/io.h> 17#include <linux/io.h>
@@ -187,9 +188,9 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev,
187 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 188 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
188 if (!res) 189 if (!res)
189 return -ENOENT; 190 return -ENOENT;
190 info->virt_base = devm_request_and_ioremap(&pdev->dev, res); 191 info->virt_base = devm_ioremap_resource(&pdev->dev, res);
191 if (!info->virt_base) 192 if (IS_ERR(info->virt_base))
192 return -ENOMEM; 193 return PTR_ERR(info->virt_base);
193 info->pctrl = pinctrl_register(desc, &pdev->dev, info); 194 info->pctrl = pinctrl_register(desc, &pdev->dev, info);
194 if (!info->pctrl) { 195 if (!info->pctrl) {
195 dev_err(&pdev->dev, "failed to register PXA pinmux driver\n"); 196 dev_err(&pdev->dev, "failed to register PXA pinmux driver\n");
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c
index 5c20ed056054..5f8441ef59ca 100644
--- a/drivers/pinctrl/pinctrl-samsung.c
+++ b/drivers/pinctrl/pinctrl-samsung.c
@@ -916,11 +916,9 @@ static int samsung_pinctrl_probe(struct platform_device *pdev)
916 return -ENOENT; 916 return -ENOENT;
917 } 917 }
918 918
919 drvdata->virt_base = devm_request_and_ioremap(&pdev->dev, res); 919 drvdata->virt_base = devm_ioremap_resource(&pdev->dev, res);
920 if (!drvdata->virt_base) { 920 if (IS_ERR(drvdata->virt_base))
921 dev_err(dev, "ioremap failed\n"); 921 return PTR_ERR(drvdata->virt_base);
922 return -ENODEV;
923 }
924 922
925 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 923 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
926 if (res) 924 if (res)
diff --git a/drivers/pinctrl/pinctrl-u300.c b/drivers/pinctrl/pinctrl-u300.c
index 718ec5762683..2b5772550836 100644
--- a/drivers/pinctrl/pinctrl-u300.c
+++ b/drivers/pinctrl/pinctrl-u300.c
@@ -1078,9 +1078,9 @@ static int u300_pmx_probe(struct platform_device *pdev)
1078 if (!res) 1078 if (!res)
1079 return -ENOENT; 1079 return -ENOENT;
1080 1080
1081 upmx->virtbase = devm_request_and_ioremap(&pdev->dev, res); 1081 upmx->virtbase = devm_ioremap_resource(&pdev->dev, res);
1082 if (!upmx->virtbase) 1082 if (IS_ERR(upmx->virtbase))
1083 return -ENOMEM; 1083 return PTR_ERR(upmx->virtbase);
1084 1084
1085 upmx->pctl = pinctrl_register(&u300_pmx_desc, &pdev->dev, upmx); 1085 upmx->pctl = pinctrl_register(&u300_pmx_desc, &pdev->dev, upmx);
1086 if (!upmx->pctl) { 1086 if (!upmx->pctl) {
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c
index 53cb6a3a56ed..068224efa6fa 100644
--- a/drivers/pinctrl/pinctrl-xway.c
+++ b/drivers/pinctrl/pinctrl-xway.c
@@ -9,6 +9,7 @@
9 * Copyright (C) 2012 John Crispin <blogic@openwrt.org> 9 * Copyright (C) 2012 John Crispin <blogic@openwrt.org>
10 */ 10 */
11 11
12#include <linux/err.h>
12#include <linux/slab.h> 13#include <linux/slab.h>
13#include <linux/module.h> 14#include <linux/module.h>
14#include <linux/of_platform.h> 15#include <linux/of_platform.h>
@@ -719,11 +720,9 @@ static int pinmux_xway_probe(struct platform_device *pdev)
719 dev_err(&pdev->dev, "Failed to get resource\n"); 720 dev_err(&pdev->dev, "Failed to get resource\n");
720 return -ENOENT; 721 return -ENOENT;
721 } 722 }
722 xway_info.membase[0] = devm_request_and_ioremap(&pdev->dev, res); 723 xway_info.membase[0] = devm_ioremap_resource(&pdev->dev, res);
723 if (!xway_info.membase[0]) { 724 if (IS_ERR(xway_info.membase[0]))
724 dev_err(&pdev->dev, "Failed to remap resource\n"); 725 return PTR_ERR(xway_info.membase[0]);
725 return -ENOMEM;
726 }
727 726
728 match = of_match_device(xway_match, &pdev->dev); 727 match = of_match_device(xway_match, &pdev->dev);
729 if (match) 728 if (match)
diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c
index 3cf4ecd9302c..295b349a05cf 100644
--- a/drivers/pinctrl/spear/pinctrl-plgpio.c
+++ b/drivers/pinctrl/spear/pinctrl-plgpio.c
@@ -540,11 +540,9 @@ static int plgpio_probe(struct platform_device *pdev)
540 return -ENOMEM; 540 return -ENOMEM;
541 } 541 }
542 542
543 plgpio->base = devm_request_and_ioremap(&pdev->dev, res); 543 plgpio->base = devm_ioremap_resource(&pdev->dev, res);
544 if (!plgpio->base) { 544 if (IS_ERR(plgpio->base))
545 dev_err(&pdev->dev, "request and ioremap fail\n"); 545 return PTR_ERR(plgpio->base);
546 return -ENOMEM;
547 }
548 546
549 ret = plgpio_probe_dt(pdev, plgpio); 547 ret = plgpio_probe_dt(pdev, plgpio);
550 if (ret) { 548 if (ret) {
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index c86bae828c28..7ab0b2fba503 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -80,10 +80,9 @@ config ASUS_LAPTOP
80 If you have an ACPI-compatible ASUS laptop, say Y or M here. 80 If you have an ACPI-compatible ASUS laptop, say Y or M here.
81 81
82config DELL_LAPTOP 82config DELL_LAPTOP
83 tristate "Dell Laptop Extras (EXPERIMENTAL)" 83 tristate "Dell Laptop Extras"
84 depends on X86 84 depends on X86
85 depends on DCDBAS 85 depends on DCDBAS
86 depends on EXPERIMENTAL
87 depends on BACKLIGHT_CLASS_DEVICE 86 depends on BACKLIGHT_CLASS_DEVICE
88 depends on RFKILL || RFKILL = n 87 depends on RFKILL || RFKILL = n
89 depends on SERIO_I8042 88 depends on SERIO_I8042
@@ -171,9 +170,8 @@ config AMILO_RFKILL
171 laptops. 170 laptops.
172 171
173config TC1100_WMI 172config TC1100_WMI
174 tristate "HP Compaq TC1100 Tablet WMI Extras (EXPERIMENTAL)" 173 tristate "HP Compaq TC1100 Tablet WMI Extras"
175 depends on !X86_64 174 depends on !X86_64
176 depends on EXPERIMENTAL
177 depends on ACPI 175 depends on ACPI
178 depends on ACPI_WMI 176 depends on ACPI_WMI
179 ---help--- 177 ---help---
diff --git a/drivers/power/jz4740-battery.c b/drivers/power/jz4740-battery.c
index bf914893c6fd..c675553d4647 100644
--- a/drivers/power/jz4740-battery.c
+++ b/drivers/power/jz4740-battery.c
@@ -22,6 +22,7 @@
22#include <linux/io.h> 22#include <linux/io.h>
23 23
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/err.h>
25#include <linux/gpio.h> 26#include <linux/gpio.h>
26#include <linux/mfd/core.h> 27#include <linux/mfd/core.h>
27#include <linux/power_supply.h> 28#include <linux/power_supply.h>
@@ -266,9 +267,9 @@ static int jz_battery_probe(struct platform_device *pdev)
266 267
267 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 268 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
268 269
269 jz_battery->base = devm_request_and_ioremap(&pdev->dev, mem); 270 jz_battery->base = devm_ioremap_resource(&pdev->dev, mem);
270 if (!jz_battery->base) 271 if (IS_ERR(jz_battery->base))
271 return -EBUSY; 272 return PTR_ERR(jz_battery->base);
272 273
273 battery = &jz_battery->battery; 274 battery = &jz_battery->battery;
274 battery->name = pdata->info.name; 275 battery->name = pdata->info.name;
diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
index 8a7cfb3cc166..5deac432e2ae 100644
--- a/drivers/power/power_supply_core.c
+++ b/drivers/power/power_supply_core.c
@@ -141,7 +141,7 @@ int power_supply_set_battery_charged(struct power_supply *psy)
141} 141}
142EXPORT_SYMBOL_GPL(power_supply_set_battery_charged); 142EXPORT_SYMBOL_GPL(power_supply_set_battery_charged);
143 143
144static int power_supply_match_device_by_name(struct device *dev, void *data) 144static int power_supply_match_device_by_name(struct device *dev, const void *data)
145{ 145{
146 const char *name = data; 146 const char *name = data;
147 struct power_supply *psy = dev_get_drvdata(dev); 147 struct power_supply *psy = dev_get_drvdata(dev);
@@ -149,7 +149,7 @@ static int power_supply_match_device_by_name(struct device *dev, void *data)
149 return strcmp(psy->name, name) == 0; 149 return strcmp(psy->name, name) == 0;
150} 150}
151 151
152struct power_supply *power_supply_get_by_name(char *name) 152struct power_supply *power_supply_get_by_name(const char *name)
153{ 153{
154 struct device *dev = class_find_device(power_supply_class, NULL, name, 154 struct device *dev = class_find_device(power_supply_class, NULL, name,
155 power_supply_match_device_by_name); 155 power_supply_match_device_by_name);
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index 65a86bdeabed..3f5677b7690e 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -274,9 +274,9 @@ static int imx_pwm_probe(struct platform_device *pdev)
274 return -ENODEV; 274 return -ENODEV;
275 } 275 }
276 276
277 imx->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 277 imx->mmio_base = devm_ioremap_resource(&pdev->dev, r);
278 if (imx->mmio_base == NULL) 278 if (IS_ERR(imx->mmio_base))
279 return -EADDRNOTAVAIL; 279 return PTR_ERR(imx->mmio_base);
280 280
281 data = of_id->data; 281 data = of_id->data;
282 imx->config = data->config; 282 imx->config = data->config;
diff --git a/drivers/pwm/pwm-lpc32xx.c b/drivers/pwm/pwm-lpc32xx.c
index 14106440294f..b3f0d0dfd748 100644
--- a/drivers/pwm/pwm-lpc32xx.c
+++ b/drivers/pwm/pwm-lpc32xx.c
@@ -110,9 +110,9 @@ static int lpc32xx_pwm_probe(struct platform_device *pdev)
110 if (!res) 110 if (!res)
111 return -EINVAL; 111 return -EINVAL;
112 112
113 lpc32xx->base = devm_request_and_ioremap(&pdev->dev, res); 113 lpc32xx->base = devm_ioremap_resource(&pdev->dev, res);
114 if (!lpc32xx->base) 114 if (IS_ERR(lpc32xx->base))
115 return -EADDRNOTAVAIL; 115 return PTR_ERR(lpc32xx->base);
116 116
117 lpc32xx->clk = devm_clk_get(&pdev->dev, NULL); 117 lpc32xx->clk = devm_clk_get(&pdev->dev, NULL);
118 if (IS_ERR(lpc32xx->clk)) 118 if (IS_ERR(lpc32xx->clk))
diff --git a/drivers/pwm/pwm-mxs.c b/drivers/pwm/pwm-mxs.c
index 7ec345f01831..a53d3094b75a 100644
--- a/drivers/pwm/pwm-mxs.c
+++ b/drivers/pwm/pwm-mxs.c
@@ -139,9 +139,9 @@ static int mxs_pwm_probe(struct platform_device *pdev)
139 return -ENOMEM; 139 return -ENOMEM;
140 140
141 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 141 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
142 mxs->base = devm_request_and_ioremap(&pdev->dev, res); 142 mxs->base = devm_ioremap_resource(&pdev->dev, res);
143 if (!mxs->base) 143 if (IS_ERR(mxs->base))
144 return -EADDRNOTAVAIL; 144 return PTR_ERR(mxs->base);
145 145
146 pinctrl = devm_pinctrl_get_select_default(&pdev->dev); 146 pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
147 if (IS_ERR(pinctrl)) 147 if (IS_ERR(pinctrl))
diff --git a/drivers/pwm/pwm-puv3.c b/drivers/pwm/pwm-puv3.c
index b882f6032fee..db964e6ecf5c 100644
--- a/drivers/pwm/pwm-puv3.c
+++ b/drivers/pwm/pwm-puv3.c
@@ -123,9 +123,9 @@ static int pwm_probe(struct platform_device *pdev)
123 return -ENODEV; 123 return -ENODEV;
124 } 124 }
125 125
126 puv3->base = devm_request_and_ioremap(&pdev->dev, r); 126 puv3->base = devm_ioremap_resource(&pdev->dev, r);
127 if (puv3->base == NULL) 127 if (IS_ERR(puv3->base))
128 return -EADDRNOTAVAIL; 128 return PTR_ERR(puv3->base);
129 129
130 puv3->chip.dev = &pdev->dev; 130 puv3->chip.dev = &pdev->dev;
131 puv3->chip.ops = &puv3_pwm_ops; 131 puv3->chip.ops = &puv3_pwm_ops;
diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c
index f32fc4e66e0c..20370e61de5a 100644
--- a/drivers/pwm/pwm-pxa.c
+++ b/drivers/pwm/pwm-pxa.c
@@ -165,9 +165,9 @@ static int pwm_probe(struct platform_device *pdev)
165 return -ENODEV; 165 return -ENODEV;
166 } 166 }
167 167
168 pwm->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 168 pwm->mmio_base = devm_ioremap_resource(&pdev->dev, r);
169 if (pwm->mmio_base == NULL) 169 if (IS_ERR(pwm->mmio_base))
170 return -EADDRNOTAVAIL; 170 return PTR_ERR(pwm->mmio_base);
171 171
172 ret = pwmchip_add(&pwm->chip); 172 ret = pwmchip_add(&pwm->chip);
173 if (ret < 0) { 173 if (ret < 0) {
diff --git a/drivers/pwm/pwm-spear.c b/drivers/pwm/pwm-spear.c
index 83b21d9d5cf9..69a2d9eb34db 100644
--- a/drivers/pwm/pwm-spear.c
+++ b/drivers/pwm/pwm-spear.c
@@ -192,9 +192,9 @@ static int spear_pwm_probe(struct platform_device *pdev)
192 return -ENOMEM; 192 return -ENOMEM;
193 } 193 }
194 194
195 pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 195 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r);
196 if (!pc->mmio_base) 196 if (IS_ERR(pc->mmio_base))
197 return -EADDRNOTAVAIL; 197 return PTR_ERR(pc->mmio_base);
198 198
199 pc->clk = devm_clk_get(&pdev->dev, NULL); 199 pc->clk = devm_clk_get(&pdev->dev, NULL);
200 if (IS_ERR(pc->clk)) 200 if (IS_ERR(pc->clk))
diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c
index 30c0e2b70ce8..71900e8cd3d1 100644
--- a/drivers/pwm/pwm-tegra.c
+++ b/drivers/pwm/pwm-tegra.c
@@ -186,9 +186,9 @@ static int tegra_pwm_probe(struct platform_device *pdev)
186 return -ENODEV; 186 return -ENODEV;
187 } 187 }
188 188
189 pwm->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 189 pwm->mmio_base = devm_ioremap_resource(&pdev->dev, r);
190 if (!pwm->mmio_base) 190 if (IS_ERR(pwm->mmio_base))
191 return -EADDRNOTAVAIL; 191 return PTR_ERR(pwm->mmio_base);
192 192
193 platform_set_drvdata(pdev, pwm); 193 platform_set_drvdata(pdev, pwm);
194 194
diff --git a/drivers/pwm/pwm-tiecap.c b/drivers/pwm/pwm-tiecap.c
index 5cf016dd9822..27a67d6b27c1 100644
--- a/drivers/pwm/pwm-tiecap.c
+++ b/drivers/pwm/pwm-tiecap.c
@@ -238,9 +238,9 @@ static int ecap_pwm_probe(struct platform_device *pdev)
238 return -ENODEV; 238 return -ENODEV;
239 } 239 }
240 240
241 pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 241 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r);
242 if (!pc->mmio_base) 242 if (IS_ERR(pc->mmio_base))
243 return -EADDRNOTAVAIL; 243 return PTR_ERR(pc->mmio_base);
244 244
245 ret = pwmchip_add(&pc->chip); 245 ret = pwmchip_add(&pc->chip);
246 if (ret < 0) { 246 if (ret < 0) {
diff --git a/drivers/pwm/pwm-tiehrpwm.c b/drivers/pwm/pwm-tiehrpwm.c
index 72a6dd40c9ec..5a1399580533 100644
--- a/drivers/pwm/pwm-tiehrpwm.c
+++ b/drivers/pwm/pwm-tiehrpwm.c
@@ -453,9 +453,9 @@ static int ehrpwm_pwm_probe(struct platform_device *pdev)
453 return -ENODEV; 453 return -ENODEV;
454 } 454 }
455 455
456 pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 456 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r);
457 if (!pc->mmio_base) 457 if (IS_ERR(pc->mmio_base))
458 return -EADDRNOTAVAIL; 458 return PTR_ERR(pc->mmio_base);
459 459
460 /* Acquire tbclk for Time Base EHRPWM submodule */ 460 /* Acquire tbclk for Time Base EHRPWM submodule */
461 pc->tbclk = devm_clk_get(&pdev->dev, "tbclk"); 461 pc->tbclk = devm_clk_get(&pdev->dev, "tbclk");
diff --git a/drivers/pwm/pwm-tipwmss.c b/drivers/pwm/pwm-tipwmss.c
index 3448a1c88590..17cbc59660ec 100644
--- a/drivers/pwm/pwm-tipwmss.c
+++ b/drivers/pwm/pwm-tipwmss.c
@@ -75,9 +75,9 @@ static int pwmss_probe(struct platform_device *pdev)
75 return -ENODEV; 75 return -ENODEV;
76 } 76 }
77 77
78 info->mmio_base = devm_request_and_ioremap(&pdev->dev, r); 78 info->mmio_base = devm_ioremap_resource(&pdev->dev, r);
79 if (!info->mmio_base) 79 if (IS_ERR(info->mmio_base))
80 return -EADDRNOTAVAIL; 80 return PTR_ERR(info->mmio_base);
81 81
82 pm_runtime_enable(&pdev->dev); 82 pm_runtime_enable(&pdev->dev);
83 pm_runtime_get_sync(&pdev->dev); 83 pm_runtime_get_sync(&pdev->dev);
diff --git a/drivers/pwm/pwm-vt8500.c b/drivers/pwm/pwm-vt8500.c
index b0ba2d403439..f9de9b28e46e 100644
--- a/drivers/pwm/pwm-vt8500.c
+++ b/drivers/pwm/pwm-vt8500.c
@@ -178,9 +178,9 @@ static int vt8500_pwm_probe(struct platform_device *pdev)
178 return -ENODEV; 178 return -ENODEV;
179 } 179 }
180 180
181 chip->base = devm_request_and_ioremap(&pdev->dev, r); 181 chip->base = devm_ioremap_resource(&pdev->dev, r);
182 if (!chip->base) 182 if (IS_ERR(chip->base))
183 return -EADDRNOTAVAIL; 183 return PTR_ERR(chip->base);
184 184
185 ret = clk_prepare(chip->clk); 185 ret = clk_prepare(chip->clk);
186 if (ret < 0) { 186 if (ret < 0) {
diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
index 96ce101b9067..0b24108d1e1b 100644
--- a/drivers/remoteproc/Kconfig
+++ b/drivers/remoteproc/Kconfig
@@ -1,16 +1,14 @@
1menu "Remoteproc drivers (EXPERIMENTAL)" 1menu "Remoteproc drivers"
2 2
3# REMOTEPROC gets selected by whoever wants it 3# REMOTEPROC gets selected by whoever wants it
4config REMOTEPROC 4config REMOTEPROC
5 tristate 5 tristate
6 depends on EXPERIMENTAL
7 depends on HAS_DMA 6 depends on HAS_DMA
8 select FW_CONFIG 7 select FW_CONFIG
9 select VIRTIO 8 select VIRTIO
10 9
11config OMAP_REMOTEPROC 10config OMAP_REMOTEPROC
12 tristate "OMAP remoteproc support" 11 tristate "OMAP remoteproc support"
13 depends on EXPERIMENTAL
14 depends on HAS_DMA 12 depends on HAS_DMA
15 depends on ARCH_OMAP4 13 depends on ARCH_OMAP4
16 depends on OMAP_IOMMU 14 depends on OMAP_IOMMU
@@ -32,7 +30,6 @@ config OMAP_REMOTEPROC
32 30
33config STE_MODEM_RPROC 31config STE_MODEM_RPROC
34 tristate "STE-Modem remoteproc support" 32 tristate "STE-Modem remoteproc support"
35 depends on EXPERIMENTAL
36 depends on HAS_DMA 33 depends on HAS_DMA
37 select REMOTEPROC 34 select REMOTEPROC
38 default n 35 default n
diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig
index 2bd911f12571..f6e0ea6ffda5 100644
--- a/drivers/rpmsg/Kconfig
+++ b/drivers/rpmsg/Kconfig
@@ -1,9 +1,8 @@
1menu "Rpmsg drivers (EXPERIMENTAL)" 1menu "Rpmsg drivers"
2 2
3# RPMSG always gets selected by whoever wants it 3# RPMSG always gets selected by whoever wants it
4config RPMSG 4config RPMSG
5 tristate 5 tristate
6 select VIRTIO 6 select VIRTIO
7 depends on EXPERIMENTAL
8 7
9endmenu 8endmenu
diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
index 9592b936b71b..42bd57da239d 100644
--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -587,16 +587,16 @@ void rtc_update_irq(struct rtc_device *rtc,
587} 587}
588EXPORT_SYMBOL_GPL(rtc_update_irq); 588EXPORT_SYMBOL_GPL(rtc_update_irq);
589 589
590static int __rtc_match(struct device *dev, void *data) 590static int __rtc_match(struct device *dev, const void *data)
591{ 591{
592 char *name = (char *)data; 592 const char *name = data;
593 593
594 if (strcmp(dev_name(dev), name) == 0) 594 if (strcmp(dev_name(dev), name) == 0)
595 return 1; 595 return 1;
596 return 0; 596 return 0;
597} 597}
598 598
599struct rtc_device *rtc_class_open(char *name) 599struct rtc_device *rtc_class_open(const char *name)
600{ 600{
601 struct device *dev; 601 struct device *dev;
602 struct rtc_device *rtc = NULL; 602 struct rtc_device *rtc = NULL;
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 404651464d45..0c397ac3b132 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -486,11 +486,9 @@ static int s3c_rtc_probe(struct platform_device *pdev)
486 return -ENOENT; 486 return -ENOENT;
487 } 487 }
488 488
489 s3c_rtc_base = devm_request_and_ioremap(&pdev->dev, res); 489 s3c_rtc_base = devm_ioremap_resource(&pdev->dev, res);
490 if (s3c_rtc_base == NULL) { 490 if (IS_ERR(s3c_rtc_base))
491 dev_err(&pdev->dev, "failed to ioremap memory region\n"); 491 return PTR_ERR(s3c_rtc_base);
492 return -EINVAL;
493 }
494 492
495 rtc_clk = devm_clk_get(&pdev->dev, "rtc"); 493 rtc_clk = devm_clk_get(&pdev->dev, "rtc");
496 if (IS_ERR(rtc_clk)) { 494 if (IS_ERR(rtc_clk)) {
diff --git a/drivers/rtc/rtc-snvs.c b/drivers/rtc/rtc-snvs.c
index d5ec7854a651..40662e9dc0ab 100644
--- a/drivers/rtc/rtc-snvs.c
+++ b/drivers/rtc/rtc-snvs.c
@@ -252,9 +252,9 @@ static int snvs_rtc_probe(struct platform_device *pdev)
252 return -ENOMEM; 252 return -ENOMEM;
253 253
254 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 254 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
255 data->ioaddr = devm_request_and_ioremap(&pdev->dev, res); 255 data->ioaddr = devm_ioremap_resource(&pdev->dev, res);
256 if (!data->ioaddr) 256 if (IS_ERR(data->ioaddr))
257 return -EADDRNOTAVAIL; 257 return PTR_ERR(data->ioaddr);
258 258
259 data->irq = platform_get_irq(pdev, 0); 259 data->irq = platform_get_irq(pdev, 0);
260 if (data->irq < 0) 260 if (data->irq < 0)
diff --git a/drivers/rtc/rtc-spear.c b/drivers/rtc/rtc-spear.c
index c2121b5a01f2..a18c3192ed40 100644
--- a/drivers/rtc/rtc-spear.c
+++ b/drivers/rtc/rtc-spear.c
@@ -385,11 +385,9 @@ static int spear_rtc_probe(struct platform_device *pdev)
385 return status; 385 return status;
386 } 386 }
387 387
388 config->ioaddr = devm_request_and_ioremap(&pdev->dev, res); 388 config->ioaddr = devm_ioremap_resource(&pdev->dev, res);
389 if (!config->ioaddr) { 389 if (IS_ERR(config->ioaddr))
390 dev_err(&pdev->dev, "request-ioremap fail\n"); 390 return PTR_ERR(config->ioaddr);
391 return -ENOMEM;
392 }
393 391
394 config->clk = devm_clk_get(&pdev->dev, NULL); 392 config->clk = devm_clk_get(&pdev->dev, NULL);
395 if (IS_ERR(config->clk)) 393 if (IS_ERR(config->clk))
diff --git a/drivers/rtc/rtc-tegra.c b/drivers/rtc/rtc-tegra.c
index c84ea6659f49..7c033756d6b5 100644
--- a/drivers/rtc/rtc-tegra.c
+++ b/drivers/rtc/rtc-tegra.c
@@ -327,11 +327,9 @@ static int tegra_rtc_probe(struct platform_device *pdev)
327 return -EBUSY; 327 return -EBUSY;
328 } 328 }
329 329
330 info->rtc_base = devm_request_and_ioremap(&pdev->dev, res); 330 info->rtc_base = devm_ioremap_resource(&pdev->dev, res);
331 if (!info->rtc_base) { 331 if (IS_ERR(info->rtc_base))
332 dev_err(&pdev->dev, "Unable to request mem region and grab IOs for device.\n"); 332 return PTR_ERR(info->rtc_base);
333 return -EBUSY;
334 }
335 333
336 info->tegra_rtc_irq = platform_get_irq(pdev, 0); 334 info->tegra_rtc_irq = platform_get_irq(pdev, 0);
337 if (info->tegra_rtc_irq <= 0) 335 if (info->tegra_rtc_irq <= 0)
diff --git a/drivers/sbus/char/Kconfig b/drivers/sbus/char/Kconfig
index 73cde85d04d8..5ba684f73ab8 100644
--- a/drivers/sbus/char/Kconfig
+++ b/drivers/sbus/char/Kconfig
@@ -21,8 +21,7 @@ config OBP_FLASH
21 able to upgrade the OBP firmware, say Y here. 21 able to upgrade the OBP firmware, say Y here.
22 22
23config TADPOLE_TS102_UCTRL 23config TADPOLE_TS102_UCTRL
24 tristate "Tadpole TS102 Microcontroller support (EXPERIMENTAL)" 24 tristate "Tadpole TS102 Microcontroller support"
25 depends on EXPERIMENTAL
26 help 25 help
27 Say Y here to directly support the TS102 Microcontroller interface 26 Say Y here to directly support the TS102 Microcontroller interface
28 on the Tadpole Sparcbook 3. This device handles power-management 27 on the Tadpole Sparcbook 3. This device handles power-management
@@ -30,8 +29,8 @@ config TADPOLE_TS102_UCTRL
30 monitors and mice. 29 monitors and mice.
31 30
32config SUN_JSFLASH 31config SUN_JSFLASH
33 tristate "JavaStation OS Flash SIMM (EXPERIMENTAL)" 32 tristate "JavaStation OS Flash SIMM"
34 depends on EXPERIMENTAL && SPARC32 33 depends on SPARC32
35 help 34 help
36 If you say Y here, you will be able to boot from your JavaStation's 35 If you say Y here, you will be able to boot from your JavaStation's
37 Flash memory. 36 Flash memory.
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 142f632e2a2e..d56b2534f3eb 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -42,7 +42,7 @@ config SCSI_DMA
42 42
43config SCSI_TGT 43config SCSI_TGT
44 tristate "SCSI target support" 44 tristate "SCSI target support"
45 depends on SCSI && EXPERIMENTAL 45 depends on SCSI
46 ---help--- 46 ---help---
47 If you want to use SCSI target mode drivers enable this option. 47 If you want to use SCSI target mode drivers enable this option.
48 If you choose M, the module will be called scsi_tgt. 48 If you choose M, the module will be called scsi_tgt.
@@ -1392,8 +1392,8 @@ config SCSI_SYM53C416
1392 module will be called sym53c416. 1392 module will be called sym53c416.
1393 1393
1394config SCSI_DC395x 1394config SCSI_DC395x
1395 tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support (EXPERIMENTAL)" 1395 tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support"
1396 depends on PCI && SCSI && EXPERIMENTAL 1396 depends on PCI && SCSI
1397 ---help--- 1397 ---help---
1398 This driver supports PCI SCSI host adapters based on the ASIC 1398 This driver supports PCI SCSI host adapters based on the ASIC
1399 TRM-S1040 chip, e.g Tekram DC395(U/UW/F) and DC315(U) variants. 1399 TRM-S1040 chip, e.g Tekram DC395(U/UW/F) and DC315(U) variants.
@@ -1618,8 +1618,8 @@ config GVP11_SCSI
1618 module will be called gvp11. 1618 module will be called gvp11.
1619 1619
1620config SCSI_A4000T 1620config SCSI_A4000T
1621 tristate "A4000T NCR53c710 SCSI support (EXPERIMENTAL)" 1621 tristate "A4000T NCR53c710 SCSI support"
1622 depends on AMIGA && SCSI && EXPERIMENTAL 1622 depends on AMIGA && SCSI
1623 select SCSI_SPI_ATTRS 1623 select SCSI_SPI_ATTRS
1624 help 1624 help
1625 If you have an Amiga 4000T and have SCSI devices connected to the 1625 If you have an Amiga 4000T and have SCSI devices connected to the
@@ -1629,8 +1629,8 @@ config SCSI_A4000T
1629 module will be called a4000t. 1629 module will be called a4000t.
1630 1630
1631config SCSI_ZORRO7XX 1631config SCSI_ZORRO7XX
1632 tristate "Zorro NCR53c710 SCSI support (EXPERIMENTAL)" 1632 tristate "Zorro NCR53c710 SCSI support"
1633 depends on ZORRO && SCSI && EXPERIMENTAL 1633 depends on ZORRO && SCSI
1634 select SCSI_SPI_ATTRS 1634 select SCSI_SPI_ATTRS
1635 help 1635 help
1636 Support for various NCR53c710-based SCSI controllers on Zorro 1636 Support for various NCR53c710-based SCSI controllers on Zorro
@@ -1807,8 +1807,8 @@ config SCSI_BFA_FC
1807 be called bfa. 1807 be called bfa.
1808 1808
1809config SCSI_VIRTIO 1809config SCSI_VIRTIO
1810 tristate "virtio-scsi support (EXPERIMENTAL)" 1810 tristate "virtio-scsi support"
1811 depends on EXPERIMENTAL && VIRTIO 1811 depends on VIRTIO
1812 help 1812 help
1813 This is the virtual HBA driver for virtio. If the kernel will 1813 This is the virtual HBA driver for virtio. If the kernel will
1814 be used in a virtual machine, say Y or M. 1814 be used in a virtual machine, say Y or M.
diff --git a/drivers/scsi/arm/Kconfig b/drivers/scsi/arm/Kconfig
index a8587f1f5e7e..cfd172a439c9 100644
--- a/drivers/scsi/arm/Kconfig
+++ b/drivers/scsi/arm/Kconfig
@@ -64,19 +64,19 @@ config SCSI_POWERTECSCSI
64 you have one of these, say Y. If unsure, say N. 64 you have one of these, say Y. If unsure, say N.
65 65
66comment "The following drivers are not fully supported" 66comment "The following drivers are not fully supported"
67 depends on ARCH_ACORN && EXPERIMENTAL 67 depends on ARCH_ACORN
68 68
69config SCSI_CUMANA_1 69config SCSI_CUMANA_1
70 tristate "CumanaSCSI I support (EXPERIMENTAL)" 70 tristate "CumanaSCSI I support"
71 depends on ARCH_ACORN && EXPERIMENTAL && SCSI 71 depends on ARCH_ACORN && SCSI
72 select SCSI_SPI_ATTRS 72 select SCSI_SPI_ATTRS
73 help 73 help
74 This enables support for the Cumana SCSI I card. If you have an 74 This enables support for the Cumana SCSI I card. If you have an
75 Acorn system with one of these, say Y. If unsure, say N. 75 Acorn system with one of these, say Y. If unsure, say N.
76 76
77config SCSI_OAK1 77config SCSI_OAK1
78 tristate "Oak SCSI support (EXPERIMENTAL)" 78 tristate "Oak SCSI support"
79 depends on ARCH_ACORN && EXPERIMENTAL && SCSI 79 depends on ARCH_ACORN && SCSI
80 select SCSI_SPI_ATTRS 80 select SCSI_SPI_ATTRS
81 help 81 help
82 This enables support for the Oak SCSI card. If you have an Acorn 82 This enables support for the Oak SCSI card. If you have an Acorn
diff --git a/drivers/scsi/device_handler/Kconfig b/drivers/scsi/device_handler/Kconfig
index 67070257919f..69abd0ad48e2 100644
--- a/drivers/scsi/device_handler/Kconfig
+++ b/drivers/scsi/device_handler/Kconfig
@@ -32,8 +32,8 @@ config SCSI_DH_EMC
32 If you have a EMC CLARiiON select y. Otherwise, say N. 32 If you have a EMC CLARiiON select y. Otherwise, say N.
33 33
34config SCSI_DH_ALUA 34config SCSI_DH_ALUA
35 tristate "SPC-3 ALUA Device Handler (EXPERIMENTAL)" 35 tristate "SPC-3 ALUA Device Handler"
36 depends on SCSI_DH && EXPERIMENTAL 36 depends on SCSI_DH
37 help 37 help
38 SCSI Device handler for generic SPC-3 Asymmetric Logical Unit 38 SCSI Device handler for generic SPC-3 Asymmetric Logical Unit
39 Access (ALUA). 39 Access (ALUA).
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 593085a52275..df0c3c71ea43 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -468,10 +468,10 @@ void scsi_unregister(struct Scsi_Host *shost)
468} 468}
469EXPORT_SYMBOL(scsi_unregister); 469EXPORT_SYMBOL(scsi_unregister);
470 470
471static int __scsi_host_match(struct device *dev, void *data) 471static int __scsi_host_match(struct device *dev, const void *data)
472{ 472{
473 struct Scsi_Host *p; 473 struct Scsi_Host *p;
474 unsigned short *hostnum = (unsigned short *)data; 474 const unsigned short *hostnum = data;
475 475
476 p = class_to_shost(dev); 476 p = class_to_shost(dev);
477 return p->host_no == *hostnum; 477 return p->host_no == *hostnum;
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
index 43754176a7b7..0fab6b5c7b82 100644
--- a/drivers/scsi/osd/osd_uld.c
+++ b/drivers/scsi/osd/osd_uld.c
@@ -268,18 +268,11 @@ static inline bool _the_same_or_null(const u8 *a1, unsigned a1_len,
268 return 0 == memcmp(a1, a2, a1_len); 268 return 0 == memcmp(a1, a2, a1_len);
269} 269}
270 270
271struct find_oud_t { 271static int _match_odi(struct device *dev, const void *find_data)
272 const struct osd_dev_info *odi;
273 struct device *dev;
274 struct osd_uld_device *oud;
275} ;
276
277int _mach_odi(struct device *dev, void *find_data)
278{ 272{
279 struct osd_uld_device *oud = container_of(dev, struct osd_uld_device, 273 struct osd_uld_device *oud = container_of(dev, struct osd_uld_device,
280 class_dev); 274 class_dev);
281 struct find_oud_t *fot = find_data; 275 const struct osd_dev_info *odi = find_data;
282 const struct osd_dev_info *odi = fot->odi;
283 276
284 if (_the_same_or_null(oud->odi.systemid, oud->odi.systemid_len, 277 if (_the_same_or_null(oud->odi.systemid, oud->odi.systemid_len,
285 odi->systemid, odi->systemid_len) && 278 odi->systemid, odi->systemid_len) &&
@@ -287,7 +280,6 @@ int _mach_odi(struct device *dev, void *find_data)
287 odi->osdname, odi->osdname_len)) { 280 odi->osdname, odi->osdname_len)) {
288 OSD_DEBUG("found device sysid_len=%d osdname=%d\n", 281 OSD_DEBUG("found device sysid_len=%d osdname=%d\n",
289 odi->systemid_len, odi->osdname_len); 282 odi->systemid_len, odi->osdname_len);
290 fot->oud = oud;
291 return 1; 283 return 1;
292 } else { 284 } else {
293 return 0; 285 return 0;
@@ -301,19 +293,19 @@ int _mach_odi(struct device *dev, void *find_data)
301 */ 293 */
302struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi) 294struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi)
303{ 295{
304 struct find_oud_t find = {.odi = odi}; 296 struct device *dev = class_find_device(&osd_uld_class, NULL, odi, _match_odi);
305 297 if (likely(dev)) {
306 find.dev = class_find_device(&osd_uld_class, NULL, &find, _mach_odi);
307 if (likely(find.dev)) {
308 struct osd_dev_handle *odh = kzalloc(sizeof(*odh), GFP_KERNEL); 298 struct osd_dev_handle *odh = kzalloc(sizeof(*odh), GFP_KERNEL);
299 struct osd_uld_device *oud = container_of(dev,
300 struct osd_uld_device, class_dev);
309 301
310 if (unlikely(!odh)) { 302 if (unlikely(!odh)) {
311 put_device(find.dev); 303 put_device(dev);
312 return ERR_PTR(-ENOMEM); 304 return ERR_PTR(-ENOMEM);
313 } 305 }
314 306
315 odh->od = find.oud->od; 307 odh->od = oud->od;
316 odh->oud = find.oud; 308 odh->oud = oud;
317 309
318 return &odh->od; 310 return &odh->od;
319 } 311 }
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 31969f2e13ce..59d427bf08e2 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -183,10 +183,10 @@ static struct attribute_group iscsi_endpoint_group = {
183 183
184#define ISCSI_MAX_EPID -1 184#define ISCSI_MAX_EPID -1
185 185
186static int iscsi_match_epid(struct device *dev, void *data) 186static int iscsi_match_epid(struct device *dev, const void *data)
187{ 187{
188 struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev); 188 struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev);
189 uint64_t *epid = (uint64_t *) data; 189 const uint64_t *epid = data;
190 190
191 return *epid == ep->id; 191 return *epid == ep->id;
192} 192}
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index e79884e997ae..f80eee74a311 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -88,7 +88,7 @@ config SPI_BFIN_SPORT
88 88
89config SPI_AU1550 89config SPI_AU1550
90 tristate "Au1550/Au1200/Au1300 SPI Controller" 90 tristate "Au1550/Au1200/Au1300 SPI Controller"
91 depends on MIPS_ALCHEMY && EXPERIMENTAL 91 depends on MIPS_ALCHEMY
92 select SPI_BITBANG 92 select SPI_BITBANG
93 help 93 help
94 If you say yes to this option, support will be included for the 94 If you say yes to this option, support will be included for the
@@ -188,7 +188,7 @@ config SPI_IMX
188 188
189config SPI_LM70_LLP 189config SPI_LM70_LLP
190 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 190 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
191 depends on PARPORT && EXPERIMENTAL 191 depends on PARPORT
192 select SPI_BITBANG 192 select SPI_BITBANG
193 help 193 help
194 This driver supports the NS LM70 LLP Evaluation Board, 194 This driver supports the NS LM70 LLP Evaluation Board,
@@ -204,7 +204,7 @@ config SPI_MPC52xx
204 204
205config SPI_MPC52xx_PSC 205config SPI_MPC52xx_PSC
206 tristate "Freescale MPC52xx PSC SPI controller" 206 tristate "Freescale MPC52xx PSC SPI controller"
207 depends on PPC_MPC52xx && EXPERIMENTAL 207 depends on PPC_MPC52xx
208 help 208 help
209 This enables using the Freescale MPC52xx Programmable Serial 209 This enables using the Freescale MPC52xx Programmable Serial
210 Controller in master SPI mode. 210 Controller in master SPI mode.
@@ -273,8 +273,8 @@ config SPI_OMAP_100K
273 OMAP SPI 100K master controller for omap7xx boards. 273 OMAP SPI 100K master controller for omap7xx boards.
274 274
275config SPI_ORION 275config SPI_ORION
276 tristate "Orion SPI master (EXPERIMENTAL)" 276 tristate "Orion SPI master"
277 depends on PLAT_ORION && EXPERIMENTAL 277 depends on PLAT_ORION
278 help 278 help
279 This enables using the SPI master controller on the Orion chips. 279 This enables using the SPI master controller on the Orion chips.
280 280
@@ -328,7 +328,7 @@ config SPI_RSPI
328 328
329config SPI_S3C24XX 329config SPI_S3C24XX
330 tristate "Samsung S3C24XX series SPI" 330 tristate "Samsung S3C24XX series SPI"
331 depends on ARCH_S3C24XX && EXPERIMENTAL 331 depends on ARCH_S3C24XX
332 select SPI_BITBANG 332 select SPI_BITBANG
333 help 333 help
334 SPI driver for Samsung S3C24XX series ARM SoCs 334 SPI driver for Samsung S3C24XX series ARM SoCs
@@ -443,7 +443,7 @@ config SPI_XCOMM
443 443
444config SPI_XILINX 444config SPI_XILINX
445 tristate "Xilinx SPI controller common module" 445 tristate "Xilinx SPI controller common module"
446 depends on HAS_IOMEM && EXPERIMENTAL 446 depends on HAS_IOMEM
447 select SPI_BITBANG 447 select SPI_BITBANG
448 help 448 help
449 This exposes the SPI controller IP from the Xilinx EDK. 449 This exposes the SPI controller IP from the Xilinx EDK.
@@ -455,7 +455,7 @@ config SPI_XILINX
455 455
456config SPI_NUC900 456config SPI_NUC900
457 tristate "Nuvoton NUC900 series SPI" 457 tristate "Nuvoton NUC900 series SPI"
458 depends on ARCH_W90X900 && EXPERIMENTAL 458 depends on ARCH_W90X900
459 select SPI_BITBANG 459 select SPI_BITBANG
460 help 460 help
461 SPI driver for Nuvoton NUC900 series ARM SoCs 461 SPI driver for Nuvoton NUC900 series ARM SoCs
@@ -489,7 +489,6 @@ comment "SPI Protocol Masters"
489 489
490config SPI_SPIDEV 490config SPI_SPIDEV
491 tristate "User mode SPI device driver support" 491 tristate "User mode SPI device driver support"
492 depends on EXPERIMENTAL
493 help 492 help
494 This supports user mode SPI protocol drivers. 493 This supports user mode SPI protocol drivers.
495 494
diff --git a/drivers/spi/spi-ep93xx.c b/drivers/spi/spi-ep93xx.c
index aecbff16ad60..d7bac60253c9 100644
--- a/drivers/spi/spi-ep93xx.c
+++ b/drivers/spi/spi-ep93xx.c
@@ -1085,10 +1085,9 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
1085 1085
1086 espi->sspdr_phys = res->start + SSPDR; 1086 espi->sspdr_phys = res->start + SSPDR;
1087 1087
1088 espi->regs_base = devm_request_and_ioremap(&pdev->dev, res); 1088 espi->regs_base = devm_ioremap_resource(&pdev->dev, res);
1089 if (!espi->regs_base) { 1089 if (IS_ERR(espi->regs_base)) {
1090 dev_err(&pdev->dev, "failed to map resources\n"); 1090 error = PTR_ERR(espi->regs_base);
1091 error = -ENODEV;
1092 goto fail_put_clock; 1091 goto fail_put_clock;
1093 } 1092 }
1094 1093
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c
index e3d8b3197d22..22a0af0147fb 100644
--- a/drivers/spi/spi-mxs.c
+++ b/drivers/spi/spi-mxs.c
@@ -541,9 +541,9 @@ static int mxs_spi_probe(struct platform_device *pdev)
541 if (!iores || irq_err < 0 || irq_dma < 0) 541 if (!iores || irq_err < 0 || irq_dma < 0)
542 return -EINVAL; 542 return -EINVAL;
543 543
544 base = devm_request_and_ioremap(&pdev->dev, iores); 544 base = devm_ioremap_resource(&pdev->dev, iores);
545 if (!base) 545 if (IS_ERR(base))
546 return -EADDRNOTAVAIL; 546 return PTR_ERR(base);
547 547
548 pinctrl = devm_pinctrl_get_select_default(&pdev->dev); 548 pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
549 if (IS_ERR(pinctrl)) 549 if (IS_ERR(pinctrl))
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 69945b014c96..893c3d78e426 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1222,10 +1222,9 @@ static int omap2_mcspi_probe(struct platform_device *pdev)
1222 r->end += regs_offset; 1222 r->end += regs_offset;
1223 mcspi->phys = r->start; 1223 mcspi->phys = r->start;
1224 1224
1225 mcspi->base = devm_request_and_ioremap(&pdev->dev, r); 1225 mcspi->base = devm_ioremap_resource(&pdev->dev, r);
1226 if (!mcspi->base) { 1226 if (IS_ERR(mcspi->base)) {
1227 dev_dbg(&pdev->dev, "can't ioremap MCSPI\n"); 1227 status = PTR_ERR(mcspi->base);
1228 status = -ENOMEM;
1229 goto free_master; 1228 goto free_master;
1230 } 1229 }
1231 1230
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 7cfbe9d3381f..e862ab8853aa 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1241,10 +1241,9 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
1241 /* the spi->mode bits understood by this driver: */ 1241 /* the spi->mode bits understood by this driver: */
1242 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; 1242 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
1243 1243
1244 sdd->regs = devm_request_and_ioremap(&pdev->dev, mem_res); 1244 sdd->regs = devm_ioremap_resource(&pdev->dev, mem_res);
1245 if (sdd->regs == NULL) { 1245 if (IS_ERR(sdd->regs)) {
1246 dev_err(&pdev->dev, "Unable to remap IO\n"); 1246 ret = PTR_ERR(sdd->regs);
1247 ret = -ENXIO;
1248 goto err0; 1247 goto err0;
1249 } 1248 }
1250 1249
diff --git a/drivers/spi/spi-sirf.c b/drivers/spi/spi-sirf.c
index 6a5626d146b7..f59d4177b419 100644
--- a/drivers/spi/spi-sirf.c
+++ b/drivers/spi/spi-sirf.c
@@ -534,10 +534,9 @@ static int spi_sirfsoc_probe(struct platform_device *pdev)
534 } 534 }
535 } 535 }
536 536
537 sspi->base = devm_request_and_ioremap(&pdev->dev, mem_res); 537 sspi->base = devm_ioremap_resource(&pdev->dev, mem_res);
538 if (!sspi->base) { 538 if (IS_ERR(sspi->base)) {
539 dev_err(&pdev->dev, "IO remap failed!\n"); 539 ret = PTR_ERR(sspi->base);
540 ret = -ENOMEM;
541 goto free_master; 540 goto free_master;
542 } 541 }
543 542
diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sflash.c
index 9a42c158e245..8a61b27a9f2d 100644
--- a/drivers/spi/spi-tegra20-sflash.c
+++ b/drivers/spi/spi-tegra20-sflash.c
@@ -516,11 +516,9 @@ static int tegra_sflash_probe(struct platform_device *pdev)
516 ret = -ENODEV; 516 ret = -ENODEV;
517 goto exit_free_master; 517 goto exit_free_master;
518 } 518 }
519 tsd->base = devm_request_and_ioremap(&pdev->dev, r); 519 tsd->base = devm_ioremap_resource(&pdev->dev, r);
520 if (!tsd->base) { 520 if (IS_ERR(tsd->base)) {
521 dev_err(&pdev->dev, 521 ret = PTR_ERR(tsd->base);
522 "Cannot request memregion/iomap dma address\n");
523 ret = -EADDRNOTAVAIL;
524 goto exit_free_master; 522 goto exit_free_master;
525 } 523 }
526 524
diff --git a/drivers/spi/spi-tegra20-slink.c b/drivers/spi/spi-tegra20-slink.c
index 8d51db8dea6d..8458c4bf7172 100644
--- a/drivers/spi/spi-tegra20-slink.c
+++ b/drivers/spi/spi-tegra20-slink.c
@@ -1169,11 +1169,9 @@ static int tegra_slink_probe(struct platform_device *pdev)
1169 goto exit_free_master; 1169 goto exit_free_master;
1170 } 1170 }
1171 tspi->phys = r->start; 1171 tspi->phys = r->start;
1172 tspi->base = devm_request_and_ioremap(&pdev->dev, r); 1172 tspi->base = devm_ioremap_resource(&pdev->dev, r);
1173 if (!tspi->base) { 1173 if (IS_ERR(tspi->base)) {
1174 dev_err(&pdev->dev, 1174 ret = PTR_ERR(tspi->base);
1175 "Cannot request memregion/iomap dma address\n");
1176 ret = -EADDRNOTAVAIL;
1177 goto exit_free_master; 1175 goto exit_free_master;
1178 } 1176 }
1179 1177
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 6f193b02a9e8..f996c600eb8c 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1251,10 +1251,10 @@ int spi_master_resume(struct spi_master *master)
1251} 1251}
1252EXPORT_SYMBOL_GPL(spi_master_resume); 1252EXPORT_SYMBOL_GPL(spi_master_resume);
1253 1253
1254static int __spi_master_match(struct device *dev, void *data) 1254static int __spi_master_match(struct device *dev, const void *data)
1255{ 1255{
1256 struct spi_master *m; 1256 struct spi_master *m;
1257 u16 *bus_num = data; 1257 const u16 *bus_num = data;
1258 1258
1259 m = container_of(dev, struct spi_master, dev); 1259 m = container_of(dev, struct spi_master, dev);
1260 return m->bus_num == *bus_num; 1260 return m->bus_num == *bus_num;
diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
index c5ceb9d90ea8..3d562da039db 100644
--- a/drivers/staging/iio/adc/mxs-lradc.c
+++ b/drivers/staging/iio/adc/mxs-lradc.c
@@ -15,6 +15,7 @@
15 * GNU General Public License for more details. 15 * GNU General Public License for more details.
16 */ 16 */
17 17
18#include <linux/err.h>
18#include <linux/interrupt.h> 19#include <linux/interrupt.h>
19#include <linux/device.h> 20#include <linux/device.h>
20#include <linux/kernel.h> 21#include <linux/kernel.h>
@@ -487,9 +488,9 @@ static int mxs_lradc_probe(struct platform_device *pdev)
487 /* Grab the memory area */ 488 /* Grab the memory area */
488 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); 489 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
489 lradc->dev = &pdev->dev; 490 lradc->dev = &pdev->dev;
490 lradc->base = devm_request_and_ioremap(dev, iores); 491 lradc->base = devm_ioremap_resource(dev, iores);
491 if (!lradc->base) { 492 if (IS_ERR(lradc->base)) {
492 ret = -EADDRNOTAVAIL; 493 ret = PTR_ERR(lradc->base);
493 goto err_addr; 494 goto err_addr;
494 } 495 }
495 496
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index 2830946860d1..492e0b61f1e7 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -759,11 +759,9 @@ static int tegra_nvec_probe(struct platform_device *pdev)
759 return -ENODEV; 759 return -ENODEV;
760 } 760 }
761 761
762 base = devm_request_and_ioremap(&pdev->dev, res); 762 base = devm_ioremap_resource(&pdev->dev, res);
763 if (!base) { 763 if (IS_ERR(base))
764 dev_err(&pdev->dev, "Can't ioremap I2C region\n"); 764 return PTR_ERR(base);
765 return -ENOMEM;
766 }
767 765
768 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 766 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
769 if (!res) { 767 if (!res) {
diff --git a/drivers/staging/omap-thermal/omap-bandgap.c b/drivers/staging/omap-thermal/omap-bandgap.c
index 8346e3450f83..21fd91bf97b5 100644
--- a/drivers/staging/omap-thermal/omap-bandgap.c
+++ b/drivers/staging/omap-thermal/omap-bandgap.c
@@ -820,15 +820,12 @@ static struct omap_bandgap *omap_bandgap_build(struct platform_device *pdev)
820 res = platform_get_resource(pdev, IORESOURCE_MEM, i); 820 res = platform_get_resource(pdev, IORESOURCE_MEM, i);
821 if (!res) 821 if (!res)
822 break; 822 break;
823 chunk = devm_request_and_ioremap(&pdev->dev, res); 823 chunk = devm_ioremap_resource(&pdev->dev, res);
824 if (i == 0) 824 if (i == 0)
825 bg_ptr->base = chunk; 825 bg_ptr->base = chunk;
826 if (!chunk) { 826 if (IS_ERR(chunk))
827 dev_err(&pdev->dev, 827 return ERR_CAST(chunk);
828 "failed to request the IO (%d:%pR).\n", 828
829 i, res);
830 return ERR_PTR(-EADDRNOTAVAIL);
831 }
832 i++; 829 i++;
833 } while (res); 830 } while (res);
834 831
diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c
index 224751e9f5ff..bada1308318b 100644
--- a/drivers/thermal/exynos_thermal.c
+++ b/drivers/thermal/exynos_thermal.c
@@ -866,11 +866,9 @@ static int exynos_tmu_probe(struct platform_device *pdev)
866 return -ENOENT; 866 return -ENOENT;
867 } 867 }
868 868
869 data->base = devm_request_and_ioremap(&pdev->dev, data->mem); 869 data->base = devm_ioremap_resource(&pdev->dev, data->mem);
870 if (!data->base) { 870 if (IS_ERR(data->base))
871 dev_err(&pdev->dev, "Failed to ioremap memory\n"); 871 return PTR_ERR(data->base);
872 return -ENODEV;
873 }
874 872
875 ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq, 873 ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq,
876 IRQF_TRIGGER_RISING, "exynos-tmu", data); 874 IRQF_TRIGGER_RISING, "exynos-tmu", data);
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index 418b495e3233..e869eab180be 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -15,6 +15,7 @@
15#define SUPPORT_SYSRQ 15#define SUPPORT_SYSRQ
16#endif 16#endif
17 17
18#include <linux/err.h>
18#include <linux/module.h> 19#include <linux/module.h>
19#include <linux/device.h> 20#include <linux/device.h>
20#include <linux/console.h> 21#include <linux/console.h>
@@ -875,10 +876,9 @@ static int sccnxp_probe(struct platform_device *pdev)
875 goto err_out; 876 goto err_out;
876 } 877 }
877 878
878 membase = devm_request_and_ioremap(&pdev->dev, res); 879 membase = devm_ioremap_resource(&pdev->dev, res);
879 if (!membase) { 880 if (IS_ERR(membase)) {
880 dev_err(&pdev->dev, "Failed to ioremap\n"); 881 ret = PTR_ERR(membase);
881 ret = -EIO;
882 goto err_out; 882 goto err_out;
883 } 883 }
884 884
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index da9fde850754..6b20fd66d4ad 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -2906,9 +2906,9 @@ void do_SAK(struct tty_struct *tty)
2906 2906
2907EXPORT_SYMBOL(do_SAK); 2907EXPORT_SYMBOL(do_SAK);
2908 2908
2909static int dev_match_devt(struct device *dev, void *data) 2909static int dev_match_devt(struct device *dev, const void *data)
2910{ 2910{
2911 dev_t *devt = data; 2911 const dev_t *devt = data;
2912 return dev->devt == *devt; 2912 return dev->devt == *devt;
2913} 2913}
2914 2914
diff --git a/drivers/usb/chipidea/usbmisc_imx6q.c b/drivers/usb/chipidea/usbmisc_imx6q.c
index 845efe29e6b9..a1bce391e825 100644
--- a/drivers/usb/chipidea/usbmisc_imx6q.c
+++ b/drivers/usb/chipidea/usbmisc_imx6q.c
@@ -98,9 +98,9 @@ static int usbmisc_imx6q_probe(struct platform_device *pdev)
98 spin_lock_init(&data->lock); 98 spin_lock_init(&data->lock);
99 99
100 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 100 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
101 data->base = devm_request_and_ioremap(&pdev->dev, res); 101 data->base = devm_ioremap_resource(&pdev->dev, res);
102 if (!data->base) 102 if (IS_ERR(data->base))
103 return -EADDRNOTAVAIL; 103 return PTR_ERR(data->base);
104 104
105 data->clk = devm_clk_get(&pdev->dev, NULL); 105 data->clk = devm_clk_get(&pdev->dev, NULL);
106 if (IS_ERR(data->clk)) { 106 if (IS_ERR(data->clk)) {
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index f4a21f6f081f..0143ffa4e409 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1982,17 +1982,7 @@ static struct platform_driver at91_udc_driver = {
1982 }, 1982 },
1983}; 1983};
1984 1984
1985static int __init udc_init_module(void) 1985module_platform_driver_probe(at91_udc_driver, at91udc_probe);
1986{
1987 return platform_driver_probe(&at91_udc_driver, at91udc_probe);
1988}
1989module_init(udc_init_module);
1990
1991static void __exit udc_exit_module(void)
1992{
1993 platform_driver_unregister(&at91_udc_driver);
1994}
1995module_exit(udc_exit_module);
1996 1986
1997MODULE_DESCRIPTION("AT91 udc driver"); 1987MODULE_DESCRIPTION("AT91 udc driver");
1998MODULE_AUTHOR("Thomas Rathbone, David Brownell"); 1988MODULE_AUTHOR("Thomas Rathbone, David Brownell");
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index a7aed84d98c9..bc19496bcec0 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -2066,17 +2066,7 @@ static struct platform_driver udc_driver = {
2066 }, 2066 },
2067}; 2067};
2068 2068
2069static int __init udc_init(void) 2069module_platform_driver_probe(udc_driver, usba_udc_probe);
2070{
2071 return platform_driver_probe(&udc_driver, usba_udc_probe);
2072}
2073module_init(udc_init);
2074
2075static void __exit udc_exit(void)
2076{
2077 platform_driver_unregister(&udc_driver);
2078}
2079module_exit(udc_exit);
2080 2070
2081MODULE_DESCRIPTION("Atmel USBA UDC driver"); 2071MODULE_DESCRIPTION("Atmel USBA UDC driver");
2082MODULE_AUTHOR("Haavard Skinnemoen (Atmel)"); 2072MODULE_AUTHOR("Haavard Skinnemoen (Atmel)");
diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 47a49931361e..8cc8253f1100 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2351,19 +2351,20 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
2351 dev_err(dev, "error finding USBD resource\n"); 2351 dev_err(dev, "error finding USBD resource\n");
2352 return -ENXIO; 2352 return -ENXIO;
2353 } 2353 }
2354 udc->usbd_regs = devm_request_and_ioremap(dev, res); 2354
2355 udc->usbd_regs = devm_ioremap_resource(dev, res);
2356 if (IS_ERR(udc->usbd_regs))
2357 return PTR_ERR(udc->usbd_regs);
2355 2358
2356 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 2359 res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
2357 if (!res) { 2360 if (!res) {
2358 dev_err(dev, "error finding IUDMA resource\n"); 2361 dev_err(dev, "error finding IUDMA resource\n");
2359 return -ENXIO; 2362 return -ENXIO;
2360 } 2363 }
2361 udc->iudma_regs = devm_request_and_ioremap(dev, res);
2362 2364
2363 if (!udc->usbd_regs || !udc->iudma_regs) { 2365 udc->iudma_regs = devm_ioremap_resource(dev, res);
2364 dev_err(dev, "error requesting resources\n"); 2366 if (IS_ERR(udc->iudma_regs))
2365 return -ENXIO; 2367 return PTR_ERR(udc->iudma_regs);
2366 }
2367 2368
2368 spin_lock_init(&udc->lock); 2369 spin_lock_init(&udc->lock);
2369 INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process); 2370 INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process);
diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 72cd5e6719db..fc7cb09ab52b 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1547,15 +1547,4 @@ static struct platform_driver fusb300_driver = {
1547 }, 1547 },
1548}; 1548};
1549 1549
1550static int __init fusb300_udc_init(void) 1550module_platform_driver_probe(fusb300_driver, fusb300_probe);
1551{
1552 return platform_driver_probe(&fusb300_driver, fusb300_probe);
1553}
1554
1555module_init(fusb300_udc_init);
1556
1557static void __exit fusb300_udc_cleanup(void)
1558{
1559 platform_driver_unregister(&fusb300_driver);
1560}
1561module_exit(fusb300_udc_cleanup);
diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index a0eb85794fd4..8efd7555fa21 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1556,17 +1556,7 @@ static struct platform_driver udc_driver = {
1556 .resume = imx_udc_resume, 1556 .resume = imx_udc_resume,
1557}; 1557};
1558 1558
1559static int __init udc_init(void) 1559module_platform_driver_probe(udc_driver, imx_udc_probe);
1560{
1561 return platform_driver_probe(&udc_driver, imx_udc_probe);
1562}
1563module_init(udc_init);
1564
1565static void __exit udc_exit(void)
1566{
1567 platform_driver_unregister(&udc_driver);
1568}
1569module_exit(udc_exit);
1570 1560
1571MODULE_DESCRIPTION("IMX USB Device Controller driver"); 1561MODULE_DESCRIPTION("IMX USB Device Controller driver");
1572MODULE_AUTHOR("Darius Augulis <augulis.darius@gmail.com>"); 1562MODULE_AUTHOR("Darius Augulis <augulis.darius@gmail.com>");
diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index dd1c9b1fe528..aa04089d6899 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3458,17 +3458,7 @@ static struct platform_driver lpc32xx_udc_driver = {
3458 }, 3458 },
3459}; 3459};
3460 3460
3461static int __init udc_init_module(void) 3461module_platform_driver_probe(lpc32xx_udc_driver, lpc32xx_udc_probe);
3462{
3463 return platform_driver_probe(&lpc32xx_udc_driver, lpc32xx_udc_probe);
3464}
3465module_init(udc_init_module);
3466
3467static void __exit udc_exit_module(void)
3468{
3469 platform_driver_unregister(&lpc32xx_udc_driver);
3470}
3471module_exit(udc_exit_module);
3472 3462
3473MODULE_DESCRIPTION("LPC32XX udc driver"); 3463MODULE_DESCRIPTION("LPC32XX udc driver");
3474MODULE_AUTHOR("Kevin Wells <kevin.wells@nxp.com>"); 3464MODULE_AUTHOR("Kevin Wells <kevin.wells@nxp.com>");
diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index b6401f1b56ce..dfce0cfe4e6f 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1753,14 +1753,4 @@ static struct platform_driver m66592_driver = {
1753 }, 1753 },
1754}; 1754};
1755 1755
1756static int __init m66592_udc_init(void) 1756module_platform_driver_probe(m66592_driver, m66592_probe);
1757{
1758 return platform_driver_probe(&m66592_driver, m66592_probe);
1759}
1760module_init(m66592_udc_init);
1761
1762static void __exit m66592_udc_cleanup(void)
1763{
1764 platform_driver_unregister(&m66592_driver);
1765}
1766module_exit(m66592_udc_cleanup);
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index d4ca9f1f7f24..d52e869ce202 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -2100,6 +2100,8 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
2100 int retval, irq; 2100 int retval, irq;
2101 u32 chiprev; 2101 u32 chiprev;
2102 2102
2103 pr_info("%s: version %s\n", driver_name, DRIVER_VERSION);
2104
2103 /* insist on Intel/ARM/XScale */ 2105 /* insist on Intel/ARM/XScale */
2104 asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev)); 2106 asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev));
2105 if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) { 2107 if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) {
@@ -2346,18 +2348,7 @@ static struct platform_driver udc_driver = {
2346 }, 2348 },
2347}; 2349};
2348 2350
2349static int __init udc_init(void) 2351module_platform_driver_probe(udc_driver, pxa25x_udc_probe);
2350{
2351 pr_info("%s: version %s\n", driver_name, DRIVER_VERSION);
2352 return platform_driver_probe(&udc_driver, pxa25x_udc_probe);
2353}
2354module_init(udc_init);
2355
2356static void __exit udc_exit(void)
2357{
2358 platform_driver_unregister(&udc_driver);
2359}
2360module_exit(udc_exit);
2361 2352
2362MODULE_DESCRIPTION(DRIVER_DESC); 2353MODULE_DESCRIPTION(DRIVER_DESC);
2363MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); 2354MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell");
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 5a80751accb7..9a9fadd9095f 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -2031,21 +2031,10 @@ static struct platform_driver r8a66597_driver = {
2031 .name = (char *) udc_name, 2031 .name = (char *) udc_name,
2032 }, 2032 },
2033}; 2033};
2034MODULE_ALIAS("platform:r8a66597_udc");
2035
2036static int __init r8a66597_udc_init(void)
2037{
2038 return platform_driver_probe(&r8a66597_driver, r8a66597_probe);
2039}
2040module_init(r8a66597_udc_init);
2041 2034
2042static void __exit r8a66597_udc_cleanup(void) 2035module_platform_driver_probe(r8a66597_driver, r8a66597_probe);
2043{
2044 platform_driver_unregister(&r8a66597_driver);
2045}
2046module_exit(r8a66597_udc_cleanup);
2047 2036
2048MODULE_DESCRIPTION("R8A66597 USB gadget driver"); 2037MODULE_DESCRIPTION("R8A66597 USB gadget driver");
2049MODULE_LICENSE("GPL"); 2038MODULE_LICENSE("GPL");
2050MODULE_AUTHOR("Yoshihiro Shimoda"); 2039MODULE_AUTHOR("Yoshihiro Shimoda");
2051 2040MODULE_ALIAS("platform:r8a66597_udc");
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 439c3f972f8c..de80fa644b5a 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3525,10 +3525,9 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
3525 3525
3526 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 3526 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
3527 3527
3528 hsotg->regs = devm_request_and_ioremap(&pdev->dev, res); 3528 hsotg->regs = devm_ioremap_resource(&pdev->dev, res);
3529 if (!hsotg->regs) { 3529 if (IS_ERR(hsotg->regs)) {
3530 dev_err(dev, "cannot map registers\n"); 3530 ret = PTR_ERR(hsotg->regs);
3531 ret = -ENXIO;
3532 goto err_clk; 3531 goto err_clk;
3533 } 3532 }
3534 3533
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 52379b11f080..94ca33bb990b 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1295,10 +1295,9 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
1295 1295
1296 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1296 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1297 1297
1298 hsudc->regs = devm_request_and_ioremap(&pdev->dev, res); 1298 hsudc->regs = devm_ioremap_resource(&pdev->dev, res);
1299 if (!hsudc->regs) { 1299 if (IS_ERR(hsudc->regs)) {
1300 dev_err(dev, "error mapping device register area\n"); 1300 ret = PTR_ERR(hsudc->regs);
1301 ret = -EBUSY;
1302 goto err_res; 1301 goto err_res;
1303 } 1302 }
1304 1303
diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 27639487f7ac..f3beac4d06b8 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -143,10 +143,9 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
143 hcd->rsrc_start = res->start; 143 hcd->rsrc_start = res->start;
144 hcd->rsrc_len = resource_size(res); 144 hcd->rsrc_len = resource_size(res);
145 145
146 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 146 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
147 if (hcd->regs == NULL) { 147 if (IS_ERR(hcd->regs)) {
148 dev_dbg(&pdev->dev, "error mapping memory\n"); 148 retval = PTR_ERR(hcd->regs);
149 retval = -EFAULT;
150 goto fail_request_resource; 149 goto fail_request_resource;
151 } 150 }
152 151
diff --git a/drivers/usb/host/ehci-grlib.c b/drivers/usb/host/ehci-grlib.c
index 1fc89292f5d6..5d75de9729b6 100644
--- a/drivers/usb/host/ehci-grlib.c
+++ b/drivers/usb/host/ehci-grlib.c
@@ -25,7 +25,7 @@
25 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 25 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26 */ 26 */
27 27
28 28#include <linux/err.h>
29#include <linux/signal.h> 29#include <linux/signal.h>
30 30
31#include <linux/of_irq.h> 31#include <linux/of_irq.h>
@@ -118,10 +118,9 @@ static int ehci_hcd_grlib_probe(struct platform_device *op)
118 goto err_irq; 118 goto err_irq;
119 } 119 }
120 120
121 hcd->regs = devm_request_and_ioremap(&op->dev, &res); 121 hcd->regs = devm_ioremap_resource(&op->dev, &res);
122 if (!hcd->regs) { 122 if (IS_ERR(hcd->regs)) {
123 pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); 123 rv = PTR_ERR(hcd->regs);
124 rv = -ENOMEM;
125 goto err_ioremap; 124 goto err_ioremap;
126 } 125 }
127 126
diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c
index dedb80bb8d40..e2004de6ad3d 100644
--- a/drivers/usb/host/ehci-mxc.c
+++ b/drivers/usb/host/ehci-mxc.c
@@ -85,10 +85,9 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
85 hcd->rsrc_start = res->start; 85 hcd->rsrc_start = res->start;
86 hcd->rsrc_len = resource_size(res); 86 hcd->rsrc_len = resource_size(res);
87 87
88 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 88 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
89 if (!hcd->regs) { 89 if (IS_ERR(hcd->regs)) {
90 dev_err(dev, "error mapping memory\n"); 90 ret = PTR_ERR(hcd->regs);
91 ret = -EFAULT;
92 goto err_alloc; 91 goto err_alloc;
93 } 92 }
94 93
diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
index 58fa0c90c7c7..ca7506390542 100644
--- a/drivers/usb/host/ehci-platform.c
+++ b/drivers/usb/host/ehci-platform.c
@@ -18,6 +18,7 @@
18 * 18 *
19 * Licensed under the GNU/GPL. See COPYING for details. 19 * Licensed under the GNU/GPL. See COPYING for details.
20 */ 20 */
21#include <linux/err.h>
21#include <linux/kernel.h> 22#include <linux/kernel.h>
22#include <linux/hrtimer.h> 23#include <linux/hrtimer.h>
23#include <linux/io.h> 24#include <linux/io.h>
@@ -104,9 +105,9 @@ static int ehci_platform_probe(struct platform_device *dev)
104 hcd->rsrc_start = res_mem->start; 105 hcd->rsrc_start = res_mem->start;
105 hcd->rsrc_len = resource_size(res_mem); 106 hcd->rsrc_len = resource_size(res_mem);
106 107
107 hcd->regs = devm_request_and_ioremap(&dev->dev, res_mem); 108 hcd->regs = devm_ioremap_resource(&dev->dev, res_mem);
108 if (!hcd->regs) { 109 if (IS_ERR(hcd->regs)) {
109 err = -ENOMEM; 110 err = PTR_ERR(hcd->regs);
110 goto err_put_hcd; 111 goto err_put_hcd;
111 } 112 }
112 err = usb_add_hcd(hcd, irq, IRQF_SHARED); 113 err = usb_add_hcd(hcd, irq, IRQF_SHARED);
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
index 45aceefd0c2b..56dc732bf451 100644
--- a/drivers/usb/host/ehci-ppc-of.c
+++ b/drivers/usb/host/ehci-ppc-of.c
@@ -12,6 +12,7 @@
12 * This file is licenced under the GPL. 12 * This file is licenced under the GPL.
13 */ 13 */
14 14
15#include <linux/err.h>
15#include <linux/signal.h> 16#include <linux/signal.h>
16 17
17#include <linux/of.h> 18#include <linux/of.h>
@@ -121,10 +122,9 @@ static int ehci_hcd_ppc_of_probe(struct platform_device *op)
121 goto err_irq; 122 goto err_irq;
122 } 123 }
123 124
124 hcd->regs = devm_request_and_ioremap(&op->dev, &res); 125 hcd->regs = devm_ioremap_resource(&op->dev, &res);
125 if (!hcd->regs) { 126 if (IS_ERR(hcd->regs)) {
126 pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); 127 rv = PTR_ERR(hcd->regs);
127 rv = -ENOMEM;
128 goto err_ioremap; 128 goto err_ioremap;
129 } 129 }
130 130
diff --git a/drivers/usb/host/ehci-sead3.c b/drivers/usb/host/ehci-sead3.c
index efad02d947f2..f55477c5a1be 100644
--- a/drivers/usb/host/ehci-sead3.c
+++ b/drivers/usb/host/ehci-sead3.c
@@ -19,6 +19,7 @@
19 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */ 20 */
21 21
22#include <linux/err.h>
22#include <linux/platform_device.h> 23#include <linux/platform_device.h>
23 24
24static int ehci_sead3_setup(struct usb_hcd *hcd) 25static int ehci_sead3_setup(struct usb_hcd *hcd)
@@ -112,10 +113,9 @@ static int ehci_hcd_sead3_drv_probe(struct platform_device *pdev)
112 hcd->rsrc_start = res->start; 113 hcd->rsrc_start = res->start;
113 hcd->rsrc_len = resource_size(res); 114 hcd->rsrc_len = resource_size(res);
114 115
115 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 116 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
116 if (!hcd->regs) { 117 if (IS_ERR(hcd->regs)) {
117 pr_debug("ioremap failed"); 118 ret = PTR_ERR(hcd->regs);
118 ret = -ENOMEM;
119 goto err1; 119 goto err1;
120 } 120 }
121 121
diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c
index 0c90a24fa989..3565a300f401 100644
--- a/drivers/usb/host/ehci-sh.c
+++ b/drivers/usb/host/ehci-sh.c
@@ -118,10 +118,9 @@ static int ehci_hcd_sh_probe(struct platform_device *pdev)
118 hcd->rsrc_start = res->start; 118 hcd->rsrc_start = res->start;
119 hcd->rsrc_len = resource_size(res); 119 hcd->rsrc_len = resource_size(res);
120 120
121 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 121 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
122 if (hcd->regs == NULL) { 122 if (IS_ERR(hcd->regs)) {
123 dev_dbg(&pdev->dev, "error mapping memory\n"); 123 ret = PTR_ERR(hcd->regs);
124 ret = -ENXIO;
125 goto fail_request_resource; 124 goto fail_request_resource;
126 } 125 }
127 126
diff --git a/drivers/usb/host/ehci-vt8500.c b/drivers/usb/host/ehci-vt8500.c
index 11695d5b9d86..7ecf709610ba 100644
--- a/drivers/usb/host/ehci-vt8500.c
+++ b/drivers/usb/host/ehci-vt8500.c
@@ -16,6 +16,7 @@
16 * 16 *
17 */ 17 */
18 18
19#include <linux/err.h>
19#include <linux/of.h> 20#include <linux/of.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
@@ -96,10 +97,9 @@ static int vt8500_ehci_drv_probe(struct platform_device *pdev)
96 hcd->rsrc_start = res->start; 97 hcd->rsrc_start = res->start;
97 hcd->rsrc_len = resource_size(res); 98 hcd->rsrc_len = resource_size(res);
98 99
99 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 100 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
100 if (!hcd->regs) { 101 if (IS_ERR(hcd->regs)) {
101 pr_debug("ioremap failed"); 102 ret = PTR_ERR(hcd->regs);
102 ret = -ENOMEM;
103 goto err1; 103 goto err1;
104 } 104 }
105 105
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c
index 4f285e8e404a..d845e3bcfaff 100644
--- a/drivers/usb/host/ehci-xilinx-of.c
+++ b/drivers/usb/host/ehci-xilinx-of.c
@@ -25,6 +25,7 @@
25 * 25 *
26 */ 26 */
27 27
28#include <linux/err.h>
28#include <linux/signal.h> 29#include <linux/signal.h>
29 30
30#include <linux/of.h> 31#include <linux/of.h>
@@ -159,10 +160,9 @@ static int ehci_hcd_xilinx_of_probe(struct platform_device *op)
159 goto err_irq; 160 goto err_irq;
160 } 161 }
161 162
162 hcd->regs = devm_request_and_ioremap(&op->dev, &res); 163 hcd->regs = devm_ioremap_resource(&op->dev, &res);
163 if (!hcd->regs) { 164 if (IS_ERR(hcd->regs)) {
164 pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); 165 rv = PTR_ERR(hcd->regs);
165 rv = -ENOMEM;
166 goto err_irq; 166 goto err_irq;
167 } 167 }
168 168
diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c
index 2344040c16d2..f4988fbe78e7 100644
--- a/drivers/usb/host/ohci-nxp.c
+++ b/drivers/usb/host/ohci-nxp.c
@@ -306,10 +306,9 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
306 goto out8; 306 goto out8;
307 } 307 }
308 308
309 hcd->regs = devm_request_and_ioremap(&pdev->dev, res); 309 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
310 if (!hcd->regs) { 310 if (IS_ERR(hcd->regs)) {
311 dev_err(&pdev->dev, "Failed to devm_request_and_ioremap\n"); 311 ret = PTR_ERR(hcd->regs);
312 ret = -ENOMEM;
313 goto out8; 312 goto out8;
314 } 313 }
315 hcd->rsrc_start = res->start; 314 hcd->rsrc_start = res->start;
diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
index 084503b03fcf..c3e7287f7921 100644
--- a/drivers/usb/host/ohci-platform.c
+++ b/drivers/usb/host/ohci-platform.c
@@ -13,6 +13,7 @@
13 * 13 *
14 * Licensed under the GNU/GPL. See COPYING for details. 14 * Licensed under the GNU/GPL. See COPYING for details.
15 */ 15 */
16#include <linux/err.h>
16#include <linux/platform_device.h> 17#include <linux/platform_device.h>
17#include <linux/usb/ohci_pdriver.h> 18#include <linux/usb/ohci_pdriver.h>
18 19
@@ -127,9 +128,9 @@ static int ohci_platform_probe(struct platform_device *dev)
127 hcd->rsrc_start = res_mem->start; 128 hcd->rsrc_start = res_mem->start;
128 hcd->rsrc_len = resource_size(res_mem); 129 hcd->rsrc_len = resource_size(res_mem);
129 130
130 hcd->regs = devm_request_and_ioremap(&dev->dev, res_mem); 131 hcd->regs = devm_ioremap_resource(&dev->dev, res_mem);
131 if (!hcd->regs) { 132 if (IS_ERR(hcd->regs)) {
132 err = -ENOMEM; 133 err = PTR_ERR(hcd->regs);
133 goto err_put_hcd; 134 goto err_put_hcd;
134 } 135 }
135 err = usb_add_hcd(hcd, irq, IRQF_SHARED); 136 err = usb_add_hcd(hcd, irq, IRQF_SHARED);
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
index ad0f55269603..e125770b893c 100644
--- a/drivers/usb/host/ohci-s3c2410.c
+++ b/drivers/usb/host/ohci-s3c2410.c
@@ -351,10 +351,9 @@ static int usb_hcd_s3c2410_probe(const struct hc_driver *driver,
351 hcd->rsrc_start = dev->resource[0].start; 351 hcd->rsrc_start = dev->resource[0].start;
352 hcd->rsrc_len = resource_size(&dev->resource[0]); 352 hcd->rsrc_len = resource_size(&dev->resource[0]);
353 353
354 hcd->regs = devm_request_and_ioremap(&dev->dev, &dev->resource[0]); 354 hcd->regs = devm_ioremap_resource(&dev->dev, &dev->resource[0]);
355 if (!hcd->regs) { 355 if (IS_ERR(hcd->regs)) {
356 dev_err(&dev->dev, "devm_request_and_ioremap failed\n"); 356 retval = PTR_ERR(hcd->regs);
357 retval = -ENOMEM;
358 goto err_put; 357 goto err_put;
359 } 358 }
360 359
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index f7d764de6fda..99f470d26a38 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -500,10 +500,9 @@ static int dsps_create_musb_pdev(struct dsps_glue *glue, u8 id)
500 resources[0].end = resources[0].start + SZ_4 - 1; 500 resources[0].end = resources[0].start + SZ_4 - 1;
501 resources[0].flags = IORESOURCE_MEM; 501 resources[0].flags = IORESOURCE_MEM;
502 502
503 glue->usb_ctrl[id] = devm_request_and_ioremap(&pdev->dev, resources); 503 glue->usb_ctrl[id] = devm_ioremap_resource(&pdev->dev, resources);
504 if (glue->usb_ctrl[id] == NULL) { 504 if (IS_ERR(glue->usb_ctrl[id])) {
505 dev_err(dev, "Failed to obtain usb_ctrl%d memory\n", id); 505 ret = PTR_ERR(glue->usb_ctrl[id]);
506 ret = -ENODEV;
507 goto err0; 506 goto err0;
508 } 507 }
509 508
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index da00af460794..acd5f9d71d03 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -523,9 +523,7 @@ static int omap2430_probe(struct platform_device *pdev)
523 523
524 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 524 res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
525 525
526 glue->control_otghs = devm_request_and_ioremap(&pdev->dev, res); 526 glue->control_otghs = devm_ioremap_resource(&pdev->dev, res);
527 if (glue->control_otghs == NULL)
528 dev_dbg(&pdev->dev, "Failed to obtain control memory\n");
529 527
530 if (np) { 528 if (np) {
531 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); 529 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
diff --git a/drivers/usb/otg/gpio_vbus.c b/drivers/usb/otg/gpio_vbus.c
index a67ffe22179a..a7d4ac591982 100644
--- a/drivers/usb/otg/gpio_vbus.c
+++ b/drivers/usb/otg/gpio_vbus.c
@@ -409,17 +409,7 @@ static struct platform_driver gpio_vbus_driver = {
409 .remove = __exit_p(gpio_vbus_remove), 409 .remove = __exit_p(gpio_vbus_remove),
410}; 410};
411 411
412static int __init gpio_vbus_init(void) 412module_platform_driver_probe(gpio_vbus_driver, gpio_vbus_probe);
413{
414 return platform_driver_probe(&gpio_vbus_driver, gpio_vbus_probe);
415}
416module_init(gpio_vbus_init);
417
418static void __exit gpio_vbus_exit(void)
419{
420 platform_driver_unregister(&gpio_vbus_driver);
421}
422module_exit(gpio_vbus_exit);
423 413
424MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver"); 414MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver");
425MODULE_AUTHOR("Philipp Zabel"); 415MODULE_AUTHOR("Philipp Zabel");
diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c
index 3b9f0d951132..749fbf41fb6f 100644
--- a/drivers/usb/otg/msm_otg.c
+++ b/drivers/usb/otg/msm_otg.c
@@ -1756,18 +1756,7 @@ static struct platform_driver msm_otg_driver = {
1756 }, 1756 },
1757}; 1757};
1758 1758
1759static int __init msm_otg_init(void) 1759module_platform_driver_probe(msm_otg_driver, msm_otg_probe);
1760{
1761 return platform_driver_probe(&msm_otg_driver, msm_otg_probe);
1762}
1763
1764static void __exit msm_otg_exit(void)
1765{
1766 platform_driver_unregister(&msm_otg_driver);
1767}
1768
1769module_init(msm_otg_init);
1770module_exit(msm_otg_exit);
1771 1760
1772MODULE_LICENSE("GPL v2"); 1761MODULE_LICENSE("GPL v2");
1773MODULE_DESCRIPTION("MSM USB transceiver driver"); 1762MODULE_DESCRIPTION("MSM USB transceiver driver");
diff --git a/drivers/usb/otg/mxs-phy.c b/drivers/usb/otg/mxs-phy.c
index 76302720055a..60df28a294b7 100644
--- a/drivers/usb/otg/mxs-phy.c
+++ b/drivers/usb/otg/mxs-phy.c
@@ -115,9 +115,9 @@ static int mxs_phy_probe(struct platform_device *pdev)
115 return -ENOENT; 115 return -ENOENT;
116 } 116 }
117 117
118 base = devm_request_and_ioremap(&pdev->dev, res); 118 base = devm_ioremap_resource(&pdev->dev, res);
119 if (!base) 119 if (IS_ERR(base))
120 return -EBUSY; 120 return PTR_ERR(base);
121 121
122 clk = devm_clk_get(&pdev->dev, NULL); 122 clk = devm_clk_get(&pdev->dev, NULL);
123 if (IS_ERR(clk)) { 123 if (IS_ERR(clk)) {
diff --git a/drivers/usb/phy/mv_u3d_phy.c b/drivers/usb/phy/mv_u3d_phy.c
index eaddbe3d4304..9d8599122aa9 100644
--- a/drivers/usb/phy/mv_u3d_phy.c
+++ b/drivers/usb/phy/mv_u3d_phy.c
@@ -283,11 +283,9 @@ static int mv_u3d_phy_probe(struct platform_device *pdev)
283 return -ENODEV; 283 return -ENODEV;
284 } 284 }
285 285
286 phy_base = devm_request_and_ioremap(dev, res); 286 phy_base = devm_ioremap_resource(dev, res);
287 if (!phy_base) { 287 if (IS_ERR(phy_base))
288 dev_err(dev, "%s: register mapping failed\n", __func__); 288 return PTR_ERR(phy_base);
289 return -ENXIO;
290 }
291 289
292 mv_u3d_phy = devm_kzalloc(dev, sizeof(*mv_u3d_phy), GFP_KERNEL); 290 mv_u3d_phy = devm_kzalloc(dev, sizeof(*mv_u3d_phy), GFP_KERNEL);
293 if (!mv_u3d_phy) 291 if (!mv_u3d_phy)
diff --git a/drivers/usb/phy/omap-usb2.c b/drivers/usb/phy/omap-usb2.c
index 26ae8f49225c..2fdb8ede5f1c 100644
--- a/drivers/usb/phy/omap-usb2.c
+++ b/drivers/usb/phy/omap-usb2.c
@@ -168,11 +168,9 @@ static int omap_usb2_probe(struct platform_device *pdev)
168 168
169 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 169 res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
170 170
171 phy->control_dev = devm_request_and_ioremap(&pdev->dev, res); 171 phy->control_dev = devm_ioremap_resource(&pdev->dev, res);
172 if (phy->control_dev == NULL) { 172 if (IS_ERR(phy->control_dev))
173 dev_err(&pdev->dev, "Failed to obtain io memory\n"); 173 return PTR_ERR(phy->control_dev);
174 return -ENXIO;
175 }
176 174
177 phy->is_suspended = 1; 175 phy->is_suspended = 1;
178 omap_usb_phy_power(phy, 0); 176 omap_usb_phy_power(phy, 0);
diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c
index 38bce046f4d0..cfd205036aba 100644
--- a/drivers/usb/renesas_usbhs/common.c
+++ b/drivers/usb/renesas_usbhs/common.c
@@ -14,6 +14,7 @@
14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
15 * 15 *
16 */ 16 */
17#include <linux/err.h>
17#include <linux/io.h> 18#include <linux/io.h>
18#include <linux/module.h> 19#include <linux/module.h>
19#include <linux/pm_runtime.h> 20#include <linux/pm_runtime.h>
@@ -443,11 +444,9 @@ static int usbhs_probe(struct platform_device *pdev)
443 return -ENOMEM; 444 return -ENOMEM;
444 } 445 }
445 446
446 priv->base = devm_request_and_ioremap(&pdev->dev, res); 447 priv->base = devm_ioremap_resource(&pdev->dev, res);
447 if (!priv->base) { 448 if (IS_ERR(priv->base))
448 dev_err(&pdev->dev, "ioremap error.\n"); 449 return PTR_ERR(priv->base);
449 return -ENOMEM;
450 }
451 450
452 /* 451 /*
453 * care platform info 452 * care platform info
diff --git a/drivers/uwb/lc-rc.c b/drivers/uwb/lc-rc.c
index 4d688c750801..3eca6ceb9844 100644
--- a/drivers/uwb/lc-rc.c
+++ b/drivers/uwb/lc-rc.c
@@ -40,9 +40,9 @@
40 40
41#include "uwb-internal.h" 41#include "uwb-internal.h"
42 42
43static int uwb_rc_index_match(struct device *dev, void *data) 43static int uwb_rc_index_match(struct device *dev, const void *data)
44{ 44{
45 int *index = data; 45 const int *index = data;
46 struct uwb_rc *rc = dev_get_drvdata(dev); 46 struct uwb_rc *rc = dev_get_drvdata(dev);
47 47
48 if (rc->index == *index) 48 if (rc->index == *index)
@@ -334,9 +334,9 @@ void uwb_rc_rm(struct uwb_rc *rc)
334} 334}
335EXPORT_SYMBOL_GPL(uwb_rc_rm); 335EXPORT_SYMBOL_GPL(uwb_rc_rm);
336 336
337static int find_rc_try_get(struct device *dev, void *data) 337static int find_rc_try_get(struct device *dev, const void *data)
338{ 338{
339 struct uwb_rc *target_rc = data; 339 const struct uwb_rc *target_rc = data;
340 struct uwb_rc *rc = dev_get_drvdata(dev); 340 struct uwb_rc *rc = dev_get_drvdata(dev);
341 341
342 if (rc == NULL) { 342 if (rc == NULL) {
@@ -386,9 +386,9 @@ static inline struct uwb_rc *uwb_rc_get(struct uwb_rc *rc)
386 return rc; 386 return rc;
387} 387}
388 388
389static int find_rc_grandpa(struct device *dev, void *data) 389static int find_rc_grandpa(struct device *dev, const void *data)
390{ 390{
391 struct device *grandpa_dev = data; 391 const struct device *grandpa_dev = data;
392 struct uwb_rc *rc = dev_get_drvdata(dev); 392 struct uwb_rc *rc = dev_get_drvdata(dev);
393 393
394 if (rc->uwb_dev.dev.parent->parent == grandpa_dev) { 394 if (rc->uwb_dev.dev.parent->parent == grandpa_dev) {
@@ -419,7 +419,7 @@ struct uwb_rc *uwb_rc_get_by_grandpa(const struct device *grandpa_dev)
419 struct device *dev; 419 struct device *dev;
420 struct uwb_rc *rc = NULL; 420 struct uwb_rc *rc = NULL;
421 421
422 dev = class_find_device(&uwb_rc_class, NULL, (void *)grandpa_dev, 422 dev = class_find_device(&uwb_rc_class, NULL, grandpa_dev,
423 find_rc_grandpa); 423 find_rc_grandpa);
424 if (dev) 424 if (dev)
425 rc = dev_get_drvdata(dev); 425 rc = dev_get_drvdata(dev);
@@ -432,9 +432,9 @@ EXPORT_SYMBOL_GPL(uwb_rc_get_by_grandpa);
432 * 432 *
433 * @returns the pointer to the radio controller, properly referenced 433 * @returns the pointer to the radio controller, properly referenced
434 */ 434 */
435static int find_rc_dev(struct device *dev, void *data) 435static int find_rc_dev(struct device *dev, const void *data)
436{ 436{
437 struct uwb_dev_addr *addr = data; 437 const struct uwb_dev_addr *addr = data;
438 struct uwb_rc *rc = dev_get_drvdata(dev); 438 struct uwb_rc *rc = dev_get_drvdata(dev);
439 439
440 if (rc == NULL) { 440 if (rc == NULL) {
@@ -453,8 +453,7 @@ struct uwb_rc *uwb_rc_get_by_dev(const struct uwb_dev_addr *addr)
453 struct device *dev; 453 struct device *dev;
454 struct uwb_rc *rc = NULL; 454 struct uwb_rc *rc = NULL;
455 455
456 dev = class_find_device(&uwb_rc_class, NULL, (void *)addr, 456 dev = class_find_device(&uwb_rc_class, NULL, addr, find_rc_dev);
457 find_rc_dev);
458 if (dev) 457 if (dev)
459 rc = dev_get_drvdata(dev); 458 rc = dev_get_drvdata(dev);
460 459
diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
index 202bba6c997c..bf243177ffe1 100644
--- a/drivers/vhost/Kconfig
+++ b/drivers/vhost/Kconfig
@@ -1,6 +1,6 @@
1config VHOST_NET 1config VHOST_NET
2 tristate "Host kernel accelerator for virtio net (EXPERIMENTAL)" 2 tristate "Host kernel accelerator for virtio net"
3 depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) && EXPERIMENTAL 3 depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP)
4 ---help--- 4 ---help---
5 This kernel module can be loaded in host kernel to accelerate 5 This kernel module can be loaded in host kernel to accelerate
6 guest networking with virtio_net. Not to be confused with virtio_net 6 guest networking with virtio_net. Not to be confused with virtio_net
diff --git a/drivers/vhost/Kconfig.tcm b/drivers/vhost/Kconfig.tcm
index a9c6f76e3208..7e3aa28d999e 100644
--- a/drivers/vhost/Kconfig.tcm
+++ b/drivers/vhost/Kconfig.tcm
@@ -1,6 +1,6 @@
1config TCM_VHOST 1config TCM_VHOST
2 tristate "TCM_VHOST fabric module (EXPERIMENTAL)" 2 tristate "TCM_VHOST fabric module"
3 depends on TARGET_CORE && EVENTFD && EXPERIMENTAL && m 3 depends on TARGET_CORE && EVENTFD && m
4 default n 4 default n
5 ---help--- 5 ---help---
6 Say M here to enable the TCM_VHOST fabric module for use with virtio-scsi guests 6 Say M here to enable the TCM_VHOST fabric module for use with virtio-scsi guests
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index e7068c508800..e4e1765b82f2 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1112,8 +1112,8 @@ config FB_RIVA_BACKLIGHT
1112 Say Y here if you want to control the backlight of your display. 1112 Say Y here if you want to control the backlight of your display.
1113 1113
1114config FB_I740 1114config FB_I740
1115 tristate "Intel740 support (EXPERIMENTAL)" 1115 tristate "Intel740 support"
1116 depends on EXPERIMENTAL && FB && PCI 1116 depends on FB && PCI
1117 select FB_MODE_HELPERS 1117 select FB_MODE_HELPERS
1118 select FB_CFB_FILLRECT 1118 select FB_CFB_FILLRECT
1119 select FB_CFB_COPYAREA 1119 select FB_CFB_COPYAREA
@@ -1124,8 +1124,8 @@ config FB_I740
1124 This driver supports graphics cards based on Intel740 chip. 1124 This driver supports graphics cards based on Intel740 chip.
1125 1125
1126config FB_I810 1126config FB_I810
1127 tristate "Intel 810/815 support (EXPERIMENTAL)" 1127 tristate "Intel 810/815 support"
1128 depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL 1128 depends on FB && PCI && X86_32 && AGP_INTEL
1129 select FB_MODE_HELPERS 1129 select FB_MODE_HELPERS
1130 select FB_CFB_FILLRECT 1130 select FB_CFB_FILLRECT
1131 select FB_CFB_COPYAREA 1131 select FB_CFB_COPYAREA
@@ -1187,8 +1187,8 @@ config FB_CARILLO_RANCH
1187 This driver supports the LE80578 (Carillo Ranch) board 1187 This driver supports the LE80578 (Carillo Ranch) board
1188 1188
1189config FB_INTEL 1189config FB_INTEL
1190 tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support (EXPERIMENTAL)" 1190 tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support"
1191 depends on EXPERIMENTAL && FB && PCI && X86 && AGP_INTEL && EXPERT 1191 depends on FB && PCI && X86 && AGP_INTEL && EXPERT
1192 select FB_MODE_HELPERS 1192 select FB_MODE_HELPERS
1193 select FB_CFB_FILLRECT 1193 select FB_CFB_FILLRECT
1194 select FB_CFB_COPYAREA 1194 select FB_CFB_COPYAREA
@@ -1432,7 +1432,7 @@ config FB_ATY_CT
1432 is at <http://support.ati.com/products/pc/mach64/mach64.html>. 1432 is at <http://support.ati.com/products/pc/mach64/mach64.html>.
1433 1433
1434config FB_ATY_GENERIC_LCD 1434config FB_ATY_GENERIC_LCD
1435 bool "Mach64 generic LCD support (EXPERIMENTAL)" 1435 bool "Mach64 generic LCD support"
1436 depends on FB_ATY_CT 1436 depends on FB_ATY_CT
1437 help 1437 help
1438 Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility, 1438 Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility,
@@ -1479,7 +1479,7 @@ config FB_S3_DDC
1479 1479
1480config FB_SAVAGE 1480config FB_SAVAGE
1481 tristate "S3 Savage support" 1481 tristate "S3 Savage support"
1482 depends on FB && PCI && EXPERIMENTAL 1482 depends on FB && PCI
1483 select FB_MODE_HELPERS 1483 select FB_MODE_HELPERS
1484 select FB_CFB_FILLRECT 1484 select FB_CFB_FILLRECT
1485 select FB_CFB_COPYAREA 1485 select FB_CFB_COPYAREA
@@ -1633,15 +1633,15 @@ config FB_3DFX
1633 module will be called tdfxfb. 1633 module will be called tdfxfb.
1634 1634
1635config FB_3DFX_ACCEL 1635config FB_3DFX_ACCEL
1636 bool "3Dfx Acceleration functions (EXPERIMENTAL)" 1636 bool "3Dfx Acceleration functions"
1637 depends on FB_3DFX && EXPERIMENTAL 1637 depends on FB_3DFX
1638 ---help--- 1638 ---help---
1639 This will compile the 3Dfx Banshee/Voodoo3/VSA-100 frame buffer 1639 This will compile the 3Dfx Banshee/Voodoo3/VSA-100 frame buffer
1640 device driver with acceleration functions. 1640 device driver with acceleration functions.
1641 1641
1642config FB_3DFX_I2C 1642config FB_3DFX_I2C
1643 bool "Enable DDC/I2C support" 1643 bool "Enable DDC/I2C support"
1644 depends on FB_3DFX && EXPERIMENTAL 1644 depends on FB_3DFX
1645 select FB_DDC 1645 select FB_DDC
1646 default y 1646 default y
1647 help 1647 help
@@ -1714,8 +1714,8 @@ config FB_ARK
1714 and ICS 5342 RAMDAC. 1714 and ICS 5342 RAMDAC.
1715 1715
1716config FB_PM3 1716config FB_PM3
1717 tristate "Permedia3 support (EXPERIMENTAL)" 1717 tristate "Permedia3 support"
1718 depends on FB && PCI && EXPERIMENTAL 1718 depends on FB && PCI
1719 select FB_CFB_FILLRECT 1719 select FB_CFB_FILLRECT
1720 select FB_CFB_COPYAREA 1720 select FB_CFB_COPYAREA
1721 select FB_CFB_IMAGEBLIT 1721 select FB_CFB_IMAGEBLIT
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 345f6660d4b3..c74e7aa46731 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -371,7 +371,7 @@ void backlight_device_unregister(struct backlight_device *bd)
371EXPORT_SYMBOL(backlight_device_unregister); 371EXPORT_SYMBOL(backlight_device_unregister);
372 372
373#ifdef CONFIG_OF 373#ifdef CONFIG_OF
374static int of_parent_match(struct device *dev, void *data) 374static int of_parent_match(struct device *dev, const void *data)
375{ 375{
376 return dev->parent && dev->parent->of_node == data; 376 return dev->parent && dev->parent->of_node == data;
377} 377}
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index e2c96d01d8f5..bc922c47d046 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -46,7 +46,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE
46 46
47config MDA_CONSOLE 47config MDA_CONSOLE
48 depends on !M68K && !PARISC && ISA 48 depends on !M68K && !PARISC && ISA
49 tristate "MDA text console (dual-headed) (EXPERIMENTAL)" 49 tristate "MDA text console (dual-headed)"
50 ---help--- 50 ---help---
51 Say Y here if you have an old MDA or monochrome Hercules graphics 51 Say Y here if you have an old MDA or monochrome Hercules graphics
52 adapter in your system acting as a second head ( = video card). You 52 adapter in your system acting as a second head ( = video card). You
diff --git a/drivers/video/exynos/exynos_dp_core.c b/drivers/video/exynos/exynos_dp_core.c
index 2d0d144add1b..2ed97769aa6d 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -1076,11 +1076,9 @@ static int exynos_dp_probe(struct platform_device *pdev)
1076 1076
1077 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1077 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1078 1078
1079 dp->reg_base = devm_request_and_ioremap(&pdev->dev, res); 1079 dp->reg_base = devm_ioremap_resource(&pdev->dev, res);
1080 if (!dp->reg_base) { 1080 if (IS_ERR(dp->reg_base))
1081 dev_err(&pdev->dev, "failed to ioremap\n"); 1081 return PTR_ERR(dp->reg_base);
1082 return -ENOMEM;
1083 }
1084 1082
1085 dp->irq = platform_get_irq(pdev, 0); 1083 dp->irq = platform_get_irq(pdev, 0);
1086 if (dp->irq == -ENXIO) { 1084 if (dp->irq == -ENXIO) {
diff --git a/drivers/video/geode/Kconfig b/drivers/video/geode/Kconfig
index c5d8ba4b9fc3..21e351a14593 100644
--- a/drivers/video/geode/Kconfig
+++ b/drivers/video/geode/Kconfig
@@ -2,14 +2,14 @@
2# Geode family framebuffer configuration 2# Geode family framebuffer configuration
3# 3#
4config FB_GEODE 4config FB_GEODE
5 bool "AMD Geode family framebuffer support (EXPERIMENTAL)" 5 bool "AMD Geode family framebuffer support"
6 depends on FB && PCI && EXPERIMENTAL && X86 6 depends on FB && PCI && X86
7 ---help--- 7 ---help---
8 Say 'Y' here to allow you to select framebuffer drivers for 8 Say 'Y' here to allow you to select framebuffer drivers for
9 the AMD Geode family of processors. 9 the AMD Geode family of processors.
10 10
11config FB_GEODE_LX 11config FB_GEODE_LX
12 tristate "AMD Geode LX framebuffer support (EXPERIMENTAL)" 12 tristate "AMD Geode LX framebuffer support"
13 depends on FB && FB_GEODE 13 depends on FB && FB_GEODE
14 select FB_CFB_FILLRECT 14 select FB_CFB_FILLRECT
15 select FB_CFB_COPYAREA 15 select FB_CFB_COPYAREA
@@ -24,8 +24,8 @@ config FB_GEODE_LX
24 If unsure, say N. 24 If unsure, say N.
25 25
26config FB_GEODE_GX 26config FB_GEODE_GX
27 tristate "AMD Geode GX framebuffer support (EXPERIMENTAL)" 27 tristate "AMD Geode GX framebuffer support"
28 depends on FB && FB_GEODE && EXPERIMENTAL 28 depends on FB && FB_GEODE
29 select FB_CFB_FILLRECT 29 select FB_CFB_FILLRECT
30 select FB_CFB_COPYAREA 30 select FB_CFB_COPYAREA
31 select FB_CFB_IMAGEBLIT 31 select FB_CFB_IMAGEBLIT
@@ -39,8 +39,8 @@ config FB_GEODE_GX
39 If unsure, say N. 39 If unsure, say N.
40 40
41config FB_GEODE_GX1 41config FB_GEODE_GX1
42 tristate "AMD Geode GX1 framebuffer support (EXPERIMENTAL)" 42 tristate "AMD Geode GX1 framebuffer support"
43 depends on FB && FB_GEODE && EXPERIMENTAL 43 depends on FB && FB_GEODE
44 select FB_CFB_FILLRECT 44 select FB_CFB_FILLRECT
45 select FB_CFB_COPYAREA 45 select FB_CFB_COPYAREA
46 select FB_CFB_IMAGEBLIT 46 select FB_CFB_IMAGEBLIT
diff --git a/drivers/video/jz4740_fb.c b/drivers/video/jz4740_fb.c
index d999bb5e0485..36979b4131ab 100644
--- a/drivers/video/jz4740_fb.c
+++ b/drivers/video/jz4740_fb.c
@@ -660,9 +660,9 @@ static int jzfb_probe(struct platform_device *pdev)
660 } 660 }
661 661
662 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 662 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
663 jzfb->base = devm_request_and_ioremap(&pdev->dev, mem); 663 jzfb->base = devm_ioremap_resource(&pdev->dev, mem);
664 if (!jzfb->base) { 664 if (IS_ERR(jzfb->base)) {
665 ret = -EBUSY; 665 ret = PTR_ERR(jzfb->base);
666 goto err_framebuffer_release; 666 goto err_framebuffer_release;
667 } 667 }
668 668
diff --git a/drivers/video/omap/Kconfig b/drivers/video/omap/Kconfig
index b48f95f0dfe2..e512581300fc 100644
--- a/drivers/video/omap/Kconfig
+++ b/drivers/video/omap/Kconfig
@@ -1,5 +1,5 @@
1config FB_OMAP 1config FB_OMAP
2 tristate "OMAP frame buffer support (EXPERIMENTAL)" 2 tristate "OMAP frame buffer support"
3 depends on FB 3 depends on FB
4 depends on ARCH_OMAP1 4 depends on ARCH_OMAP1
5 select FB_CFB_FILLRECT 5 select FB_CFB_FILLRECT
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 769d0828581c..72923645dcce 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -1080,11 +1080,9 @@ static int __init omapdss_hdmihw_probe(struct platform_device *pdev)
1080 } 1080 }
1081 1081
1082 /* Base address taken from platform */ 1082 /* Base address taken from platform */
1083 hdmi.ip_data.base_wp = devm_request_and_ioremap(&pdev->dev, res); 1083 hdmi.ip_data.base_wp = devm_ioremap_resource(&pdev->dev, res);
1084 if (!hdmi.ip_data.base_wp) { 1084 if (IS_ERR(hdmi.ip_data.base_wp))
1085 DSSERR("can't ioremap WP\n"); 1085 return PTR_ERR(hdmi.ip_data.base_wp);
1086 return -ENOMEM;
1087 }
1088 1086
1089 r = hdmi_get_clocks(pdev); 1087 r = hdmi_get_clocks(pdev);
1090 if (r) { 1088 if (r) {
diff --git a/drivers/video/omap2/vrfb.c b/drivers/video/omap2/vrfb.c
index 5d8fdac3b800..10560efeb35a 100644
--- a/drivers/video/omap2/vrfb.c
+++ b/drivers/video/omap2/vrfb.c
@@ -20,6 +20,7 @@
20 20
21/*#define DEBUG*/ 21/*#define DEBUG*/
22 22
23#include <linux/err.h>
23#include <linux/kernel.h> 24#include <linux/kernel.h>
24#include <linux/module.h> 25#include <linux/module.h>
25#include <linux/ioport.h> 26#include <linux/ioport.h>
@@ -357,11 +358,9 @@ static int __init vrfb_probe(struct platform_device *pdev)
357 return -EINVAL; 358 return -EINVAL;
358 } 359 }
359 360
360 vrfb_base = devm_request_and_ioremap(&pdev->dev, mem); 361 vrfb_base = devm_ioremap_resource(&pdev->dev, mem);
361 if (!vrfb_base) { 362 if (IS_ERR(vrfb_base))
362 dev_err(&pdev->dev, "can't ioremap vrfb memory\n"); 363 return PTR_ERR(vrfb_base);
363 return -ENOMEM;
364 }
365 364
366 num_ctxs = pdev->num_resources - 1; 365 num_ctxs = pdev->num_resources - 1;
367 366
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
index 9b57a235c9bc..968a62571df7 100644
--- a/drivers/video/s3c-fb.c
+++ b/drivers/video/s3c-fb.c
@@ -1421,10 +1421,9 @@ static int s3c_fb_probe(struct platform_device *pdev)
1421 pm_runtime_enable(sfb->dev); 1421 pm_runtime_enable(sfb->dev);
1422 1422
1423 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1423 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1424 sfb->regs = devm_request_and_ioremap(dev, res); 1424 sfb->regs = devm_ioremap_resource(dev, res);
1425 if (!sfb->regs) { 1425 if (IS_ERR(sfb->regs)) {
1426 dev_err(dev, "failed to map registers\n"); 1426 ret = PTR_ERR(sfb->regs);
1427 ret = -ENXIO;
1428 goto err_lcd_clk; 1427 goto err_lcd_clk;
1429 } 1428 }
1430 1429
diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig
index 8d5bddb56cb1..c6683f2e396c 100644
--- a/drivers/virtio/Kconfig
+++ b/drivers/virtio/Kconfig
@@ -8,8 +8,8 @@ config VIRTIO
8menu "Virtio drivers" 8menu "Virtio drivers"
9 9
10config VIRTIO_PCI 10config VIRTIO_PCI
11 tristate "PCI driver for virtio devices (EXPERIMENTAL)" 11 tristate "PCI driver for virtio devices"
12 depends on PCI && EXPERIMENTAL 12 depends on PCI
13 select VIRTIO 13 select VIRTIO
14 ---help--- 14 ---help---
15 This drivers provides support for virtio based paravirtual device 15 This drivers provides support for virtio based paravirtual device
@@ -32,8 +32,8 @@ config VIRTIO_BALLOON
32 If unsure, say M. 32 If unsure, say M.
33 33
34 config VIRTIO_MMIO 34 config VIRTIO_MMIO
35 tristate "Platform bus driver for memory mapped virtio devices (EXPERIMENTAL)" 35 tristate "Platform bus driver for memory mapped virtio devices"
36 depends on HAS_IOMEM && EXPERIMENTAL 36 depends on HAS_IOMEM
37 select VIRTIO 37 select VIRTIO
38 ---help--- 38 ---help---
39 This drivers provides support for memory mapped virtio 39 This drivers provides support for memory mapped virtio
diff --git a/drivers/vlynq/Kconfig b/drivers/vlynq/Kconfig
index d874b4f34136..e01162046598 100644
--- a/drivers/vlynq/Kconfig
+++ b/drivers/vlynq/Kconfig
@@ -1,5 +1,5 @@
1menu "TI VLYNQ" 1menu "TI VLYNQ"
2 depends on AR7 && EXPERIMENTAL 2 depends on AR7
3 3
4config VLYNQ 4config VLYNQ
5 bool "TI VLYNQ bus support" 5 bool "TI VLYNQ bus support"
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index 184dbce4abd1..db2390aed387 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -560,11 +560,9 @@ static int omap_hdq_probe(struct platform_device *pdev)
560 return -ENXIO; 560 return -ENXIO;
561 } 561 }
562 562
563 hdq_data->hdq_base = devm_request_and_ioremap(dev, res); 563 hdq_data->hdq_base = devm_ioremap_resource(dev, res);
564 if (!hdq_data->hdq_base) { 564 if (IS_ERR(hdq_data->hdq_base))
565 dev_dbg(&pdev->dev, "ioremap failed\n"); 565 return PTR_ERR(hdq_data->hdq_base);
566 return -ENOMEM;
567 }
568 566
569 hdq_data->hdq_usecount = 0; 567 hdq_data->hdq_usecount = 0;
570 mutex_init(&hdq_data->hdq_mutex); 568 mutex_init(&hdq_data->hdq_mutex);
diff --git a/drivers/watchdog/ar7_wdt.c b/drivers/watchdog/ar7_wdt.c
index 3003e2a9580b..2f3cc8fb471a 100644
--- a/drivers/watchdog/ar7_wdt.c
+++ b/drivers/watchdog/ar7_wdt.c
@@ -285,11 +285,9 @@ static int ar7_wdt_probe(struct platform_device *pdev)
285 return -ENODEV; 285 return -ENODEV;
286 } 286 }
287 287
288 ar7_wdt = devm_request_and_ioremap(&pdev->dev, ar7_regs_wdt); 288 ar7_wdt = devm_ioremap_resource(&pdev->dev, ar7_regs_wdt);
289 if (!ar7_wdt) { 289 if (IS_ERR(ar7_wdt))
290 pr_err("could not ioremap registers\n"); 290 return PTR_ERR(ar7_wdt);
291 return -ENXIO;
292 }
293 291
294 vbus_clk = clk_get(NULL, "vbus"); 292 vbus_clk = clk_get(NULL, "vbus");
295 if (IS_ERR(vbus_clk)) { 293 if (IS_ERR(vbus_clk)) {
diff --git a/drivers/watchdog/at32ap700x_wdt.c b/drivers/watchdog/at32ap700x_wdt.c
index 2896430ce42c..7a715e3e6828 100644
--- a/drivers/watchdog/at32ap700x_wdt.c
+++ b/drivers/watchdog/at32ap700x_wdt.c
@@ -436,17 +436,7 @@ static struct platform_driver at32_wdt_driver = {
436 .shutdown = at32_wdt_shutdown, 436 .shutdown = at32_wdt_shutdown,
437}; 437};
438 438
439static int __init at32_wdt_init(void) 439module_platform_driver_probe(at32_wdt_driver, at32_wdt_probe);
440{
441 return platform_driver_probe(&at32_wdt_driver, at32_wdt_probe);
442}
443module_init(at32_wdt_init);
444
445static void __exit at32_wdt_exit(void)
446{
447 platform_driver_unregister(&at32_wdt_driver);
448}
449module_exit(at32_wdt_exit);
450 440
451MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>"); 441MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>");
452MODULE_DESCRIPTION("Watchdog driver for Atmel AT32AP700X"); 442MODULE_DESCRIPTION("Watchdog driver for Atmel AT32AP700X");
diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
index dc42e44b6bc1..c08933cc565e 100644
--- a/drivers/watchdog/at91sam9_wdt.c
+++ b/drivers/watchdog/at91sam9_wdt.c
@@ -321,18 +321,7 @@ static struct platform_driver at91wdt_driver = {
321 }, 321 },
322}; 322};
323 323
324static int __init at91sam_wdt_init(void) 324module_platform_driver_probe(at91wdt_driver, at91wdt_probe);
325{
326 return platform_driver_probe(&at91wdt_driver, at91wdt_probe);
327}
328
329static void __exit at91sam_wdt_exit(void)
330{
331 platform_driver_unregister(&at91wdt_driver);
332}
333
334module_init(at91sam_wdt_init);
335module_exit(at91sam_wdt_exit);
336 325
337MODULE_AUTHOR("Renaud CERRATO <r.cerrato@til-technologies.fr>"); 326MODULE_AUTHOR("Renaud CERRATO <r.cerrato@til-technologies.fr>");
338MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors"); 327MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors");
diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
index cb5da5c3ece2..b9b8a8be6f12 100644
--- a/drivers/watchdog/coh901327_wdt.c
+++ b/drivers/watchdog/coh901327_wdt.c
@@ -451,17 +451,7 @@ static struct platform_driver coh901327_driver = {
451 .resume = coh901327_resume, 451 .resume = coh901327_resume,
452}; 452};
453 453
454static int __init coh901327_init(void) 454module_platform_driver_probe(coh901327_driver, coh901327_probe);
455{
456 return platform_driver_probe(&coh901327_driver, coh901327_probe);
457}
458module_init(coh901327_init);
459
460static void __exit coh901327_exit(void)
461{
462 platform_driver_unregister(&coh901327_driver);
463}
464module_exit(coh901327_exit);
465 455
466MODULE_AUTHOR("Linus Walleij <linus.walleij@stericsson.com>"); 456MODULE_AUTHOR("Linus Walleij <linus.walleij@stericsson.com>");
467MODULE_DESCRIPTION("COH 901 327 Watchdog"); 457MODULE_DESCRIPTION("COH 901 327 Watchdog");
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index a0eba3c40e25..203766989382 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -301,9 +301,9 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
301 if (!mem) 301 if (!mem)
302 return -EINVAL; 302 return -EINVAL;
303 303
304 dw_wdt.regs = devm_request_and_ioremap(&pdev->dev, mem); 304 dw_wdt.regs = devm_ioremap_resource(&pdev->dev, mem);
305 if (!dw_wdt.regs) 305 if (IS_ERR(dw_wdt.regs))
306 return -ENOMEM; 306 return PTR_ERR(dw_wdt.regs);
307 307
308 dw_wdt.clk = clk_get(&pdev->dev, NULL); 308 dw_wdt.clk = clk_get(&pdev->dev, NULL);
309 if (IS_ERR(dw_wdt.clk)) 309 if (IS_ERR(dw_wdt.clk))
diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c
index 9a45d0294cf4..ff908823688c 100644
--- a/drivers/watchdog/imx2_wdt.c
+++ b/drivers/watchdog/imx2_wdt.c
@@ -262,11 +262,9 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
262 return -ENODEV; 262 return -ENODEV;
263 } 263 }
264 264
265 imx2_wdt.base = devm_request_and_ioremap(&pdev->dev, res); 265 imx2_wdt.base = devm_ioremap_resource(&pdev->dev, res);
266 if (!imx2_wdt.base) { 266 if (IS_ERR(imx2_wdt.base))
267 dev_err(&pdev->dev, "ioremap failed\n"); 267 return PTR_ERR(imx2_wdt.base);
268 return -ENOMEM;
269 }
270 268
271 imx2_wdt.clk = clk_get(&pdev->dev, NULL); 269 imx2_wdt.clk = clk_get(&pdev->dev, NULL);
272 if (IS_ERR(imx2_wdt.clk)) { 270 if (IS_ERR(imx2_wdt.clk)) {
@@ -342,17 +340,7 @@ static struct platform_driver imx2_wdt_driver = {
342 }, 340 },
343}; 341};
344 342
345static int __init imx2_wdt_init(void) 343module_platform_driver_probe(imx2_wdt_driver, imx2_wdt_probe);
346{
347 return platform_driver_probe(&imx2_wdt_driver, imx2_wdt_probe);
348}
349module_init(imx2_wdt_init);
350
351static void __exit imx2_wdt_exit(void)
352{
353 platform_driver_unregister(&imx2_wdt_driver);
354}
355module_exit(imx2_wdt_exit);
356 344
357MODULE_AUTHOR("Wolfram Sang"); 345MODULE_AUTHOR("Wolfram Sang");
358MODULE_DESCRIPTION("Watchdog driver for IMX2 and later"); 346MODULE_DESCRIPTION("Watchdog driver for IMX2 and later");
diff --git a/drivers/watchdog/jz4740_wdt.c b/drivers/watchdog/jz4740_wdt.c
index a61408fa0c94..1cb25f69a96d 100644
--- a/drivers/watchdog/jz4740_wdt.c
+++ b/drivers/watchdog/jz4740_wdt.c
@@ -171,9 +171,9 @@ static int jz4740_wdt_probe(struct platform_device *pdev)
171 watchdog_set_drvdata(jz4740_wdt, drvdata); 171 watchdog_set_drvdata(jz4740_wdt, drvdata);
172 172
173 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 173 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
174 drvdata->base = devm_request_and_ioremap(&pdev->dev, res); 174 drvdata->base = devm_ioremap_resource(&pdev->dev, res);
175 if (drvdata->base == NULL) { 175 if (IS_ERR(drvdata->base)) {
176 ret = -EBUSY; 176 ret = PTR_ERR(drvdata->base);
177 goto err_out; 177 goto err_out;
178 } 178 }
179 179
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index 79fe01b42339..088fd0c9d888 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -197,11 +197,9 @@ ltq_wdt_probe(struct platform_device *pdev)
197 return -ENOENT; 197 return -ENOENT;
198 } 198 }
199 199
200 ltq_wdt_membase = devm_request_and_ioremap(&pdev->dev, res); 200 ltq_wdt_membase = devm_ioremap_resource(&pdev->dev, res);
201 if (!ltq_wdt_membase) { 201 if (IS_ERR(ltq_wdt_membase))
202 dev_err(&pdev->dev, "cannot remap I/O memory region\n"); 202 return PTR_ERR(ltq_wdt_membase);
203 return -ENOMEM;
204 }
205 203
206 /* we do not need to enable the clock as it is always running */ 204 /* we do not need to enable the clock as it is always running */
207 clk = clk_get_io(); 205 clk = clk_get_io();
diff --git a/drivers/watchdog/max63xx_wdt.c b/drivers/watchdog/max63xx_wdt.c
index 773c661723ca..cc9d328086ed 100644
--- a/drivers/watchdog/max63xx_wdt.c
+++ b/drivers/watchdog/max63xx_wdt.c
@@ -14,6 +14,7 @@
14 * another interface, some abstraction will have to be introduced. 14 * another interface, some abstraction will have to be introduced.
15 */ 15 */
16 16
17#include <linux/err.h>
17#include <linux/module.h> 18#include <linux/module.h>
18#include <linux/moduleparam.h> 19#include <linux/moduleparam.h>
19#include <linux/types.h> 20#include <linux/types.h>
@@ -198,9 +199,9 @@ static int max63xx_wdt_probe(struct platform_device *pdev)
198 heartbeat = current_timeout->twd; 199 heartbeat = current_timeout->twd;
199 200
200 wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 201 wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
201 wdt_base = devm_request_and_ioremap(&pdev->dev, wdt_mem); 202 wdt_base = devm_ioremap_resource(&pdev->dev, wdt_mem);
202 if (!wdt_base) 203 if (IS_ERR(wdt_base))
203 return -ENOMEM; 204 return PTR_ERR(wdt_base);
204 205
205 max63xx_wdt_dev.timeout = heartbeat; 206 max63xx_wdt_dev.timeout = heartbeat;
206 watchdog_set_nowayout(&max63xx_wdt_dev, nowayout); 207 watchdog_set_nowayout(&max63xx_wdt_dev, nowayout);
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index dcba5dab6c29..de1f3fa1d787 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -155,9 +155,9 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
155 heartbeat = DEFAULT_HEARTBEAT; 155 heartbeat = DEFAULT_HEARTBEAT;
156 156
157 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 157 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
158 wdt_base = devm_request_and_ioremap(&pdev->dev, r); 158 wdt_base = devm_ioremap_resource(&pdev->dev, r);
159 if (!wdt_base) 159 if (IS_ERR(wdt_base))
160 return -EADDRINUSE; 160 return PTR_ERR(wdt_base);
161 161
162 wdt_clk = clk_get(&pdev->dev, NULL); 162 wdt_clk = clk_get(&pdev->dev, NULL);
163 if (IS_ERR(wdt_clk)) 163 if (IS_ERR(wdt_clk))
diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c
index 98e16373e640..88f23c5cfddb 100644
--- a/drivers/watchdog/txx9wdt.c
+++ b/drivers/watchdog/txx9wdt.c
@@ -121,9 +121,9 @@ static int __init txx9wdt_probe(struct platform_device *dev)
121 } 121 }
122 122
123 res = platform_get_resource(dev, IORESOURCE_MEM, 0); 123 res = platform_get_resource(dev, IORESOURCE_MEM, 0);
124 txx9wdt_reg = devm_request_and_ioremap(&dev->dev, res); 124 txx9wdt_reg = devm_ioremap_resource(&dev->dev, res);
125 if (!txx9wdt_reg) { 125 if (IS_ERR(txx9wdt_reg)) {
126 ret = -EBUSY; 126 ret = PTR_ERR(txx9wdt_reg);
127 goto exit; 127 goto exit;
128 } 128 }
129 129
@@ -172,18 +172,7 @@ static struct platform_driver txx9wdt_driver = {
172 }, 172 },
173}; 173};
174 174
175static int __init watchdog_init(void) 175module_platform_driver_probe(txx9wdt_driver, txx9wdt_probe);
176{
177 return platform_driver_probe(&txx9wdt_driver, txx9wdt_probe);
178}
179
180static void __exit watchdog_exit(void)
181{
182 platform_driver_unregister(&txx9wdt_driver);
183}
184
185module_init(watchdog_init);
186module_exit(watchdog_exit);
187 176
188MODULE_DESCRIPTION("TXx9 Watchdog Driver"); 177MODULE_DESCRIPTION("TXx9 Watchdog Driver");
189MODULE_LICENSE("GPL"); 178MODULE_LICENSE("GPL");
diff --git a/fs/9p/Kconfig b/fs/9p/Kconfig
index 0a93dc1cb4ac..55abfd62654a 100644
--- a/fs/9p/Kconfig
+++ b/fs/9p/Kconfig
@@ -11,8 +11,7 @@ config 9P_FS
11 11
12if 9P_FS 12if 9P_FS
13config 9P_FSCACHE 13config 9P_FSCACHE
14 bool "Enable 9P client caching support (EXPERIMENTAL)" 14 bool "Enable 9P client caching support"
15 depends on EXPERIMENTAL
16 depends on 9P_FS=m && FSCACHE || 9P_FS=y && FSCACHE=y 15 depends on 9P_FS=m && FSCACHE || 9P_FS=y && FSCACHE=y
17 help 16 help
18 Choose Y here to enable persistent, read-only local 17 Choose Y here to enable persistent, read-only local
diff --git a/fs/adfs/Kconfig b/fs/adfs/Kconfig
index e55182a74605..c5a7787dd5e9 100644
--- a/fs/adfs/Kconfig
+++ b/fs/adfs/Kconfig
@@ -1,6 +1,6 @@
1config ADFS_FS 1config ADFS_FS
2 tristate "ADFS file system support (EXPERIMENTAL)" 2 tristate "ADFS file system support"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 help 4 help
5 The Acorn Disc Filing System is the standard file system of the 5 The Acorn Disc Filing System is the standard file system of the
6 RiscOS operating system which runs on Acorn's ARM-based Risc PC 6 RiscOS operating system which runs on Acorn's ARM-based Risc PC
diff --git a/fs/affs/Kconfig b/fs/affs/Kconfig
index cfad9afb4762..a04d9e848d05 100644
--- a/fs/affs/Kconfig
+++ b/fs/affs/Kconfig
@@ -1,6 +1,6 @@
1config AFFS_FS 1config AFFS_FS
2 tristate "Amiga FFS file system support (EXPERIMENTAL)" 2 tristate "Amiga FFS file system support"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 help 4 help
5 The Fast File System (FFS) is the common file system used on hard 5 The Fast File System (FFS) is the common file system used on hard
6 disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y 6 disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y
diff --git a/fs/afs/Kconfig b/fs/afs/Kconfig
index 8f975f25b486..ebba3b18e5da 100644
--- a/fs/afs/Kconfig
+++ b/fs/afs/Kconfig
@@ -1,6 +1,6 @@
1config AFS_FS 1config AFS_FS
2 tristate "Andrew File System support (AFS) (EXPERIMENTAL)" 2 tristate "Andrew File System support (AFS)"
3 depends on INET && EXPERIMENTAL 3 depends on INET
4 select AF_RXRPC 4 select AF_RXRPC
5 select DNS_RESOLVER 5 select DNS_RESOLVER
6 help 6 help
@@ -22,8 +22,7 @@ config AFS_DEBUG
22 If unsure, say N. 22 If unsure, say N.
23 23
24config AFS_FSCACHE 24config AFS_FSCACHE
25 bool "Provide AFS client caching support (EXPERIMENTAL)" 25 bool "Provide AFS client caching support"
26 depends on EXPERIMENTAL
27 depends on AFS_FS=m && FSCACHE || AFS_FS=y && FSCACHE=y 26 depends on AFS_FS=m && FSCACHE || AFS_FS=y && FSCACHE=y
28 help 27 help
29 Say Y here if you want AFS data to be cached locally on disk through 28 Say Y here if you want AFS data to be cached locally on disk through
diff --git a/fs/befs/Kconfig b/fs/befs/Kconfig
index 7835d30f211f..edc5cc2aefad 100644
--- a/fs/befs/Kconfig
+++ b/fs/befs/Kconfig
@@ -1,6 +1,6 @@
1config BEFS_FS 1config BEFS_FS
2 tristate "BeOS file system (BeFS) support (read only) (EXPERIMENTAL)" 2 tristate "BeOS file system (BeFS) support (read only)"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 select NLS 4 select NLS
5 help 5 help
6 The BeOS File System (BeFS) is the native file system of Be, Inc's 6 The BeOS File System (BeFS) is the native file system of Be, Inc's
diff --git a/fs/bfs/Kconfig b/fs/bfs/Kconfig
index c2336c62024f..3728a6479c64 100644
--- a/fs/bfs/Kconfig
+++ b/fs/bfs/Kconfig
@@ -1,6 +1,6 @@
1config BFS_FS 1config BFS_FS
2 tristate "BFS file system support (EXPERIMENTAL)" 2 tristate "BFS file system support"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 help 4 help
5 Boot File System (BFS) is a file system used under SCO UnixWare to 5 Boot File System (BFS) is a file system used under SCO UnixWare to
6 allow the bootloader access to the kernel image and other important 6 allow the bootloader access to the kernel image and other important
diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig
index d33f01c08b60..ccd25ba7a9ac 100644
--- a/fs/btrfs/Kconfig
+++ b/fs/btrfs/Kconfig
@@ -1,6 +1,5 @@
1config BTRFS_FS 1config BTRFS_FS
2 tristate "Btrfs filesystem (EXPERIMENTAL) Unstable disk format" 2 tristate "Btrfs filesystem Unstable disk format"
3 depends on EXPERIMENTAL
4 select LIBCRC32C 3 select LIBCRC32C
5 select ZLIB_INFLATE 4 select ZLIB_INFLATE
6 select ZLIB_DEFLATE 5 select ZLIB_DEFLATE
diff --git a/fs/ceph/Kconfig b/fs/ceph/Kconfig
index 9eb134ea6eb2..49bc78243db9 100644
--- a/fs/ceph/Kconfig
+++ b/fs/ceph/Kconfig
@@ -1,6 +1,6 @@
1config CEPH_FS 1config CEPH_FS
2 tristate "Ceph distributed file system (EXPERIMENTAL)" 2 tristate "Ceph distributed file system"
3 depends on INET && EXPERIMENTAL 3 depends on INET
4 select CEPH_LIB 4 select CEPH_LIB
5 select LIBCRC32C 5 select LIBCRC32C
6 select CRYPTO_AES 6 select CRYPTO_AES
diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig
index 21ff76c22a17..2906ee276408 100644
--- a/fs/cifs/Kconfig
+++ b/fs/cifs/Kconfig
@@ -155,14 +155,14 @@ config CIFS_DFS_UPCALL
155 points. If unsure, say N. 155 points. If unsure, say N.
156 156
157config CIFS_NFSD_EXPORT 157config CIFS_NFSD_EXPORT
158 bool "Allow nfsd to export CIFS file system (EXPERIMENTAL)" 158 bool "Allow nfsd to export CIFS file system"
159 depends on CIFS && EXPERIMENTAL && BROKEN 159 depends on CIFS && BROKEN
160 help 160 help
161 Allows NFS server to export a CIFS mounted share (nfsd over cifs) 161 Allows NFS server to export a CIFS mounted share (nfsd over cifs)
162 162
163config CIFS_SMB2 163config CIFS_SMB2
164 bool "SMB2 network file system support (EXPERIMENTAL)" 164 bool "SMB2 network file system support"
165 depends on CIFS && EXPERIMENTAL && INET 165 depends on CIFS && INET
166 select NLS 166 select NLS
167 select KEYS 167 select KEYS
168 select FSCACHE 168 select FSCACHE
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index a5f12b7e228d..0c4f80b447fb 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -322,7 +322,6 @@ static struct dentry *__create_file(const char *name, umode_t mode,
322 if (!parent) 322 if (!parent)
323 parent = debugfs_mount->mnt_root; 323 parent = debugfs_mount->mnt_root;
324 324
325 dentry = NULL;
326 mutex_lock(&parent->d_inode->i_mutex); 325 mutex_lock(&parent->d_inode->i_mutex);
327 dentry = lookup_one_len(name, parent, strlen(name)); 326 dentry = lookup_one_len(name, parent, strlen(name));
328 if (!IS_ERR(dentry)) { 327 if (!IS_ERR(dentry)) {
diff --git a/fs/ecryptfs/Kconfig b/fs/ecryptfs/Kconfig
index cc16562654de..e15ef38c24fa 100644
--- a/fs/ecryptfs/Kconfig
+++ b/fs/ecryptfs/Kconfig
@@ -1,6 +1,6 @@
1config ECRYPT_FS 1config ECRYPT_FS
2 tristate "eCrypt filesystem layer support (EXPERIMENTAL)" 2 tristate "eCrypt filesystem layer support"
3 depends on EXPERIMENTAL && KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) 3 depends on KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
4 select CRYPTO_ECB 4 select CRYPTO_ECB
5 select CRYPTO_CBC 5 select CRYPTO_CBC
6 select CRYPTO_MD5 6 select CRYPTO_MD5
diff --git a/fs/efs/Kconfig b/fs/efs/Kconfig
index 6ebfc1c207a8..d020e3c30fea 100644
--- a/fs/efs/Kconfig
+++ b/fs/efs/Kconfig
@@ -1,6 +1,6 @@
1config EFS_FS 1config EFS_FS
2 tristate "EFS file system support (read only) (EXPERIMENTAL)" 2 tristate "EFS file system support (read only)"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 help 4 help
5 EFS is an older file system used for non-ISO9660 CD-ROMs and hard 5 EFS is an older file system used for non-ISO9660 CD-ROMs and hard
6 disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer 6 disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer
diff --git a/fs/hfs/Kconfig b/fs/hfs/Kconfig
index b77c5bc20f8a..998e3a6decf3 100644
--- a/fs/hfs/Kconfig
+++ b/fs/hfs/Kconfig
@@ -1,6 +1,6 @@
1config HFS_FS 1config HFS_FS
2 tristate "Apple Macintosh file system support (EXPERIMENTAL)" 2 tristate "Apple Macintosh file system support"
3 depends on BLOCK && EXPERIMENTAL 3 depends on BLOCK
4 select NLS 4 select NLS
5 help 5 help
6 If you say Y here, you will be able to mount Macintosh-formatted 6 If you say Y here, you will be able to mount Macintosh-formatted
diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig
index 6ae169cd8faa..d8bb6c411e96 100644
--- a/fs/jffs2/Kconfig
+++ b/fs/jffs2/Kconfig
@@ -50,8 +50,8 @@ config JFFS2_FS_WBUF_VERIFY
50 write-buffer, and check for errors. 50 write-buffer, and check for errors.
51 51
52config JFFS2_SUMMARY 52config JFFS2_SUMMARY
53 bool "JFFS2 summary support (EXPERIMENTAL)" 53 bool "JFFS2 summary support"
54 depends on JFFS2_FS && EXPERIMENTAL 54 depends on JFFS2_FS
55 default n 55 default n
56 help 56 help
57 This feature makes it possible to use summary information 57 This feature makes it possible to use summary information
@@ -63,8 +63,8 @@ config JFFS2_SUMMARY
63 If unsure, say 'N'. 63 If unsure, say 'N'.
64 64
65config JFFS2_FS_XATTR 65config JFFS2_FS_XATTR
66 bool "JFFS2 XATTR support (EXPERIMENTAL)" 66 bool "JFFS2 XATTR support"
67 depends on JFFS2_FS && EXPERIMENTAL 67 depends on JFFS2_FS
68 default n 68 default n
69 help 69 help
70 Extended attributes are name:value pairs associated with inodes by 70 Extended attributes are name:value pairs associated with inodes by
@@ -173,7 +173,7 @@ config JFFS2_CMODE_PRIORITY
173 successful one. 173 successful one.
174 174
175config JFFS2_CMODE_SIZE 175config JFFS2_CMODE_SIZE
176 bool "size (EXPERIMENTAL)" 176 bool "size"
177 help 177 help
178 Tries all compressors and chooses the one which has the smallest 178 Tries all compressors and chooses the one which has the smallest
179 result. 179 result.
diff --git a/fs/logfs/Kconfig b/fs/logfs/Kconfig
index daf9a9b32dd3..09ed066c0221 100644
--- a/fs/logfs/Kconfig
+++ b/fs/logfs/Kconfig
@@ -1,6 +1,6 @@
1config LOGFS 1config LOGFS
2 tristate "LogFS file system (EXPERIMENTAL)" 2 tristate "LogFS file system"
3 depends on (MTD || BLOCK) && EXPERIMENTAL 3 depends on (MTD || BLOCK)
4 select ZLIB_INFLATE 4 select ZLIB_INFLATE
5 select ZLIB_DEFLATE 5 select ZLIB_DEFLATE
6 select CRC32 6 select CRC32
diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index 8df1ea4a6ff9..430b6872806f 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -65,8 +65,8 @@ config NFSD_V3_ACL
65 If unsure, say N. 65 If unsure, say N.
66 66
67config NFSD_V4 67config NFSD_V4
68 bool "NFS server support for NFS version 4 (EXPERIMENTAL)" 68 bool "NFS server support for NFS version 4"
69 depends on NFSD && PROC_FS && EXPERIMENTAL 69 depends on NFSD && PROC_FS
70 select NFSD_V3 70 select NFSD_V3
71 select FS_POSIX_ACL 71 select FS_POSIX_ACL
72 select SUNRPC_GSS 72 select SUNRPC_GSS
diff --git a/fs/nilfs2/Kconfig b/fs/nilfs2/Kconfig
index 251da07b2a1d..80da8eb27393 100644
--- a/fs/nilfs2/Kconfig
+++ b/fs/nilfs2/Kconfig
@@ -1,6 +1,5 @@
1config NILFS2_FS 1config NILFS2_FS
2 tristate "NILFS2 file system support (EXPERIMENTAL)" 2 tristate "NILFS2 file system support"
3 depends on EXPERIMENTAL
4 select CRC32 3 select CRC32
5 help 4 help
6 NILFS2 is a log-structured file system (LFS) supporting continuous 5 NILFS2 is a log-structured file system (LFS) supporting continuous
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
index db940a9be045..8d924b5ec733 100644
--- a/fs/sysfs/mount.c
+++ b/fs/sysfs/mount.c
@@ -10,7 +10,7 @@
10 * Please see Documentation/filesystems/sysfs.txt for more information. 10 * Please see Documentation/filesystems/sysfs.txt for more information.
11 */ 11 */
12 12
13#define DEBUG 13#define DEBUG
14 14
15#include <linux/fs.h> 15#include <linux/fs.h>
16#include <linux/mount.h> 16#include <linux/mount.h>
diff --git a/fs/ufs/Kconfig b/fs/ufs/Kconfig
index e4f10a40768a..0bf6e16f8d79 100644
--- a/fs/ufs/Kconfig
+++ b/fs/ufs/Kconfig
@@ -29,7 +29,7 @@ config UFS_FS
29 29
30config UFS_FS_WRITE 30config UFS_FS_WRITE
31 bool "UFS file system write support (DANGEROUS)" 31 bool "UFS file system write support (DANGEROUS)"
32 depends on UFS_FS && EXPERIMENTAL 32 depends on UFS_FS
33 help 33 help
34 Say Y here if you want to try writing to UFS partitions. This is 34 Say Y here if you want to try writing to UFS partitions. This is
35 experimental, so you should back up your UFS partitions beforehand. 35 experimental, so you should back up your UFS partitions beforehand.
diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig
index 5a7ffe54f5d5..cc33aaf219f1 100644
--- a/fs/xfs/Kconfig
+++ b/fs/xfs/Kconfig
@@ -70,8 +70,8 @@ config XFS_RT
70 If unsure, say N. 70 If unsure, say N.
71 71
72config XFS_DEBUG 72config XFS_DEBUG
73 bool "XFS Debugging support (EXPERIMENTAL)" 73 bool "XFS Debugging support"
74 depends on XFS_FS && EXPERIMENTAL 74 depends on XFS_FS
75 help 75 help
76 Say Y here to get an XFS build with many debugging features, 76 Say Y here to get an XFS build with many debugging features,
77 including ASSERT checks, function wrappers around macros, 77 including ASSERT checks, function wrappers around macros,
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index 66c434f5dd1e..63f2465807d4 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -33,7 +33,7 @@ struct debugfs_reg32 {
33}; 33};
34 34
35struct debugfs_regset32 { 35struct debugfs_regset32 {
36 struct debugfs_reg32 *regs; 36 const struct debugfs_reg32 *regs;
37 int nregs; 37 int nregs;
38 void __iomem *base; 38 void __iomem *base;
39}; 39};
diff --git a/include/linux/device.h b/include/linux/device.h
index 001f6637aa47..9d6464ea99c6 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -396,8 +396,8 @@ extern int class_for_each_device(struct class *class, struct device *start,
396 void *data, 396 void *data,
397 int (*fn)(struct device *dev, void *data)); 397 int (*fn)(struct device *dev, void *data));
398extern struct device *class_find_device(struct class *class, 398extern struct device *class_find_device(struct class *class,
399 struct device *start, void *data, 399 struct device *start, const void *data,
400 int (*match)(struct device *, void *)); 400 int (*match)(struct device *, const void *));
401 401
402struct class_attribute { 402struct class_attribute {
403 struct attribute attr; 403 struct attribute attr;
@@ -574,6 +574,7 @@ extern int devres_release_group(struct device *dev, void *id);
574extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); 574extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp);
575extern void devm_kfree(struct device *dev, void *p); 575extern void devm_kfree(struct device *dev, void *p);
576 576
577void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
577void __iomem *devm_request_and_ioremap(struct device *dev, 578void __iomem *devm_request_and_ioremap(struct device *dev,
578 struct resource *res); 579 struct resource *res);
579 580
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
index 6dd4787a798a..2fe93b26b42f 100644
--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h
@@ -95,6 +95,17 @@ do { \
95 ##__VA_ARGS__); \ 95 ##__VA_ARGS__); \
96} while (0) 96} while (0)
97 97
98#define dynamic_hex_dump(prefix_str, prefix_type, rowsize, \
99 groupsize, buf, len, ascii) \
100do { \
101 DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, \
102 __builtin_constant_p(prefix_str) ? prefix_str : "hexdump");\
103 if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \
104 print_hex_dump(KERN_DEBUG, prefix_str, \
105 prefix_type, rowsize, groupsize, \
106 buf, len, ascii); \
107} while (0)
108
98#else 109#else
99 110
100#include <linux/string.h> 111#include <linux/string.h>
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index a9ded9a3c175..c082c71f7225 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -204,6 +204,24 @@ static inline void platform_set_drvdata(struct platform_device *pdev, void *data
204 module_driver(__platform_driver, platform_driver_register, \ 204 module_driver(__platform_driver, platform_driver_register, \
205 platform_driver_unregister) 205 platform_driver_unregister)
206 206
207/* module_platform_driver_probe() - Helper macro for drivers that don't do
208 * anything special in module init/exit. This eliminates a lot of
209 * boilerplate. Each module may only use this macro once, and
210 * calling it replaces module_init() and module_exit()
211 */
212#define module_platform_driver_probe(__platform_driver, __platform_probe) \
213static int __init __platform_driver##_init(void) \
214{ \
215 return platform_driver_probe(&(__platform_driver), \
216 __platform_probe); \
217} \
218module_init(__platform_driver##_init); \
219static void __exit __platform_driver##_exit(void) \
220{ \
221 platform_driver_unregister(&(__platform_driver)); \
222} \
223module_exit(__platform_driver##_exit);
224
207extern struct platform_device *platform_create_bundle(struct platform_driver *driver, 225extern struct platform_device *platform_create_bundle(struct platform_driver *driver,
208 int (*probe)(struct platform_device *), 226 int (*probe)(struct platform_device *),
209 struct resource *res, unsigned int n_res, 227 struct resource *res, unsigned int n_res,
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 25c0982eb9b1..002a99f96331 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -226,7 +226,7 @@ struct power_supply_info {
226 int use_for_apm; 226 int use_for_apm;
227}; 227};
228 228
229extern struct power_supply *power_supply_get_by_name(char *name); 229extern struct power_supply *power_supply_get_by_name(const char *name);
230extern void power_supply_changed(struct power_supply *psy); 230extern void power_supply_changed(struct power_supply *psy);
231extern int power_supply_am_i_supplied(struct power_supply *psy); 231extern int power_supply_am_i_supplied(struct power_supply *psy);
232extern int power_supply_set_battery_charged(struct power_supply *psy); 232extern int power_supply_set_battery_charged(struct power_supply *psy);
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 86c4b6294713..5bef3045218e 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -318,8 +318,13 @@ extern void hex_dump_to_buffer(const void *buf, size_t len,
318extern void print_hex_dump(const char *level, const char *prefix_str, 318extern void print_hex_dump(const char *level, const char *prefix_str,
319 int prefix_type, int rowsize, int groupsize, 319 int prefix_type, int rowsize, int groupsize,
320 const void *buf, size_t len, bool ascii); 320 const void *buf, size_t len, bool ascii);
321#if defined(CONFIG_DYNAMIC_DEBUG)
322#define print_hex_dump_bytes(prefix_str, prefix_type, buf, len) \
323 dynamic_hex_dump(prefix_str, prefix_type, 16, 1, buf, len, true)
324#else
321extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, 325extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
322 const void *buf, size_t len); 326 const void *buf, size_t len);
327#endif /* defined(CONFIG_DYNAMIC_DEBUG) */
323#else 328#else
324static inline void print_hex_dump(const char *level, const char *prefix_str, 329static inline void print_hex_dump(const char *level, const char *prefix_str,
325 int prefix_type, int rowsize, int groupsize, 330 int prefix_type, int rowsize, int groupsize,
@@ -333,4 +338,16 @@ static inline void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
333 338
334#endif 339#endif
335 340
341#if defined(CONFIG_DYNAMIC_DEBUG)
342#define print_hex_dump_debug(prefix_str, prefix_type, rowsize, \
343 groupsize, buf, len, ascii) \
344 dynamic_hex_dump(prefix_str, prefix_type, rowsize, \
345 groupsize, buf, len, ascii)
346#else
347#define print_hex_dump_debug(prefix_str, prefix_type, rowsize, \
348 groupsize, buf, len, ascii) \
349 print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, rowsize, \
350 groupsize, buf, len, ascii)
351#endif /* defined(CONFIG_DYNAMIC_DEBUG) */
352
336#endif 353#endif
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index 11d05f9fe8b6..580b24c8b8ca 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -149,7 +149,7 @@ extern int rtc_initialize_alarm(struct rtc_device *rtc,
149extern void rtc_update_irq(struct rtc_device *rtc, 149extern void rtc_update_irq(struct rtc_device *rtc,
150 unsigned long num, unsigned long events); 150 unsigned long num, unsigned long events);
151 151
152extern struct rtc_device *rtc_class_open(char *name); 152extern struct rtc_device *rtc_class_open(const char *name);
153extern void rtc_class_close(struct rtc_device *rtc); 153extern void rtc_class_close(struct rtc_device *rtc);
154 154
155extern int rtc_irq_register(struct rtc_device *rtc, 155extern int rtc_irq_register(struct rtc_device *rtc,
diff --git a/init/Kconfig b/init/Kconfig
index 7000d9657402..335a1f680c91 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -29,35 +29,8 @@ config BUILDTIME_EXTABLE_SORT
29menu "General setup" 29menu "General setup"
30 30
31config EXPERIMENTAL 31config EXPERIMENTAL
32 bool "Prompt for development and/or incomplete code/drivers" 32 bool
33 ---help--- 33 default y
34 Some of the various things that Linux supports (such as network
35 drivers, file systems, network protocols, etc.) can be in a state
36 of development where the functionality, stability, or the level of
37 testing is not yet high enough for general use. This is usually
38 known as the "alpha-test" phase among developers. If a feature is
39 currently in alpha-test, then the developers usually discourage
40 uninformed widespread use of this feature by the general public to
41 avoid "Why doesn't this work?" type mail messages. However, active
42 testing and use of these systems is welcomed. Just be aware that it
43 may not meet the normal level of reliability or it may fail to work
44 in some special cases. Detailed bug reports from people familiar
45 with the kernel internals are usually welcomed by the developers
46 (before submitting bug reports, please read the documents
47 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
48 <file:Documentation/BUG-HUNTING>, and
49 <file:Documentation/oops-tracing.txt> in the kernel source).
50
51 This option will also make obsoleted drivers available. These are
52 drivers that have been replaced by something else, and/or are
53 scheduled to be removed in a future kernel release.
54
55 Unless you intend to help test and develop a feature or driver that
56 falls into this category, or you have a situation that requires
57 using these features, you should probably say N here, which will
58 cause the configurator to present you with fewer choices. If
59 you say Y here, you will be offered the choice of using features or
60 drivers that are currently considered to be in the alpha-test phase.
61 34
62config BROKEN 35config BROKEN
63 bool 36 bool
@@ -243,7 +216,7 @@ config SYSVIPC_SYSCTL
243 216
244config POSIX_MQUEUE 217config POSIX_MQUEUE
245 bool "POSIX Message Queues" 218 bool "POSIX Message Queues"
246 depends on NET && EXPERIMENTAL 219 depends on NET
247 ---help--- 220 ---help---
248 POSIX variant of message queues is a part of IPC. In POSIX message 221 POSIX variant of message queues is a part of IPC. In POSIX message
249 queues every message has a priority which decides about succession 222 queues every message has a priority which decides about succession
@@ -410,7 +383,7 @@ config BSD_PROCESS_ACCT_V3
410 at <http://www.gnu.org/software/acct/>. 383 at <http://www.gnu.org/software/acct/>.
411 384
412config TASKSTATS 385config TASKSTATS
413 bool "Export task/process statistics through netlink (EXPERIMENTAL)" 386 bool "Export task/process statistics through netlink"
414 depends on NET 387 depends on NET
415 default n 388 default n
416 help 389 help
@@ -423,7 +396,7 @@ config TASKSTATS
423 Say N if unsure. 396 Say N if unsure.
424 397
425config TASK_DELAY_ACCT 398config TASK_DELAY_ACCT
426 bool "Enable per-task delay accounting (EXPERIMENTAL)" 399 bool "Enable per-task delay accounting"
427 depends on TASKSTATS 400 depends on TASKSTATS
428 help 401 help
429 Collect information on time spent by a task waiting for system 402 Collect information on time spent by a task waiting for system
@@ -434,7 +407,7 @@ config TASK_DELAY_ACCT
434 Say N if unsure. 407 Say N if unsure.
435 408
436config TASK_XACCT 409config TASK_XACCT
437 bool "Enable extended accounting over taskstats (EXPERIMENTAL)" 410 bool "Enable extended accounting over taskstats"
438 depends on TASKSTATS 411 depends on TASKSTATS
439 help 412 help
440 Collect extended task accounting data and send the data 413 Collect extended task accounting data and send the data
@@ -443,7 +416,7 @@ config TASK_XACCT
443 Say N if unsure. 416 Say N if unsure.
444 417
445config TASK_IO_ACCOUNTING 418config TASK_IO_ACCOUNTING
446 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" 419 bool "Enable per-task storage I/O accounting"
447 depends on TASK_XACCT 420 depends on TASK_XACCT
448 help 421 help
449 Collect information on the number of bytes of storage I/O which this 422 Collect information on the number of bytes of storage I/O which this
@@ -907,8 +880,8 @@ config MEMCG_SWAP_ENABLED
907 select this option (if, for some reason, they need to disable it 880 select this option (if, for some reason, they need to disable it
908 then swapaccount=0 does the trick). 881 then swapaccount=0 does the trick).
909config MEMCG_KMEM 882config MEMCG_KMEM
910 bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)" 883 bool "Memory Resource Controller Kernel Memory accounting"
911 depends on MEMCG && EXPERIMENTAL 884 depends on MEMCG
912 depends on SLUB || SLAB 885 depends on SLUB || SLAB
913 help 886 help
914 The Kernel Memory extension for Memory Resource Controller can limit 887 The Kernel Memory extension for Memory Resource Controller can limit
@@ -920,7 +893,7 @@ config MEMCG_KMEM
920 893
921config CGROUP_HUGETLB 894config CGROUP_HUGETLB
922 bool "HugeTLB Resource Controller for Control Groups" 895 bool "HugeTLB Resource Controller for Control Groups"
923 depends on RESOURCE_COUNTERS && HUGETLB_PAGE && EXPERIMENTAL 896 depends on RESOURCE_COUNTERS && HUGETLB_PAGE
924 default n 897 default n
925 help 898 help
926 Provides a cgroup Resource Controller for HugeTLB pages. 899 Provides a cgroup Resource Controller for HugeTLB pages.
@@ -959,7 +932,6 @@ config FAIR_GROUP_SCHED
959 932
960config CFS_BANDWIDTH 933config CFS_BANDWIDTH
961 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" 934 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
962 depends on EXPERIMENTAL
963 depends on FAIR_GROUP_SCHED 935 depends on FAIR_GROUP_SCHED
964 default n 936 default n
965 help 937 help
@@ -971,7 +943,6 @@ config CFS_BANDWIDTH
971 943
972config RT_GROUP_SCHED 944config RT_GROUP_SCHED
973 bool "Group scheduling for SCHED_RR/FIFO" 945 bool "Group scheduling for SCHED_RR/FIFO"
974 depends on EXPERIMENTAL
975 depends on CGROUP_SCHED 946 depends on CGROUP_SCHED
976 default n 947 default n
977 help 948 help
@@ -1053,8 +1024,7 @@ config IPC_NS
1053 different IPC objects in different namespaces. 1024 different IPC objects in different namespaces.
1054 1025
1055config USER_NS 1026config USER_NS
1056 bool "User namespace (EXPERIMENTAL)" 1027 bool "User namespace"
1057 depends on EXPERIMENTAL
1058 depends on UIDGID_CONVERTED 1028 depends on UIDGID_CONVERTED
1059 select UIDGID_STRICT_TYPE_CHECKS 1029 select UIDGID_STRICT_TYPE_CHECKS
1060 1030
@@ -1636,7 +1606,7 @@ config MODULE_UNLOAD
1636 1606
1637config MODULE_FORCE_UNLOAD 1607config MODULE_FORCE_UNLOAD
1638 bool "Forced module unloading" 1608 bool "Forced module unloading"
1639 depends on MODULE_UNLOAD && EXPERIMENTAL 1609 depends on MODULE_UNLOAD
1640 help 1610 help
1641 This option allows you to force a module to unload, even if the 1611 This option allows you to force a module to unload, even if the
1642 kernel believes it is unsafe: the kernel will remove the module 1612 kernel believes it is unsafe: the kernel will remove the module
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 1d1b6348f903..a2b49f2c1bd8 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -81,9 +81,9 @@ struct uuidcmp {
81 * 81 *
82 * Returns 1 if the device matches, and 0 otherwise. 82 * Returns 1 if the device matches, and 0 otherwise.
83 */ 83 */
84static int match_dev_by_uuid(struct device *dev, void *data) 84static int match_dev_by_uuid(struct device *dev, const void *data)
85{ 85{
86 struct uuidcmp *cmp = data; 86 const struct uuidcmp *cmp = data;
87 struct hd_struct *part = dev_to_part(dev); 87 struct hd_struct *part = dev_to_part(dev);
88 88
89 if (!part->info) 89 if (!part->info)
diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig
index a92028196cc1..d4da55d1fb65 100644
--- a/kernel/gcov/Kconfig
+++ b/kernel/gcov/Kconfig
@@ -35,7 +35,7 @@ config GCOV_KERNEL
35config GCOV_PROFILE_ALL 35config GCOV_PROFILE_ALL
36 bool "Profile entire Kernel" 36 bool "Profile entire Kernel"
37 depends on GCOV_KERNEL 37 depends on GCOV_KERNEL
38 depends on SUPERH || S390 || X86 || (PPC && EXPERIMENTAL) || MICROBLAZE 38 depends on SUPERH || S390 || X86 || PPC || MICROBLAZE
39 default n 39 default n
40 ---help--- 40 ---help---
41 This options activates profiling for the entire kernel. 41 This options activates profiling for the entire kernel.
diff --git a/kernel/power/suspend_test.c b/kernel/power/suspend_test.c
index 25596e450ac7..9b2a1d58558d 100644
--- a/kernel/power/suspend_test.c
+++ b/kernel/power/suspend_test.c
@@ -112,7 +112,7 @@ static void __init test_wakealarm(struct rtc_device *rtc, suspend_state_t state)
112 rtc_set_alarm(rtc, &alm); 112 rtc_set_alarm(rtc, &alm);
113} 113}
114 114
115static int __init has_wakealarm(struct device *dev, void *name_ptr) 115static int __init has_wakealarm(struct device *dev, const void *data)
116{ 116{
117 struct rtc_device *candidate = to_rtc_device(dev); 117 struct rtc_device *candidate = to_rtc_device(dev);
118 118
@@ -121,7 +121,6 @@ static int __init has_wakealarm(struct device *dev, void *name_ptr)
121 if (!device_may_wakeup(candidate->dev.parent)) 121 if (!device_may_wakeup(candidate->dev.parent))
122 return 0; 122 return 0;
123 123
124 *(const char **)name_ptr = dev_name(dev);
125 return 1; 124 return 1;
126} 125}
127 126
@@ -159,8 +158,8 @@ static int __init test_suspend(void)
159 static char warn_no_rtc[] __initdata = 158 static char warn_no_rtc[] __initdata =
160 KERN_WARNING "PM: no wakealarm-capable RTC driver is ready\n"; 159 KERN_WARNING "PM: no wakealarm-capable RTC driver is ready\n";
161 160
162 char *pony = NULL;
163 struct rtc_device *rtc = NULL; 161 struct rtc_device *rtc = NULL;
162 struct device *dev;
164 163
165 /* PM is initialized by now; is that state testable? */ 164 /* PM is initialized by now; is that state testable? */
166 if (test_state == PM_SUSPEND_ON) 165 if (test_state == PM_SUSPEND_ON)
@@ -171,9 +170,9 @@ static int __init test_suspend(void)
171 } 170 }
172 171
173 /* RTCs have initialized by now too ... can we use one? */ 172 /* RTCs have initialized by now too ... can we use one? */
174 class_find_device(rtc_class, NULL, &pony, has_wakealarm); 173 dev = class_find_device(rtc_class, NULL, NULL, has_wakealarm);
175 if (pony) 174 if (dev)
176 rtc = rtc_class_open(pony); 175 rtc = rtc_class_open(dev_name(dev));
177 if (!rtc) { 176 if (!rtc) {
178 printk(warn_no_rtc); 177 printk(warn_no_rtc);
179 goto done; 178 goto done;
diff --git a/lib/Kconfig b/lib/Kconfig
index 75cdb77fa49d..3958dc4389f9 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -322,7 +322,7 @@ config CPUMASK_OFFSTACK
322 322
323config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS 323config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
324 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS 324 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
325 depends on EXPERIMENTAL && BROKEN 325 depends on BROKEN
326 326
327config CPU_RMAP 327config CPU_RMAP
328 bool 328 bool
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index a1714c897e3f..bb8d9b136cf9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -455,7 +455,7 @@ config HAVE_DEBUG_KMEMLEAK
455 455
456config DEBUG_KMEMLEAK 456config DEBUG_KMEMLEAK
457 bool "Kernel memory leak detector" 457 bool "Kernel memory leak detector"
458 depends on DEBUG_KERNEL && EXPERIMENTAL && HAVE_DEBUG_KMEMLEAK 458 depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
459 select DEBUG_FS 459 select DEBUG_FS
460 select STACKTRACE if STACKTRACE_SUPPORT 460 select STACKTRACE if STACKTRACE_SUPPORT
461 select KALLSYMS 461 select KALLSYMS
diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb
index 43cb93fa2651..77439eb8528d 100644
--- a/lib/Kconfig.kgdb
+++ b/lib/Kconfig.kgdb
@@ -5,7 +5,7 @@ config HAVE_ARCH_KGDB
5menuconfig KGDB 5menuconfig KGDB
6 bool "KGDB: kernel debugger" 6 bool "KGDB: kernel debugger"
7 depends on HAVE_ARCH_KGDB 7 depends on HAVE_ARCH_KGDB
8 depends on DEBUG_KERNEL && EXPERIMENTAL 8 depends on DEBUG_KERNEL
9 help 9 help
10 If you say Y here, it will be possible to remotely debug the 10 If you say Y here, it will be possible to remotely debug the
11 kernel using gdb. It is recommended but not required, that 11 kernel using gdb. It is recommended but not required, that
diff --git a/lib/devres.c b/lib/devres.c
index 80b9c76d436a..88ad75952a76 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -1,3 +1,4 @@
1#include <linux/err.h>
1#include <linux/pci.h> 2#include <linux/pci.h>
2#include <linux/io.h> 3#include <linux/io.h>
3#include <linux/gfp.h> 4#include <linux/gfp.h>
@@ -86,22 +87,24 @@ void devm_iounmap(struct device *dev, void __iomem *addr)
86EXPORT_SYMBOL(devm_iounmap); 87EXPORT_SYMBOL(devm_iounmap);
87 88
88/** 89/**
89 * devm_request_and_ioremap() - Check, request region, and ioremap resource 90 * devm_ioremap_resource() - check, request region, and ioremap resource
90 * @dev: Generic device to handle the resource for 91 * @dev: generic device to handle the resource for
91 * @res: resource to be handled 92 * @res: resource to be handled
92 * 93 *
93 * Takes all necessary steps to ioremap a mem resource. Uses managed device, so 94 * Checks that a resource is a valid memory region, requests the memory region
94 * everything is undone on driver detach. Checks arguments, so you can feed 95 * and ioremaps it either as cacheable or as non-cacheable memory depending on
95 * it the result from e.g. platform_get_resource() directly. Returns the 96 * the resource's flags. All operations are managed and will be undone on
96 * remapped pointer or NULL on error. Usage example: 97 * driver detach.
98 *
99 * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code
100 * on failure. Usage example:
97 * 101 *
98 * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 102 * res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
99 * base = devm_request_and_ioremap(&pdev->dev, res); 103 * base = devm_ioremap_resource(&pdev->dev, res);
100 * if (!base) 104 * if (IS_ERR(base))
101 * return -EADDRNOTAVAIL; 105 * return PTR_ERR(base);
102 */ 106 */
103void __iomem *devm_request_and_ioremap(struct device *dev, 107void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)
104 struct resource *res)
105{ 108{
106 resource_size_t size; 109 resource_size_t size;
107 const char *name; 110 const char *name;
@@ -111,7 +114,7 @@ void __iomem *devm_request_and_ioremap(struct device *dev,
111 114
112 if (!res || resource_type(res) != IORESOURCE_MEM) { 115 if (!res || resource_type(res) != IORESOURCE_MEM) {
113 dev_err(dev, "invalid resource\n"); 116 dev_err(dev, "invalid resource\n");
114 return NULL; 117 return ERR_PTR(-EINVAL);
115 } 118 }
116 119
117 size = resource_size(res); 120 size = resource_size(res);
@@ -119,7 +122,7 @@ void __iomem *devm_request_and_ioremap(struct device *dev,
119 122
120 if (!devm_request_mem_region(dev, res->start, size, name)) { 123 if (!devm_request_mem_region(dev, res->start, size, name)) {
121 dev_err(dev, "can't request region for resource %pR\n", res); 124 dev_err(dev, "can't request region for resource %pR\n", res);
122 return NULL; 125 return ERR_PTR(-EBUSY);
123 } 126 }
124 127
125 if (res->flags & IORESOURCE_CACHEABLE) 128 if (res->flags & IORESOURCE_CACHEABLE)
@@ -130,10 +133,39 @@ void __iomem *devm_request_and_ioremap(struct device *dev,
130 if (!dest_ptr) { 133 if (!dest_ptr) {
131 dev_err(dev, "ioremap failed for resource %pR\n", res); 134 dev_err(dev, "ioremap failed for resource %pR\n", res);
132 devm_release_mem_region(dev, res->start, size); 135 devm_release_mem_region(dev, res->start, size);
136 dest_ptr = ERR_PTR(-ENOMEM);
133 } 137 }
134 138
135 return dest_ptr; 139 return dest_ptr;
136} 140}
141EXPORT_SYMBOL(devm_ioremap_resource);
142
143/**
144 * devm_request_and_ioremap() - Check, request region, and ioremap resource
145 * @dev: Generic device to handle the resource for
146 * @res: resource to be handled
147 *
148 * Takes all necessary steps to ioremap a mem resource. Uses managed device, so
149 * everything is undone on driver detach. Checks arguments, so you can feed
150 * it the result from e.g. platform_get_resource() directly. Returns the
151 * remapped pointer or NULL on error. Usage example:
152 *
153 * res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
154 * base = devm_request_and_ioremap(&pdev->dev, res);
155 * if (!base)
156 * return -EADDRNOTAVAIL;
157 */
158void __iomem *devm_request_and_ioremap(struct device *device,
159 struct resource *res)
160{
161 void __iomem *dest_ptr;
162
163 dest_ptr = devm_ioremap_resource(device, res);
164 if (IS_ERR(dest_ptr))
165 return NULL;
166
167 return dest_ptr;
168}
137EXPORT_SYMBOL(devm_request_and_ioremap); 169EXPORT_SYMBOL(devm_request_and_ioremap);
138 170
139#ifdef CONFIG_HAS_IOPORT 171#ifdef CONFIG_HAS_IOPORT
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index 1db1fc660538..5276b99ca650 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -59,7 +59,7 @@ struct ddebug_iter {
59 59
60static DEFINE_MUTEX(ddebug_lock); 60static DEFINE_MUTEX(ddebug_lock);
61static LIST_HEAD(ddebug_tables); 61static LIST_HEAD(ddebug_tables);
62static int verbose = 0; 62static int verbose;
63module_param(verbose, int, 0644); 63module_param(verbose, int, 0644);
64 64
65/* Return the path relative to source root */ 65/* Return the path relative to source root */
@@ -100,24 +100,32 @@ static char *ddebug_describe_flags(struct _ddebug *dp, char *buf,
100 return buf; 100 return buf;
101} 101}
102 102
103#define vpr_info(fmt, ...) \ 103#define vpr_info(fmt, ...) \
104 if (verbose) do { pr_info(fmt, ##__VA_ARGS__); } while (0)
105
106#define vpr_info_dq(q, msg) \
107do { \ 104do { \
108 /* trim last char off format print */ \ 105 if (verbose) \
109 vpr_info("%s: func=\"%s\" file=\"%s\" " \ 106 pr_info(fmt, ##__VA_ARGS__); \
110 "module=\"%s\" format=\"%.*s\" " \
111 "lineno=%u-%u", \
112 msg, \
113 q->function ? q->function : "", \
114 q->filename ? q->filename : "", \
115 q->module ? q->module : "", \
116 (int)(q->format ? strlen(q->format) - 1 : 0), \
117 q->format ? q->format : "", \
118 q->first_lineno, q->last_lineno); \
119} while (0) 107} while (0)
120 108
109static void vpr_info_dq(const struct ddebug_query *query, const char *msg)
110{
111 /* trim any trailing newlines */
112 int fmtlen = 0;
113
114 if (query->format) {
115 fmtlen = strlen(query->format);
116 while (fmtlen && query->format[fmtlen - 1] == '\n')
117 fmtlen--;
118 }
119
120 vpr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" lineno=%u-%u\n",
121 msg,
122 query->function ? query->function : "",
123 query->filename ? query->filename : "",
124 query->module ? query->module : "",
125 fmtlen, query->format ? query->format : "",
126 query->first_lineno, query->last_lineno);
127}
128
121/* 129/*
122 * Search the tables for _ddebug's which match the given `query' and 130 * Search the tables for _ddebug's which match the given `query' and
123 * apply the `flags' and `mask' to them. Returns number of matching 131 * apply the `flags' and `mask' to them. Returns number of matching
@@ -141,7 +149,7 @@ static int ddebug_change(const struct ddebug_query *query,
141 if (query->module && strcmp(query->module, dt->mod_name)) 149 if (query->module && strcmp(query->module, dt->mod_name))
142 continue; 150 continue;
143 151
144 for (i = 0 ; i < dt->num_ddebugs ; i++) { 152 for (i = 0; i < dt->num_ddebugs; i++) {
145 struct _ddebug *dp = &dt->ddebugs[i]; 153 struct _ddebug *dp = &dt->ddebugs[i];
146 154
147 /* match against the source filename */ 155 /* match against the source filename */
@@ -176,10 +184,10 @@ static int ddebug_change(const struct ddebug_query *query,
176 continue; 184 continue;
177 dp->flags = newflags; 185 dp->flags = newflags;
178 vpr_info("changed %s:%d [%s]%s =%s\n", 186 vpr_info("changed %s:%d [%s]%s =%s\n",
179 trim_prefix(dp->filename), dp->lineno, 187 trim_prefix(dp->filename), dp->lineno,
180 dt->mod_name, dp->function, 188 dt->mod_name, dp->function,
181 ddebug_describe_flags(dp, flagbuf, 189 ddebug_describe_flags(dp, flagbuf,
182 sizeof(flagbuf))); 190 sizeof(flagbuf)));
183 } 191 }
184 } 192 }
185 mutex_unlock(&ddebug_lock); 193 mutex_unlock(&ddebug_lock);
@@ -213,19 +221,23 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
213 /* find `end' of word, whitespace separated or quoted */ 221 /* find `end' of word, whitespace separated or quoted */
214 if (*buf == '"' || *buf == '\'') { 222 if (*buf == '"' || *buf == '\'') {
215 int quote = *buf++; 223 int quote = *buf++;
216 for (end = buf ; *end && *end != quote ; end++) 224 for (end = buf; *end && *end != quote; end++)
217 ; 225 ;
218 if (!*end) 226 if (!*end) {
227 pr_err("unclosed quote: %s\n", buf);
219 return -EINVAL; /* unclosed quote */ 228 return -EINVAL; /* unclosed quote */
229 }
220 } else { 230 } else {
221 for (end = buf ; *end && !isspace(*end) ; end++) 231 for (end = buf; *end && !isspace(*end); end++)
222 ; 232 ;
223 BUG_ON(end == buf); 233 BUG_ON(end == buf);
224 } 234 }
225 235
226 /* `buf' is start of word, `end' is one past its end */ 236 /* `buf' is start of word, `end' is one past its end */
227 if (nwords == maxwords) 237 if (nwords == maxwords) {
238 pr_err("too many words, legal max <=%d\n", maxwords);
228 return -EINVAL; /* ran out of words[] before bytes */ 239 return -EINVAL; /* ran out of words[] before bytes */
240 }
229 if (*end) 241 if (*end)
230 *end++ = '\0'; /* terminate the word */ 242 *end++ = '\0'; /* terminate the word */
231 words[nwords++] = buf; 243 words[nwords++] = buf;
@@ -235,7 +247,7 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
235 if (verbose) { 247 if (verbose) {
236 int i; 248 int i;
237 pr_info("split into words:"); 249 pr_info("split into words:");
238 for (i = 0 ; i < nwords ; i++) 250 for (i = 0; i < nwords; i++)
239 pr_cont(" \"%s\"", words[i]); 251 pr_cont(" \"%s\"", words[i]);
240 pr_cont("\n"); 252 pr_cont("\n");
241 } 253 }
@@ -257,7 +269,11 @@ static inline int parse_lineno(const char *str, unsigned int *val)
257 return 0; 269 return 0;
258 } 270 }
259 *val = simple_strtoul(str, &end, 10); 271 *val = simple_strtoul(str, &end, 10);
260 return end == NULL || end == str || *end != '\0' ? -EINVAL : 0; 272 if (end == NULL || end == str || *end != '\0') {
273 pr_err("bad line-number: %s\n", str);
274 return -EINVAL;
275 }
276 return 0;
261} 277}
262 278
263/* 279/*
@@ -286,11 +302,11 @@ static char *unescape(char *str)
286 in += 2; 302 in += 2;
287 continue; 303 continue;
288 } else if (isodigit(in[1]) && 304 } else if (isodigit(in[1]) &&
289 isodigit(in[2]) && 305 isodigit(in[2]) &&
290 isodigit(in[3])) { 306 isodigit(in[3])) {
291 *out++ = ((in[1] - '0')<<6) | 307 *out++ = (((in[1] - '0') << 6) |
292 ((in[2] - '0')<<3) | 308 ((in[2] - '0') << 3) |
293 (in[3] - '0'); 309 (in[3] - '0'));
294 in += 4; 310 in += 4;
295 continue; 311 continue;
296 } 312 }
@@ -308,8 +324,8 @@ static int check_set(const char **dest, char *src, char *name)
308 324
309 if (*dest) { 325 if (*dest) {
310 rc = -EINVAL; 326 rc = -EINVAL;
311 pr_err("match-spec:%s val:%s overridden by %s", 327 pr_err("match-spec:%s val:%s overridden by %s\n",
312 name, *dest, src); 328 name, *dest, src);
313 } 329 }
314 *dest = src; 330 *dest = src;
315 return rc; 331 return rc;
@@ -337,40 +353,46 @@ static int ddebug_parse_query(char *words[], int nwords,
337 int rc; 353 int rc;
338 354
339 /* check we have an even number of words */ 355 /* check we have an even number of words */
340 if (nwords % 2 != 0) 356 if (nwords % 2 != 0) {
357 pr_err("expecting pairs of match-spec <value>\n");
341 return -EINVAL; 358 return -EINVAL;
359 }
342 memset(query, 0, sizeof(*query)); 360 memset(query, 0, sizeof(*query));
343 361
344 if (modname) 362 if (modname)
345 /* support $modname.dyndbg=<multiple queries> */ 363 /* support $modname.dyndbg=<multiple queries> */
346 query->module = modname; 364 query->module = modname;
347 365
348 for (i = 0 ; i < nwords ; i += 2) { 366 for (i = 0; i < nwords; i += 2) {
349 if (!strcmp(words[i], "func")) 367 if (!strcmp(words[i], "func")) {
350 rc = check_set(&query->function, words[i+1], "func"); 368 rc = check_set(&query->function, words[i+1], "func");
351 else if (!strcmp(words[i], "file")) 369 } else if (!strcmp(words[i], "file")) {
352 rc = check_set(&query->filename, words[i+1], "file"); 370 rc = check_set(&query->filename, words[i+1], "file");
353 else if (!strcmp(words[i], "module")) 371 } else if (!strcmp(words[i], "module")) {
354 rc = check_set(&query->module, words[i+1], "module"); 372 rc = check_set(&query->module, words[i+1], "module");
355 else if (!strcmp(words[i], "format")) 373 } else if (!strcmp(words[i], "format")) {
356 rc = check_set(&query->format, unescape(words[i+1]), 374 rc = check_set(&query->format, unescape(words[i+1]),
357 "format"); 375 "format");
358 else if (!strcmp(words[i], "line")) { 376 } else if (!strcmp(words[i], "line")) {
359 char *first = words[i+1]; 377 char *first = words[i+1];
360 char *last = strchr(first, '-'); 378 char *last = strchr(first, '-');
361 if (query->first_lineno || query->last_lineno) { 379 if (query->first_lineno || query->last_lineno) {
362 pr_err("match-spec:line given 2 times\n"); 380 pr_err("match-spec: line used 2x\n");
363 return -EINVAL; 381 return -EINVAL;
364 } 382 }
365 if (last) 383 if (last)
366 *last++ = '\0'; 384 *last++ = '\0';
367 if (parse_lineno(first, &query->first_lineno) < 0) 385 if (parse_lineno(first, &query->first_lineno) < 0) {
386 pr_err("line-number is <0\n");
368 return -EINVAL; 387 return -EINVAL;
388 }
369 if (last) { 389 if (last) {
370 /* range <first>-<last> */ 390 /* range <first>-<last> */
371 if (parse_lineno(last, &query->last_lineno) 391 if (parse_lineno(last, &query->last_lineno)
372 < query->first_lineno) { 392 < query->first_lineno) {
373 pr_err("last-line < 1st-line\n"); 393 pr_err("last-line:%d < 1st-line:%d\n",
394 query->last_lineno,
395 query->first_lineno);
374 return -EINVAL; 396 return -EINVAL;
375 } 397 }
376 } else { 398 } else {
@@ -406,19 +428,22 @@ static int ddebug_parse_flags(const char *str, unsigned int *flagsp,
406 op = *str++; 428 op = *str++;
407 break; 429 break;
408 default: 430 default:
431 pr_err("bad flag-op %c, at start of %s\n", *str, str);
409 return -EINVAL; 432 return -EINVAL;
410 } 433 }
411 vpr_info("op='%c'\n", op); 434 vpr_info("op='%c'\n", op);
412 435
413 for ( ; *str ; ++str) { 436 for (; *str ; ++str) {
414 for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) { 437 for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) {
415 if (*str == opt_array[i].opt_char) { 438 if (*str == opt_array[i].opt_char) {
416 flags |= opt_array[i].flag; 439 flags |= opt_array[i].flag;
417 break; 440 break;
418 } 441 }
419 } 442 }
420 if (i < 0) 443 if (i < 0) {
444 pr_err("unknown flag '%c' in \"%s\"\n", *str, str);
421 return -EINVAL; 445 return -EINVAL;
446 }
422 } 447 }
423 vpr_info("flags=0x%x\n", flags); 448 vpr_info("flags=0x%x\n", flags);
424 449
@@ -450,16 +475,22 @@ static int ddebug_exec_query(char *query_string, const char *modname)
450 char *words[MAXWORDS]; 475 char *words[MAXWORDS];
451 476
452 nwords = ddebug_tokenize(query_string, words, MAXWORDS); 477 nwords = ddebug_tokenize(query_string, words, MAXWORDS);
453 if (nwords <= 0) 478 if (nwords <= 0) {
479 pr_err("tokenize failed\n");
454 return -EINVAL; 480 return -EINVAL;
455 if (ddebug_parse_query(words, nwords-1, &query, modname)) 481 }
482 /* check flags 1st (last arg) so query is pairs of spec,val */
483 if (ddebug_parse_flags(words[nwords-1], &flags, &mask)) {
484 pr_err("flags parse failed\n");
456 return -EINVAL; 485 return -EINVAL;
457 if (ddebug_parse_flags(words[nwords-1], &flags, &mask)) 486 }
487 if (ddebug_parse_query(words, nwords-1, &query, modname)) {
488 pr_err("query parse failed\n");
458 return -EINVAL; 489 return -EINVAL;
459 490 }
460 /* actually go and implement the change */ 491 /* actually go and implement the change */
461 nfound = ddebug_change(&query, flags, mask); 492 nfound = ddebug_change(&query, flags, mask);
462 vpr_info_dq((&query), (nfound) ? "applied" : "no-match"); 493 vpr_info_dq(&query, nfound ? "applied" : "no-match");
463 494
464 return nfound; 495 return nfound;
465} 496}
@@ -488,8 +519,9 @@ static int ddebug_exec_queries(char *query, const char *modname)
488 if (rc < 0) { 519 if (rc < 0) {
489 errs++; 520 errs++;
490 exitcode = rc; 521 exitcode = rc;
491 } else 522 } else {
492 nfound += rc; 523 nfound += rc;
524 }
493 i++; 525 i++;
494 } 526 }
495 vpr_info("processed %d queries, with %d matches, %d errs\n", 527 vpr_info("processed %d queries, with %d matches, %d errs\n",
@@ -765,7 +797,7 @@ static void *ddebug_proc_next(struct seq_file *m, void *p, loff_t *pos)
765 struct _ddebug *dp; 797 struct _ddebug *dp;
766 798
767 vpr_info("called m=%p p=%p *pos=%lld\n", 799 vpr_info("called m=%p p=%p *pos=%lld\n",
768 m, p, (unsigned long long)*pos); 800 m, p, (unsigned long long)*pos);
769 801
770 if (p == SEQ_START_TOKEN) 802 if (p == SEQ_START_TOKEN)
771 dp = ddebug_iter_first(iter); 803 dp = ddebug_iter_first(iter);
@@ -791,14 +823,14 @@ static int ddebug_proc_show(struct seq_file *m, void *p)
791 823
792 if (p == SEQ_START_TOKEN) { 824 if (p == SEQ_START_TOKEN) {
793 seq_puts(m, 825 seq_puts(m,
794 "# filename:lineno [module]function flags format\n"); 826 "# filename:lineno [module]function flags format\n");
795 return 0; 827 return 0;
796 } 828 }
797 829
798 seq_printf(m, "%s:%u [%s]%s =%s \"", 830 seq_printf(m, "%s:%u [%s]%s =%s \"",
799 trim_prefix(dp->filename), dp->lineno, 831 trim_prefix(dp->filename), dp->lineno,
800 iter->table->mod_name, dp->function, 832 iter->table->mod_name, dp->function,
801 ddebug_describe_flags(dp, flagsbuf, sizeof(flagsbuf))); 833 ddebug_describe_flags(dp, flagsbuf, sizeof(flagsbuf)));
802 seq_escape(m, dp->format, "\t\r\n\""); 834 seq_escape(m, dp->format, "\t\r\n\"");
803 seq_puts(m, "\"\n"); 835 seq_puts(m, "\"\n");
804 836
@@ -845,7 +877,7 @@ static int ddebug_proc_open(struct inode *inode, struct file *file)
845 kfree(iter); 877 kfree(iter);
846 return err; 878 return err;
847 } 879 }
848 ((struct seq_file *) file->private_data)->private = iter; 880 ((struct seq_file *)file->private_data)->private = iter;
849 return 0; 881 return 0;
850} 882}
851 883
@@ -1002,8 +1034,7 @@ static int __init dynamic_debug_init(void)
1002 int verbose_bytes = 0; 1034 int verbose_bytes = 0;
1003 1035
1004 if (__start___verbose == __stop___verbose) { 1036 if (__start___verbose == __stop___verbose) {
1005 pr_warn("_ddebug table is empty in a " 1037 pr_warn("_ddebug table is empty in a CONFIG_DYNAMIC_DEBUG build\n");
1006 "CONFIG_DYNAMIC_DEBUG build");
1007 return 1; 1038 return 1;
1008 } 1039 }
1009 iter = __start___verbose; 1040 iter = __start___verbose;
@@ -1030,18 +1061,16 @@ static int __init dynamic_debug_init(void)
1030 goto out_err; 1061 goto out_err;
1031 1062
1032 ddebug_init_success = 1; 1063 ddebug_init_success = 1;
1033 vpr_info("%d modules, %d entries and %d bytes in ddebug tables," 1064 vpr_info("%d modules, %d entries and %d bytes in ddebug tables, %d bytes in (readonly) verbose section\n",
1034 " %d bytes in (readonly) verbose section\n", 1065 modct, entries, (int)(modct * sizeof(struct ddebug_table)),
1035 modct, entries, (int)( modct * sizeof(struct ddebug_table)), 1066 verbose_bytes + (int)(__stop___verbose - __start___verbose));
1036 verbose_bytes + (int)(__stop___verbose - __start___verbose));
1037 1067
1038 /* apply ddebug_query boot param, dont unload tables on err */ 1068 /* apply ddebug_query boot param, dont unload tables on err */
1039 if (ddebug_setup_string[0] != '\0') { 1069 if (ddebug_setup_string[0] != '\0') {
1040 pr_warn("ddebug_query param name is deprecated," 1070 pr_warn("ddebug_query param name is deprecated, change it to dyndbg\n");
1041 " change it to dyndbg\n");
1042 ret = ddebug_exec_queries(ddebug_setup_string, NULL); 1071 ret = ddebug_exec_queries(ddebug_setup_string, NULL);
1043 if (ret < 0) 1072 if (ret < 0)
1044 pr_warn("Invalid ddebug boot param %s", 1073 pr_warn("Invalid ddebug boot param %s\n",
1045 ddebug_setup_string); 1074 ddebug_setup_string);
1046 else 1075 else
1047 pr_info("%d changes by ddebug_query\n", ret); 1076 pr_info("%d changes by ddebug_query\n", ret);
diff --git a/lib/hexdump.c b/lib/hexdump.c
index 6540d657dca4..3f0494c9d57a 100644
--- a/lib/hexdump.c
+++ b/lib/hexdump.c
@@ -227,6 +227,7 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type,
227} 227}
228EXPORT_SYMBOL(print_hex_dump); 228EXPORT_SYMBOL(print_hex_dump);
229 229
230#if !defined(CONFIG_DYNAMIC_DEBUG)
230/** 231/**
231 * print_hex_dump_bytes - shorthand form of print_hex_dump() with default params 232 * print_hex_dump_bytes - shorthand form of print_hex_dump() with default params
232 * @prefix_str: string to prefix each line with; 233 * @prefix_str: string to prefix each line with;
@@ -246,4 +247,5 @@ void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
246 buf, len, true); 247 buf, len, true);
247} 248}
248EXPORT_SYMBOL(print_hex_dump_bytes); 249EXPORT_SYMBOL(print_hex_dump_bytes);
249#endif 250#endif /* !defined(CONFIG_DYNAMIC_DEBUG) */
251#endif /* defined(CONFIG_PRINTK) */
diff --git a/mm/Kconfig b/mm/Kconfig
index 278e3ab1f169..308fdcaeed77 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1,6 +1,6 @@
1config SELECT_MEMORY_MODEL 1config SELECT_MEMORY_MODEL
2 def_bool y 2 def_bool y
3 depends on EXPERIMENTAL || ARCH_SELECT_MEMORY_MODEL 3 depends on ARCH_SELECT_MEMORY_MODEL
4 4
5choice 5choice
6 prompt "Memory model" 6 prompt "Memory model"
diff --git a/net/9p/Kconfig b/net/9p/Kconfig
index d9ea09b11cf8..a75174a33723 100644
--- a/net/9p/Kconfig
+++ b/net/9p/Kconfig
@@ -23,7 +23,7 @@ config NET_9P_VIRTIO
23 guest partitions and a host partition. 23 guest partitions and a host partition.
24 24
25config NET_9P_RDMA 25config NET_9P_RDMA
26 depends on INET && INFINIBAND && INFINIBAND_ADDR_TRANS && EXPERIMENTAL 26 depends on INET && INFINIBAND && INFINIBAND_ADDR_TRANS
27 tristate "9P RDMA Transport (Experimental)" 27 tristate "9P RDMA Transport (Experimental)"
28 help 28 help
29 This builds support for an RDMA transport. 29 This builds support for an RDMA transport.
diff --git a/net/Kconfig b/net/Kconfig
index 5a1888bb036d..6f676ab885be 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -90,7 +90,6 @@ config NETWORK_SECMARK
90 90
91config NETWORK_PHY_TIMESTAMPING 91config NETWORK_PHY_TIMESTAMPING
92 bool "Timestamping in PHY devices" 92 bool "Timestamping in PHY devices"
93 depends on EXPERIMENTAL
94 help 93 help
95 This allows timestamping of network packets by PHYs with 94 This allows timestamping of network packets by PHYs with
96 hardware timestamping capabilities. This option adds some 95 hardware timestamping capabilities. This option adds some
@@ -278,7 +277,7 @@ config NET_PKTGEN
278 277
279config NET_TCPPROBE 278config NET_TCPPROBE
280 tristate "TCP connection probing" 279 tristate "TCP connection probing"
281 depends on INET && EXPERIMENTAL && PROC_FS && KPROBES 280 depends on INET && PROC_FS && KPROBES
282 ---help--- 281 ---help---
283 This module allows for capturing the changes to TCP connection 282 This module allows for capturing the changes to TCP connection
284 state in response to incoming packets. It is used for debugging 283 state in response to incoming packets. It is used for debugging
@@ -295,7 +294,7 @@ config NET_TCPPROBE
295 294
296config NET_DROP_MONITOR 295config NET_DROP_MONITOR
297 tristate "Network packet drop alerting service" 296 tristate "Network packet drop alerting service"
298 depends on INET && EXPERIMENTAL && TRACEPOINTS 297 depends on INET && TRACEPOINTS
299 ---help--- 298 ---help---
300 This feature provides an alerting service to userspace in the 299 This feature provides an alerting service to userspace in the
301 event that packets are discarded in the network stack. Alerts 300 event that packets are discarded in the network stack. Alerts
diff --git a/net/ceph/Kconfig b/net/ceph/Kconfig
index cc04dd667a10..e50cc69ae8ca 100644
--- a/net/ceph/Kconfig
+++ b/net/ceph/Kconfig
@@ -1,6 +1,6 @@
1config CEPH_LIB 1config CEPH_LIB
2 tristate "Ceph core library (EXPERIMENTAL)" 2 tristate "Ceph core library"
3 depends on INET && EXPERIMENTAL 3 depends on INET
4 select LIBCRC32C 4 select LIBCRC32C
5 select CRYPTO_AES 5 select CRYPTO_AES
6 select CRYPTO 6 select CRYPTO
diff --git a/net/dccp/Kconfig b/net/dccp/Kconfig
index b75968a04017..8c0ef71bed2f 100644
--- a/net/dccp/Kconfig
+++ b/net/dccp/Kconfig
@@ -1,6 +1,6 @@
1menuconfig IP_DCCP 1menuconfig IP_DCCP
2 tristate "The DCCP Protocol (EXPERIMENTAL)" 2 tristate "The DCCP Protocol"
3 depends on INET && EXPERIMENTAL 3 depends on INET
4 ---help--- 4 ---help---
5 Datagram Congestion Control Protocol (RFC 4340) 5 Datagram Congestion Control Protocol (RFC 4340)
6 6
diff --git a/net/dccp/ccids/Kconfig b/net/dccp/ccids/Kconfig
index 0581143cb800..8ba3fc9d6d16 100644
--- a/net/dccp/ccids/Kconfig
+++ b/net/dccp/ccids/Kconfig
@@ -1,5 +1,4 @@
1menu "DCCP CCIDs Configuration (EXPERIMENTAL)" 1menu "DCCP CCIDs Configuration"
2 depends on EXPERIMENTAL
3 2
4config IP_DCCP_CCID2_DEBUG 3config IP_DCCP_CCID2_DEBUG
5 bool "CCID-2 debugging messages" 4 bool "CCID-2 debugging messages"
@@ -12,7 +11,7 @@ config IP_DCCP_CCID2_DEBUG
12 If in doubt, say N. 11 If in doubt, say N.
13 12
14config IP_DCCP_CCID3 13config IP_DCCP_CCID3
15 bool "CCID-3 (TCP-Friendly) (EXPERIMENTAL)" 14 bool "CCID-3 (TCP-Friendly)"
16 def_bool y if (IP_DCCP = y || IP_DCCP = m) 15 def_bool y if (IP_DCCP = y || IP_DCCP = m)
17 ---help--- 16 ---help---
18 CCID-3 denotes TCP-Friendly Rate Control (TFRC), an equation-based 17 CCID-3 denotes TCP-Friendly Rate Control (TFRC), an equation-based
diff --git a/net/decnet/Kconfig b/net/decnet/Kconfig
index 7914fd619c5c..f3393e154f0f 100644
--- a/net/decnet/Kconfig
+++ b/net/decnet/Kconfig
@@ -25,8 +25,8 @@ config DECNET
25 The module is called decnet. 25 The module is called decnet.
26 26
27config DECNET_ROUTER 27config DECNET_ROUTER
28 bool "DECnet: router support (EXPERIMENTAL)" 28 bool "DECnet: router support"
29 depends on DECNET && EXPERIMENTAL 29 depends on DECNET
30 select FIB_RULES 30 select FIB_RULES
31 ---help--- 31 ---help---
32 Add support for turning your DECnet Endnode into a level 1 or 2 32 Add support for turning your DECnet Endnode into a level 1 or 2
diff --git a/net/decnet/netfilter/Kconfig b/net/decnet/netfilter/Kconfig
index 2f81de5e752f..8d7c109d5109 100644
--- a/net/decnet/netfilter/Kconfig
+++ b/net/decnet/netfilter/Kconfig
@@ -3,7 +3,7 @@
3# 3#
4 4
5menu "DECnet: Netfilter Configuration" 5menu "DECnet: Netfilter Configuration"
6 depends on DECNET && NETFILTER && EXPERIMENTAL 6 depends on DECNET && NETFILTER
7 depends on NETFILTER_ADVANCED 7 depends on NETFILTER_ADVANCED
8 8
9config DECNET_NF_GRABULATOR 9config DECNET_NF_GRABULATOR
diff --git a/net/ieee802154/Kconfig b/net/ieee802154/Kconfig
index 7dee65052925..b2e06df0076c 100644
--- a/net/ieee802154/Kconfig
+++ b/net/ieee802154/Kconfig
@@ -1,6 +1,5 @@
1config IEEE802154 1config IEEE802154
2 tristate "IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support (EXPERIMENTAL)" 2 tristate "IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support"
3 depends on EXPERIMENTAL
4 ---help--- 3 ---help---
5 IEEE Std 802.15.4 defines a low data rate, low power and low 4 IEEE Std 802.15.4 defines a low data rate, low power and low
6 complexity short range wireless personal area networks. It was 5 complexity short range wireless personal area networks. It was
diff --git a/net/ieee802154/wpan-class.c b/net/ieee802154/wpan-class.c
index 1627ef2e8522..13571eae6bae 100644
--- a/net/ieee802154/wpan-class.c
+++ b/net/ieee802154/wpan-class.c
@@ -91,7 +91,7 @@ static struct class wpan_phy_class = {
91static DEFINE_MUTEX(wpan_phy_mutex); 91static DEFINE_MUTEX(wpan_phy_mutex);
92static int wpan_phy_idx; 92static int wpan_phy_idx;
93 93
94static int wpan_phy_match(struct device *dev, void *data) 94static int wpan_phy_match(struct device *dev, const void *data)
95{ 95{
96 return !strcmp(dev_name(dev), (const char *)data); 96 return !strcmp(dev_name(dev), (const char *)data);
97} 97}
@@ -103,8 +103,7 @@ struct wpan_phy *wpan_phy_find(const char *str)
103 if (WARN_ON(!str)) 103 if (WARN_ON(!str))
104 return NULL; 104 return NULL;
105 105
106 dev = class_find_device(&wpan_phy_class, NULL, 106 dev = class_find_device(&wpan_phy_class, NULL, str, wpan_phy_match);
107 (void *)str, wpan_phy_match);
108 if (!dev) 107 if (!dev)
109 return NULL; 108 return NULL;
110 109
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 5a19aeb86094..7944df768454 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -488,7 +488,6 @@ config TCP_CONG_HTCP
488 488
489config TCP_CONG_HSTCP 489config TCP_CONG_HSTCP
490 tristate "High Speed TCP" 490 tristate "High Speed TCP"
491 depends on EXPERIMENTAL
492 default n 491 default n
493 ---help--- 492 ---help---
494 Sally Floyd's High Speed TCP (RFC 3649) congestion control. 493 Sally Floyd's High Speed TCP (RFC 3649) congestion control.
@@ -499,7 +498,6 @@ config TCP_CONG_HSTCP
499 498
500config TCP_CONG_HYBLA 499config TCP_CONG_HYBLA
501 tristate "TCP-Hybla congestion control algorithm" 500 tristate "TCP-Hybla congestion control algorithm"
502 depends on EXPERIMENTAL
503 default n 501 default n
504 ---help--- 502 ---help---
505 TCP-Hybla is a sender-side only change that eliminates penalization of 503 TCP-Hybla is a sender-side only change that eliminates penalization of
@@ -509,7 +507,6 @@ config TCP_CONG_HYBLA
509 507
510config TCP_CONG_VEGAS 508config TCP_CONG_VEGAS
511 tristate "TCP Vegas" 509 tristate "TCP Vegas"
512 depends on EXPERIMENTAL
513 default n 510 default n
514 ---help--- 511 ---help---
515 TCP Vegas is a sender-side only change to TCP that anticipates 512 TCP Vegas is a sender-side only change to TCP that anticipates
@@ -520,7 +517,6 @@ config TCP_CONG_VEGAS
520 517
521config TCP_CONG_SCALABLE 518config TCP_CONG_SCALABLE
522 tristate "Scalable TCP" 519 tristate "Scalable TCP"
523 depends on EXPERIMENTAL
524 default n 520 default n
525 ---help--- 521 ---help---
526 Scalable TCP is a sender-side only change to TCP which uses a 522 Scalable TCP is a sender-side only change to TCP which uses a
@@ -530,7 +526,6 @@ config TCP_CONG_SCALABLE
530 526
531config TCP_CONG_LP 527config TCP_CONG_LP
532 tristate "TCP Low Priority" 528 tristate "TCP Low Priority"
533 depends on EXPERIMENTAL
534 default n 529 default n
535 ---help--- 530 ---help---
536 TCP Low Priority (TCP-LP), a distributed algorithm whose goal is 531 TCP Low Priority (TCP-LP), a distributed algorithm whose goal is
@@ -540,7 +535,6 @@ config TCP_CONG_LP
540 535
541config TCP_CONG_VENO 536config TCP_CONG_VENO
542 tristate "TCP Veno" 537 tristate "TCP Veno"
543 depends on EXPERIMENTAL
544 default n 538 default n
545 ---help--- 539 ---help---
546 TCP Veno is a sender-side only enhancement of TCP to obtain better 540 TCP Veno is a sender-side only enhancement of TCP to obtain better
@@ -552,7 +546,6 @@ config TCP_CONG_VENO
552 546
553config TCP_CONG_YEAH 547config TCP_CONG_YEAH
554 tristate "YeAH TCP" 548 tristate "YeAH TCP"
555 depends on EXPERIMENTAL
556 select TCP_CONG_VEGAS 549 select TCP_CONG_VEGAS
557 default n 550 default n
558 ---help--- 551 ---help---
@@ -567,7 +560,6 @@ config TCP_CONG_YEAH
567 560
568config TCP_CONG_ILLINOIS 561config TCP_CONG_ILLINOIS
569 tristate "TCP Illinois" 562 tristate "TCP Illinois"
570 depends on EXPERIMENTAL
571 default n 563 default n
572 ---help--- 564 ---help---
573 TCP-Illinois is a sender-side modification of TCP Reno for 565 TCP-Illinois is a sender-side modification of TCP Reno for
@@ -631,8 +623,7 @@ config DEFAULT_TCP_CONG
631 default "cubic" 623 default "cubic"
632 624
633config TCP_MD5SIG 625config TCP_MD5SIG
634 bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)" 626 bool "TCP: MD5 Signature Option support (RFC2385)"
635 depends on EXPERIMENTAL
636 select CRYPTO 627 select CRYPTO
637 select CRYPTO_MD5 628 select CRYPTO_MD5
638 ---help--- 629 ---help---
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
index d8d6f2a5bf12..ce2d43e1f09f 100644
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -241,8 +241,8 @@ config IP_NF_MANGLE
241 To compile it as a module, choose M here. If unsure, say N. 241 To compile it as a module, choose M here. If unsure, say N.
242 242
243config IP_NF_TARGET_CLUSTERIP 243config IP_NF_TARGET_CLUSTERIP
244 tristate "CLUSTERIP target support (EXPERIMENTAL)" 244 tristate "CLUSTERIP target support"
245 depends on IP_NF_MANGLE && EXPERIMENTAL 245 depends on IP_NF_MANGLE
246 depends on NF_CONNTRACK_IPV4 246 depends on NF_CONNTRACK_IPV4
247 depends on NETFILTER_ADVANCED 247 depends on NETFILTER_ADVANCED
248 select NF_CONNTRACK_MARK 248 select NF_CONNTRACK_MARK
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
index 4f7fe7270e37..3f2eb57cc51d 100644
--- a/net/ipv6/Kconfig
+++ b/net/ipv6/Kconfig
@@ -50,16 +50,15 @@ config IPV6_ROUTER_PREF
50 If unsure, say N. 50 If unsure, say N.
51 51
52config IPV6_ROUTE_INFO 52config IPV6_ROUTE_INFO
53 bool "IPv6: Route Information (RFC 4191) support (EXPERIMENTAL)" 53 bool "IPv6: Route Information (RFC 4191) support"
54 depends on IPV6_ROUTER_PREF && EXPERIMENTAL 54 depends on IPV6_ROUTER_PREF
55 ---help--- 55 ---help---
56 This is experimental support of Route Information. 56 This is experimental support of Route Information.
57 57
58 If unsure, say N. 58 If unsure, say N.
59 59
60config IPV6_OPTIMISTIC_DAD 60config IPV6_OPTIMISTIC_DAD
61 bool "IPv6: Enable RFC 4429 Optimistic DAD (EXPERIMENTAL)" 61 bool "IPv6: Enable RFC 4429 Optimistic DAD"
62 depends on EXPERIMENTAL
63 ---help--- 62 ---help---
64 This is experimental support for optimistic Duplicate 63 This is experimental support for optimistic Duplicate
65 Address Detection. It allows for autoconfigured addresses 64 Address Detection. It allows for autoconfigured addresses
@@ -105,8 +104,7 @@ config INET6_IPCOMP
105 If unsure, say Y. 104 If unsure, say Y.
106 105
107config IPV6_MIP6 106config IPV6_MIP6
108 tristate "IPv6: Mobility (EXPERIMENTAL)" 107 tristate "IPv6: Mobility"
109 depends on EXPERIMENTAL
110 select XFRM 108 select XFRM
111 ---help--- 109 ---help---
112 Support for IPv6 Mobility described in RFC 3775. 110 Support for IPv6 Mobility described in RFC 3775.
@@ -150,8 +148,7 @@ config INET6_XFRM_MODE_BEET
150 If unsure, say Y. 148 If unsure, say Y.
151 149
152config INET6_XFRM_MODE_ROUTEOPTIMIZATION 150config INET6_XFRM_MODE_ROUTEOPTIMIZATION
153 tristate "IPv6: MIPv6 route optimization mode (EXPERIMENTAL)" 151 tristate "IPv6: MIPv6 route optimization mode"
154 depends on EXPERIMENTAL
155 select XFRM 152 select XFRM
156 ---help--- 153 ---help---
157 Support for MIPv6 route optimization mode. 154 Support for MIPv6 route optimization mode.
@@ -171,8 +168,8 @@ config IPV6_SIT
171 Saying M here will produce a module called sit. If unsure, say Y. 168 Saying M here will produce a module called sit. If unsure, say Y.
172 169
173config IPV6_SIT_6RD 170config IPV6_SIT_6RD
174 bool "IPv6: IPv6 Rapid Deployment (6RD) (EXPERIMENTAL)" 171 bool "IPv6: IPv6 Rapid Deployment (6RD)"
175 depends on IPV6_SIT && EXPERIMENTAL 172 depends on IPV6_SIT
176 default n 173 default n
177 ---help--- 174 ---help---
178 IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon 175 IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon
@@ -219,7 +216,6 @@ config IPV6_GRE
219 216
220config IPV6_MULTIPLE_TABLES 217config IPV6_MULTIPLE_TABLES
221 bool "IPv6: Multiple Routing Tables" 218 bool "IPv6: Multiple Routing Tables"
222 depends on EXPERIMENTAL
223 select FIB_RULES 219 select FIB_RULES
224 ---help--- 220 ---help---
225 Support multiple routing tables. 221 Support multiple routing tables.
@@ -239,8 +235,8 @@ config IPV6_SUBTREES
239 If unsure, say N. 235 If unsure, say N.
240 236
241config IPV6_MROUTE 237config IPV6_MROUTE
242 bool "IPv6: multicast routing (EXPERIMENTAL)" 238 bool "IPv6: multicast routing"
243 depends on IPV6 && EXPERIMENTAL 239 depends on IPV6
244 ---help--- 240 ---help---
245 Experimental support for IPv6 multicast forwarding. 241 Experimental support for IPv6 multicast forwarding.
246 If unsure, say N. 242 If unsure, say N.
@@ -260,7 +256,7 @@ config IPV6_MROUTE_MULTIPLE_TABLES
260 If unsure, say N. 256 If unsure, say N.
261 257
262config IPV6_PIMSM_V2 258config IPV6_PIMSM_V2
263 bool "IPv6: PIM-SM version 2 support (EXPERIMENTAL)" 259 bool "IPv6: PIM-SM version 2 support"
264 depends on IPV6_MROUTE 260 depends on IPV6_MROUTE
265 ---help--- 261 ---help---
266 Support for IPv6 PIM multicast routing protocol PIM-SMv2. 262 Support for IPv6 PIM multicast routing protocol PIM-SMv2.
diff --git a/net/l2tp/Kconfig b/net/l2tp/Kconfig
index 147a8fd47a17..adb9843dd7cf 100644
--- a/net/l2tp/Kconfig
+++ b/net/l2tp/Kconfig
@@ -46,8 +46,8 @@ config L2TP_DEBUGFS
46 will be called l2tp_debugfs. 46 will be called l2tp_debugfs.
47 47
48config L2TP_V3 48config L2TP_V3
49 bool "L2TPv3 support (EXPERIMENTAL)" 49 bool "L2TPv3 support"
50 depends on EXPERIMENTAL && L2TP 50 depends on L2TP
51 help 51 help
52 Layer Two Tunneling Protocol Version 3 52 Layer Two Tunneling Protocol Version 3
53 53
diff --git a/net/lapb/Kconfig b/net/lapb/Kconfig
index f0b5efb31a00..6481839b76c9 100644
--- a/net/lapb/Kconfig
+++ b/net/lapb/Kconfig
@@ -3,8 +3,7 @@
3# 3#
4 4
5config LAPB 5config LAPB
6 tristate "LAPB Data Link Driver (EXPERIMENTAL)" 6 tristate "LAPB Data Link Driver"
7 depends on EXPERIMENTAL
8 ---help--- 7 ---help---
9 Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. 8 Link Access Procedure, Balanced (LAPB) is the data link layer (i.e.
10 the lower) part of the X.25 protocol. It offers a reliable 9 the lower) part of the X.25 protocol. It offers a reliable
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 0ecf947ad378..62535fe9f570 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -81,7 +81,7 @@ comment "Some wireless drivers require a rate control algorithm"
81 81
82config MAC80211_MESH 82config MAC80211_MESH
83 bool "Enable mac80211 mesh networking (pre-802.11s) support" 83 bool "Enable mac80211 mesh networking (pre-802.11s) support"
84 depends on MAC80211 && EXPERIMENTAL 84 depends on MAC80211
85 ---help--- 85 ---help---
86 This options enables support of Draft 802.11s mesh networking. 86 This options enables support of Draft 802.11s mesh networking.
87 The implementation is based on Draft 2.08 of the Mesh Networking 87 The implementation is based on Draft 2.08 of the Mesh Networking
diff --git a/net/mac802154/Kconfig b/net/mac802154/Kconfig
index a967ddaa4e2f..b33dd76d4307 100644
--- a/net/mac802154/Kconfig
+++ b/net/mac802154/Kconfig
@@ -1,6 +1,6 @@
1config MAC802154 1config MAC802154
2 tristate "Generic IEEE 802.15.4 Soft Networking Stack (mac802154)" 2 tristate "Generic IEEE 802.15.4 Soft Networking Stack (mac802154)"
3 depends on IEEE802154 && EXPERIMENTAL 3 depends on IEEE802154
4 select CRC_CCITT 4 select CRC_CCITT
5 ---help--- 5 ---help---
6 This option enables the hardware independent IEEE 802.15.4 6 This option enables the hardware independent IEEE 802.15.4
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index d4dd702574e4..56d22cae5906 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -131,8 +131,7 @@ config NF_CONNTRACK_LABELS
131 to connection tracking entries. It selected by the connlabel match. 131 to connection tracking entries. It selected by the connlabel match.
132 132
133config NF_CT_PROTO_DCCP 133config NF_CT_PROTO_DCCP
134 tristate 'DCCP protocol connection tracking support (EXPERIMENTAL)' 134 tristate 'DCCP protocol connection tracking support'
135 depends on EXPERIMENTAL
136 depends on NETFILTER_ADVANCED 135 depends on NETFILTER_ADVANCED
137 default IP_DCCP 136 default IP_DCCP
138 help 137 help
@@ -145,8 +144,7 @@ config NF_CT_PROTO_GRE
145 tristate 144 tristate
146 145
147config NF_CT_PROTO_SCTP 146config NF_CT_PROTO_SCTP
148 tristate 'SCTP protocol connection tracking support (EXPERIMENTAL)' 147 tristate 'SCTP protocol connection tracking support'
149 depends on EXPERIMENTAL
150 depends on NETFILTER_ADVANCED 148 depends on NETFILTER_ADVANCED
151 default IP_SCTP 149 default IP_SCTP
152 help 150 help
@@ -287,8 +285,7 @@ config NF_CONNTRACK_PPTP
287 To compile it as a module, choose M here. If unsure, say N. 285 To compile it as a module, choose M here. If unsure, say N.
288 286
289config NF_CONNTRACK_SANE 287config NF_CONNTRACK_SANE
290 tristate "SANE protocol support (EXPERIMENTAL)" 288 tristate "SANE protocol support"
291 depends on EXPERIMENTAL
292 depends on NETFILTER_ADVANCED 289 depends on NETFILTER_ADVANCED
293 help 290 help
294 SANE is a protocol for remote access to scanners as implemented 291 SANE is a protocol for remote access to scanners as implemented
@@ -415,8 +412,7 @@ endif # NF_CONNTRACK
415 412
416# transparent proxy support 413# transparent proxy support
417config NETFILTER_TPROXY 414config NETFILTER_TPROXY
418 tristate "Transparent proxying support (EXPERIMENTAL)" 415 tristate "Transparent proxying support"
419 depends on EXPERIMENTAL
420 depends on IP_NF_MANGLE 416 depends on IP_NF_MANGLE
421 depends on NETFILTER_ADVANCED 417 depends on NETFILTER_ADVANCED
422 help 418 help
@@ -724,8 +720,7 @@ config NETFILTER_XT_TARGET_TEE
724 this clone be rerouted to another nexthop. 720 this clone be rerouted to another nexthop.
725 721
726config NETFILTER_XT_TARGET_TPROXY 722config NETFILTER_XT_TARGET_TPROXY
727 tristate '"TPROXY" target support (EXPERIMENTAL)' 723 tristate '"TPROXY" target support'
728 depends on EXPERIMENTAL
729 depends on NETFILTER_TPROXY 724 depends on NETFILTER_TPROXY
730 depends on NETFILTER_XTABLES 725 depends on NETFILTER_XTABLES
731 depends on NETFILTER_ADVANCED 726 depends on NETFILTER_ADVANCED
@@ -789,8 +784,7 @@ config NETFILTER_XT_TARGET_TCPMSS
789 To compile it as a module, choose M here. If unsure, say N. 784 To compile it as a module, choose M here. If unsure, say N.
790 785
791config NETFILTER_XT_TARGET_TCPOPTSTRIP 786config NETFILTER_XT_TARGET_TCPOPTSTRIP
792 tristate '"TCPOPTSTRIP" target support (EXPERIMENTAL)' 787 tristate '"TCPOPTSTRIP" target support'
793 depends on EXPERIMENTAL
794 depends on IP_NF_MANGLE || IP6_NF_MANGLE 788 depends on IP_NF_MANGLE || IP6_NF_MANGLE
795 depends on NETFILTER_ADVANCED 789 depends on NETFILTER_ADVANCED
796 help 790 help
@@ -1173,8 +1167,7 @@ config NETFILTER_XT_MATCH_RECENT
1173 Official Website: <http://snowman.net/projects/ipt_recent/> 1167 Official Website: <http://snowman.net/projects/ipt_recent/>
1174 1168
1175config NETFILTER_XT_MATCH_SCTP 1169config NETFILTER_XT_MATCH_SCTP
1176 tristate '"sctp" protocol match support (EXPERIMENTAL)' 1170 tristate '"sctp" protocol match support'
1177 depends on EXPERIMENTAL
1178 depends on NETFILTER_ADVANCED 1171 depends on NETFILTER_ADVANCED
1179 default IP_SCTP 1172 default IP_SCTP
1180 help 1173 help
@@ -1186,8 +1179,7 @@ config NETFILTER_XT_MATCH_SCTP
1186 <file:Documentation/kbuild/modules.txt>. If unsure, say `N'. 1179 <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1187 1180
1188config NETFILTER_XT_MATCH_SOCKET 1181config NETFILTER_XT_MATCH_SOCKET
1189 tristate '"socket" match support (EXPERIMENTAL)' 1182 tristate '"socket" match support'
1190 depends on EXPERIMENTAL
1191 depends on NETFILTER_TPROXY 1183 depends on NETFILTER_TPROXY
1192 depends on NETFILTER_XTABLES 1184 depends on NETFILTER_XTABLES
1193 depends on NETFILTER_ADVANCED 1185 depends on NETFILTER_ADVANCED
diff --git a/net/nfc/core.c b/net/nfc/core.c
index 25522e56d350..6ceee8e181ca 100644
--- a/net/nfc/core.c
+++ b/net/nfc/core.c
@@ -730,10 +730,10 @@ struct class nfc_class = {
730}; 730};
731EXPORT_SYMBOL(nfc_class); 731EXPORT_SYMBOL(nfc_class);
732 732
733static int match_idx(struct device *d, void *data) 733static int match_idx(struct device *d, const void *data)
734{ 734{
735 struct nfc_dev *dev = to_nfc_dev(d); 735 struct nfc_dev *dev = to_nfc_dev(d);
736 unsigned int *idx = data; 736 const unsigned int *idx = data;
737 737
738 return dev->idx == *idx; 738 return dev->idx == *idx;
739} 739}
diff --git a/net/rds/Kconfig b/net/rds/Kconfig
index ec753b3ae72a..f2c670ba7b9b 100644
--- a/net/rds/Kconfig
+++ b/net/rds/Kconfig
@@ -1,7 +1,7 @@
1 1
2config RDS 2config RDS
3 tristate "The RDS Protocol (EXPERIMENTAL)" 3 tristate "The RDS Protocol"
4 depends on INET && EXPERIMENTAL 4 depends on INET
5 ---help--- 5 ---help---
6 The RDS (Reliable Datagram Sockets) protocol provides reliable, 6 The RDS (Reliable Datagram Sockets) protocol provides reliable,
7 sequenced delivery of datagrams over Infiniband, iWARP, 7 sequenced delivery of datagrams over Infiniband, iWARP,
diff --git a/net/rxrpc/Kconfig b/net/rxrpc/Kconfig
index 0d3103c4f11c..23dcef12b986 100644
--- a/net/rxrpc/Kconfig
+++ b/net/rxrpc/Kconfig
@@ -4,7 +4,7 @@
4 4
5config AF_RXRPC 5config AF_RXRPC
6 tristate "RxRPC session sockets" 6 tristate "RxRPC session sockets"
7 depends on INET && EXPERIMENTAL 7 depends on INET
8 select CRYPTO 8 select CRYPTO
9 select KEYS 9 select KEYS
10 help 10 help
diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
index 03d03e37a7d5..516fe2caac2c 100644
--- a/net/sunrpc/Kconfig
+++ b/net/sunrpc/Kconfig
@@ -10,7 +10,7 @@ config SUNRPC_BACKCHANNEL
10 10
11config SUNRPC_XPRT_RDMA 11config SUNRPC_XPRT_RDMA
12 tristate 12 tristate
13 depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS && EXPERIMENTAL 13 depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS
14 default SUNRPC && INFINIBAND 14 default SUNRPC && INFINIBAND
15 help 15 help
16 This option allows the NFS client and server to support 16 This option allows the NFS client and server to support
diff --git a/net/tipc/Kconfig b/net/tipc/Kconfig
index bc41bd31eadc..4f99600a5fed 100644
--- a/net/tipc/Kconfig
+++ b/net/tipc/Kconfig
@@ -3,8 +3,8 @@
3# 3#
4 4
5menuconfig TIPC 5menuconfig TIPC
6 tristate "The TIPC Protocol (EXPERIMENTAL)" 6 tristate "The TIPC Protocol"
7 depends on INET && EXPERIMENTAL 7 depends on INET
8 ---help--- 8 ---help---
9 The Transparent Inter Process Communication (TIPC) protocol is 9 The Transparent Inter Process Communication (TIPC) protocol is
10 specially designed for intra cluster communication. This protocol 10 specially designed for intra cluster communication. This protocol
diff --git a/net/x25/Kconfig b/net/x25/Kconfig
index e6759c9660bb..c959312c45e3 100644
--- a/net/x25/Kconfig
+++ b/net/x25/Kconfig
@@ -3,8 +3,7 @@
3# 3#
4 4
5config X25 5config X25
6 tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" 6 tristate "CCITT X.25 Packet Layer"
7 depends on EXPERIMENTAL
8 ---help--- 7 ---help---
9 X.25 is a set of standardized network protocols, similar in scope to 8 X.25 is a set of standardized network protocols, similar in scope to
10 frame relay; the one physical line from your box to the X.25 network 9 frame relay; the one physical line from your box to the X.25 network
diff --git a/net/xfrm/Kconfig b/net/xfrm/Kconfig
index ce90b8d92365..bda1a13628a8 100644
--- a/net/xfrm/Kconfig
+++ b/net/xfrm/Kconfig
@@ -21,8 +21,8 @@ config XFRM_USER
21 If unsure, say Y. 21 If unsure, say Y.
22 22
23config XFRM_SUB_POLICY 23config XFRM_SUB_POLICY
24 bool "Transformation sub policy support (EXPERIMENTAL)" 24 bool "Transformation sub policy support"
25 depends on XFRM && EXPERIMENTAL 25 depends on XFRM
26 ---help--- 26 ---help---
27 Support sub policy for developers. By using sub policy with main 27 Support sub policy for developers. By using sub policy with main
28 one, two policies can be applied to the same packet at once. 28 one, two policies can be applied to the same packet at once.
@@ -31,8 +31,8 @@ config XFRM_SUB_POLICY
31 If unsure, say N. 31 If unsure, say N.
32 32
33config XFRM_MIGRATE 33config XFRM_MIGRATE
34 bool "Transformation migrate database (EXPERIMENTAL)" 34 bool "Transformation migrate database"
35 depends on XFRM && EXPERIMENTAL 35 depends on XFRM
36 ---help--- 36 ---help---
37 A feature to update locator(s) of a given IPsec security 37 A feature to update locator(s) of a given IPsec security
38 association dynamically. This feature is required, for 38 association dynamically. This feature is required, for
@@ -42,8 +42,8 @@ config XFRM_MIGRATE
42 If unsure, say N. 42 If unsure, say N.
43 43
44config XFRM_STATISTICS 44config XFRM_STATISTICS
45 bool "Transformation statistics (EXPERIMENTAL)" 45 bool "Transformation statistics"
46 depends on INET && XFRM && PROC_FS && EXPERIMENTAL 46 depends on INET && XFRM && PROC_FS
47 ---help--- 47 ---help---
48 This statistics is not a SNMP/MIB specification but shows 48 This statistics is not a SNMP/MIB specification but shows
49 statistics about transformation error (or almost error) factor 49 statistics about transformation error (or almost error) factor
@@ -68,8 +68,8 @@ config NET_KEY
68 Say Y unless you know what you are doing. 68 Say Y unless you know what you are doing.
69 69
70config NET_KEY_MIGRATE 70config NET_KEY_MIGRATE
71 bool "PF_KEY MIGRATE (EXPERIMENTAL)" 71 bool "PF_KEY MIGRATE"
72 depends on NET_KEY && EXPERIMENTAL 72 depends on NET_KEY
73 select XFRM_MIGRATE 73 select XFRM_MIGRATE
74 ---help--- 74 ---help---
75 Add a PF_KEY MIGRATE message to PF_KEYv2 socket family. 75 Add a PF_KEY MIGRATE message to PF_KEYv2 socket family.
diff --git a/scripts/coccinelle/api/devm_ioremap_resource.cocci b/scripts/coccinelle/api/devm_ioremap_resource.cocci
new file mode 100644
index 000000000000..495daa3dbf77
--- /dev/null
+++ b/scripts/coccinelle/api/devm_ioremap_resource.cocci
@@ -0,0 +1,90 @@
1virtual patch
2virtual report
3
4@depends on patch@
5expression base, dev, res;
6@@
7
8-base = devm_request_and_ioremap(dev, res);
9+base = devm_ioremap_resource(dev, res);
10 ...
11 if (
12-base == NULL
13+IS_ERR(base)
14 || ...) {
15<...
16- return ...;
17+ return PTR_ERR(base);
18...>
19 }
20
21@depends on patch@
22expression e, E, ret;
23identifier l;
24@@
25
26 e = devm_ioremap_resource(...);
27 ...
28 if (IS_ERR(e) || ...) {
29 ... when any
30- ret = E;
31+ ret = PTR_ERR(e);
32 ...
33(
34 return ret;
35|
36 goto l;
37)
38 }
39
40@depends on patch@
41expression e;
42@@
43
44 e = devm_ioremap_resource(...);
45 ...
46 if (IS_ERR(e) || ...) {
47 ...
48- \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...);
49 ...
50 }
51
52@depends on patch@
53expression e;
54identifier l;
55@@
56
57 e = devm_ioremap_resource(...);
58 ...
59 if (IS_ERR(e) || ...)
60-{
61(
62 return ...;
63|
64 goto l;
65)
66-}
67
68@r depends on report@
69expression e;
70identifier l;
71position p1;
72@@
73
74*e = devm_request_and_ioremap@p1(...);
75 ...
76 if (e == NULL || ...) {
77 ...
78(
79 return ...;
80|
81 goto l;
82)
83 }
84
85@script:python depends on r@
86p1 << r.p1;
87@@
88
89msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line)
90coccilib.report.print_report(p1[0], msg)
diff --git a/sound/soc/cirrus/ep93xx-ac97.c b/sound/soc/cirrus/ep93xx-ac97.c
index f3f50e6fd6eb..1738d28fb04f 100644
--- a/sound/soc/cirrus/ep93xx-ac97.c
+++ b/sound/soc/cirrus/ep93xx-ac97.c
@@ -11,6 +11,7 @@
11 */ 11 */
12 12
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/err.h>
14#include <linux/io.h> 15#include <linux/io.h>
15#include <linux/init.h> 16#include <linux/init.h>
16#include <linux/module.h> 17#include <linux/module.h>
@@ -367,9 +368,9 @@ static int ep93xx_ac97_probe(struct platform_device *pdev)
367 if (!res) 368 if (!res)
368 return -ENODEV; 369 return -ENODEV;
369 370
370 info->regs = devm_request_and_ioremap(&pdev->dev, res); 371 info->regs = devm_ioremap_resource(&pdev->dev, res);
371 if (!info->regs) 372 if (IS_ERR(info->regs))
372 return -ENXIO; 373 return PTR_ERR(info->regs);
373 374
374 irq = platform_get_irq(pdev, 0); 375 irq = platform_get_irq(pdev, 0);
375 if (!irq) 376 if (!irq)
diff --git a/sound/soc/cirrus/ep93xx-i2s.c b/sound/soc/cirrus/ep93xx-i2s.c
index 3365d4e843b7..323ed69b7975 100644
--- a/sound/soc/cirrus/ep93xx-i2s.c
+++ b/sound/soc/cirrus/ep93xx-i2s.c
@@ -380,9 +380,9 @@ static int ep93xx_i2s_probe(struct platform_device *pdev)
380 if (!res) 380 if (!res)
381 return -ENODEV; 381 return -ENODEV;
382 382
383 info->regs = devm_request_and_ioremap(&pdev->dev, res); 383 info->regs = devm_ioremap_resource(&pdev->dev, res);
384 if (!info->regs) 384 if (IS_ERR(info->regs))
385 return -ENXIO; 385 return PTR_ERR(info->regs);
386 386
387 info->mclk = clk_get(&pdev->dev, "mclk"); 387 info->mclk = clk_get(&pdev->dev, "mclk");
388 if (IS_ERR(info->mclk)) { 388 if (IS_ERR(info->mclk)) {
diff --git a/sound/soc/codecs/jz4740.c b/sound/soc/codecs/jz4740.c
index d991529e1aff..5f607b35b68b 100644
--- a/sound/soc/codecs/jz4740.c
+++ b/sound/soc/codecs/jz4740.c
@@ -361,9 +361,9 @@ static int jz4740_codec_probe(struct platform_device *pdev)
361 return -ENOMEM; 361 return -ENOMEM;
362 362
363 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 363 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
364 base = devm_request_and_ioremap(&pdev->dev, mem); 364 base = devm_ioremap_resource(&pdev->dev, mem);
365 if (!base) 365 if (IS_ERR(base))
366 return -EBUSY; 366 return PTR_ERR(base);
367 367
368 jz4740_codec->regmap = devm_regmap_init_mmio(&pdev->dev, base, 368 jz4740_codec->regmap = devm_regmap_init_mmio(&pdev->dev, base,
369 &jz4740_codec_regmap_config); 369 &jz4740_codec_regmap_config);
diff --git a/sound/soc/fsl/imx-audmux.c b/sound/soc/fsl/imx-audmux.c
index fab912ea7a50..3f333e5b4673 100644
--- a/sound/soc/fsl/imx-audmux.c
+++ b/sound/soc/fsl/imx-audmux.c
@@ -252,9 +252,9 @@ static int imx_audmux_probe(struct platform_device *pdev)
252 of_match_device(imx_audmux_dt_ids, &pdev->dev); 252 of_match_device(imx_audmux_dt_ids, &pdev->dev);
253 253
254 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 254 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
255 audmux_base = devm_request_and_ioremap(&pdev->dev, res); 255 audmux_base = devm_ioremap_resource(&pdev->dev, res);
256 if (!audmux_base) 256 if (IS_ERR(audmux_base))
257 return -EADDRNOTAVAIL; 257 return PTR_ERR(audmux_base);
258 258
259 pinctrl = devm_pinctrl_get_select_default(&pdev->dev); 259 pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
260 if (IS_ERR(pinctrl)) { 260 if (IS_ERR(pinctrl)) {
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c
index 3b480423747f..55464a5b0706 100644
--- a/sound/soc/fsl/imx-ssi.c
+++ b/sound/soc/fsl/imx-ssi.c
@@ -550,10 +550,9 @@ static int imx_ssi_probe(struct platform_device *pdev)
550 goto failed_get_resource; 550 goto failed_get_resource;
551 } 551 }
552 552
553 ssi->base = devm_request_and_ioremap(&pdev->dev, res); 553 ssi->base = devm_ioremap_resource(&pdev->dev, res);
554 if (!ssi->base) { 554 if (IS_ERR(ssi->base)) {
555 dev_err(&pdev->dev, "ioremap failed\n"); 555 ret = PTR_ERR(ssi->base);
556 ret = -ENODEV;
557 goto failed_register; 556 goto failed_register;
558 } 557 }
559 558
diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c
index 282d8b1163ba..c74c89065493 100644
--- a/sound/soc/kirkwood/kirkwood-i2s.c
+++ b/sound/soc/kirkwood/kirkwood-i2s.c
@@ -472,11 +472,9 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
472 return -ENXIO; 472 return -ENXIO;
473 } 473 }
474 474
475 priv->io = devm_request_and_ioremap(&pdev->dev, mem); 475 priv->io = devm_ioremap_resource(&pdev->dev, mem);
476 if (!priv->io) { 476 if (IS_ERR(priv->io))
477 dev_err(&pdev->dev, "devm_request_and_ioremap failed\n"); 477 return PTR_ERR(priv->io);
478 return -ENOMEM;
479 }
480 478
481 priv->irq = platform_get_irq(pdev, 0); 479 priv->irq = platform_get_irq(pdev, 0);
482 if (priv->irq <= 0) { 480 if (priv->irq <= 0) {
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index e70e6c844f96..3a2aa1d19b93 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -717,11 +717,9 @@ static int mxs_saif_probe(struct platform_device *pdev)
717 717
718 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); 718 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
719 719
720 saif->base = devm_request_and_ioremap(&pdev->dev, iores); 720 saif->base = devm_ioremap_resource(&pdev->dev, iores);
721 if (!saif->base) { 721 if (IS_ERR(saif->base))
722 dev_err(&pdev->dev, "ioremap failed\n"); 722 return PTR_ERR(saif->base);
723 return -ENODEV;
724 }
725 723
726 dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); 724 dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0);
727 if (!dmares) { 725 if (!dmares) {
diff --git a/sound/soc/pxa/mmp-sspa.c b/sound/soc/pxa/mmp-sspa.c
index 41c3a09b53ea..9140c4abafbc 100644
--- a/sound/soc/pxa/mmp-sspa.c
+++ b/sound/soc/pxa/mmp-sspa.c
@@ -429,9 +429,9 @@ static int asoc_mmp_sspa_probe(struct platform_device *pdev)
429 if (res == NULL) 429 if (res == NULL)
430 return -ENOMEM; 430 return -ENOMEM;
431 431
432 priv->sspa->mmio_base = devm_request_and_ioremap(&pdev->dev, res); 432 priv->sspa->mmio_base = devm_ioremap_resource(&pdev->dev, res);
433 if (priv->sspa->mmio_base == NULL) 433 if (IS_ERR(priv->sspa->mmio_base))
434 return -ENODEV; 434 return PTR_ERR(priv->sspa->mmio_base);
435 435
436 priv->sspa->clk = devm_clk_get(&pdev->dev, NULL); 436 priv->sspa->clk = devm_clk_get(&pdev->dev, NULL);
437 if (IS_ERR(priv->sspa->clk)) 437 if (IS_ERR(priv->sspa->clk))
diff --git a/tools/lguest/lguest.txt b/tools/lguest/lguest.txt
index bff0c554485d..7203ace65e83 100644
--- a/tools/lguest/lguest.txt
+++ b/tools/lguest/lguest.txt
@@ -29,10 +29,6 @@ Running Lguest:
29 29
30 You will need to configure your kernel with the following options: 30 You will need to configure your kernel with the following options:
31 31
32 "General setup":
33 "Prompt for development and/or incomplete code/drivers" = Y
34 (CONFIG_EXPERIMENTAL=y)
35
36 "Processor type and features": 32 "Processor type and features":
37 "Paravirtualized guest support" = Y 33 "Paravirtualized guest support" = Y
38 "Lguest guest support" = Y 34 "Lguest guest support" = Y
@@ -43,10 +39,10 @@ Running Lguest:
43 39
44 "Device Drivers": 40 "Device Drivers":
45 "Block devices" 41 "Block devices"
46 "Virtio block driver (EXPERIMENTAL)" = M/Y 42 "Virtio block driver" = M/Y
47 "Network device support" 43 "Network device support"
48 "Universal TUN/TAP device driver support" = M/Y 44 "Universal TUN/TAP device driver support" = M/Y
49 "Virtio network driver (EXPERIMENTAL)" = M/Y 45 "Virtio network driver" = M/Y
50 (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m) 46 (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m)
51 47
52 "Virtualization" 48 "Virtualization"