diff options
751 files changed, 2753 insertions, 2185 deletions
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index dc73bc54cc4e..d9da7e148538 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -39,6 +39,9 @@ | |||
39 | #include <limits.h> | 39 | #include <limits.h> |
40 | #include <stddef.h> | 40 | #include <stddef.h> |
41 | #include <signal.h> | 41 | #include <signal.h> |
42 | #include <pwd.h> | ||
43 | #include <grp.h> | ||
44 | |||
42 | #include <linux/virtio_config.h> | 45 | #include <linux/virtio_config.h> |
43 | #include <linux/virtio_net.h> | 46 | #include <linux/virtio_net.h> |
44 | #include <linux/virtio_blk.h> | 47 | #include <linux/virtio_blk.h> |
@@ -298,20 +301,27 @@ static void *map_zeroed_pages(unsigned int num) | |||
298 | 301 | ||
299 | /* | 302 | /* |
300 | * We use a private mapping (ie. if we write to the page, it will be | 303 | * We use a private mapping (ie. if we write to the page, it will be |
301 | * copied). | 304 | * copied). We allocate an extra two pages PROT_NONE to act as guard |
305 | * pages against read/write attempts that exceed allocated space. | ||
302 | */ | 306 | */ |
303 | addr = mmap(NULL, getpagesize() * num, | 307 | addr = mmap(NULL, getpagesize() * (num+2), |
304 | PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, fd, 0); | 308 | PROT_NONE, MAP_PRIVATE, fd, 0); |
309 | |||
305 | if (addr == MAP_FAILED) | 310 | if (addr == MAP_FAILED) |
306 | err(1, "Mmapping %u pages of /dev/zero", num); | 311 | err(1, "Mmapping %u pages of /dev/zero", num); |
307 | 312 | ||
313 | if (mprotect(addr + getpagesize(), getpagesize() * num, | ||
314 | PROT_READ|PROT_WRITE) == -1) | ||
315 | err(1, "mprotect rw %u pages failed", num); | ||
316 | |||
308 | /* | 317 | /* |
309 | * One neat mmap feature is that you can close the fd, and it | 318 | * One neat mmap feature is that you can close the fd, and it |
310 | * stays mapped. | 319 | * stays mapped. |
311 | */ | 320 | */ |
312 | close(fd); | 321 | close(fd); |
313 | 322 | ||
314 | return addr; | 323 | /* Return address after PROT_NONE page */ |
324 | return addr + getpagesize(); | ||
315 | } | 325 | } |
316 | 326 | ||
317 | /* Get some more pages for a device. */ | 327 | /* Get some more pages for a device. */ |
@@ -343,7 +353,7 @@ static void map_at(int fd, void *addr, unsigned long offset, unsigned long len) | |||
343 | * done to it. This allows us to share untouched memory between | 353 | * done to it. This allows us to share untouched memory between |
344 | * Guests. | 354 | * Guests. |
345 | */ | 355 | */ |
346 | if (mmap(addr, len, PROT_READ|PROT_WRITE|PROT_EXEC, | 356 | if (mmap(addr, len, PROT_READ|PROT_WRITE, |
347 | MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED) | 357 | MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED) |
348 | return; | 358 | return; |
349 | 359 | ||
@@ -573,10 +583,10 @@ static void *_check_pointer(unsigned long addr, unsigned int size, | |||
573 | unsigned int line) | 583 | unsigned int line) |
574 | { | 584 | { |
575 | /* | 585 | /* |
576 | * We have to separately check addr and addr+size, because size could | 586 | * Check if the requested address and size exceeds the allocated memory, |
577 | * be huge and addr + size might wrap around. | 587 | * or addr + size wraps around. |
578 | */ | 588 | */ |
579 | if (addr >= guest_limit || addr + size >= guest_limit) | 589 | if ((addr + size) > guest_limit || (addr + size) < addr) |
580 | errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr); | 590 | errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr); |
581 | /* | 591 | /* |
582 | * We return a pointer for the caller's convenience, now we know it's | 592 | * We return a pointer for the caller's convenience, now we know it's |
@@ -1872,6 +1882,8 @@ static struct option opts[] = { | |||
1872 | { "block", 1, NULL, 'b' }, | 1882 | { "block", 1, NULL, 'b' }, |
1873 | { "rng", 0, NULL, 'r' }, | 1883 | { "rng", 0, NULL, 'r' }, |
1874 | { "initrd", 1, NULL, 'i' }, | 1884 | { "initrd", 1, NULL, 'i' }, |
1885 | { "username", 1, NULL, 'u' }, | ||
1886 | { "chroot", 1, NULL, 'c' }, | ||
1875 | { NULL }, | 1887 | { NULL }, |
1876 | }; | 1888 | }; |
1877 | static void usage(void) | 1889 | static void usage(void) |
@@ -1894,6 +1906,12 @@ int main(int argc, char *argv[]) | |||
1894 | /* If they specify an initrd file to load. */ | 1906 | /* If they specify an initrd file to load. */ |
1895 | const char *initrd_name = NULL; | 1907 | const char *initrd_name = NULL; |
1896 | 1908 | ||
1909 | /* Password structure for initgroups/setres[gu]id */ | ||
1910 | struct passwd *user_details = NULL; | ||
1911 | |||
1912 | /* Directory to chroot to */ | ||
1913 | char *chroot_path = NULL; | ||
1914 | |||
1897 | /* Save the args: we "reboot" by execing ourselves again. */ | 1915 | /* Save the args: we "reboot" by execing ourselves again. */ |
1898 | main_args = argv; | 1916 | main_args = argv; |
1899 | 1917 | ||
@@ -1950,6 +1968,14 @@ int main(int argc, char *argv[]) | |||
1950 | case 'i': | 1968 | case 'i': |
1951 | initrd_name = optarg; | 1969 | initrd_name = optarg; |
1952 | break; | 1970 | break; |
1971 | case 'u': | ||
1972 | user_details = getpwnam(optarg); | ||
1973 | if (!user_details) | ||
1974 | err(1, "getpwnam failed, incorrect username?"); | ||
1975 | break; | ||
1976 | case 'c': | ||
1977 | chroot_path = optarg; | ||
1978 | break; | ||
1953 | default: | 1979 | default: |
1954 | warnx("Unknown argument %s", argv[optind]); | 1980 | warnx("Unknown argument %s", argv[optind]); |
1955 | usage(); | 1981 | usage(); |
@@ -2021,6 +2047,37 @@ int main(int argc, char *argv[]) | |||
2021 | /* If we exit via err(), this kills all the threads, restores tty. */ | 2047 | /* If we exit via err(), this kills all the threads, restores tty. */ |
2022 | atexit(cleanup_devices); | 2048 | atexit(cleanup_devices); |
2023 | 2049 | ||
2050 | /* If requested, chroot to a directory */ | ||
2051 | if (chroot_path) { | ||
2052 | if (chroot(chroot_path) != 0) | ||
2053 | err(1, "chroot(\"%s\") failed", chroot_path); | ||
2054 | |||
2055 | if (chdir("/") != 0) | ||
2056 | err(1, "chdir(\"/\") failed"); | ||
2057 | |||
2058 | verbose("chroot done\n"); | ||
2059 | } | ||
2060 | |||
2061 | /* If requested, drop privileges */ | ||
2062 | if (user_details) { | ||
2063 | uid_t u; | ||
2064 | gid_t g; | ||
2065 | |||
2066 | u = user_details->pw_uid; | ||
2067 | g = user_details->pw_gid; | ||
2068 | |||
2069 | if (initgroups(user_details->pw_name, g) != 0) | ||
2070 | err(1, "initgroups failed"); | ||
2071 | |||
2072 | if (setresgid(g, g, g) != 0) | ||
2073 | err(1, "setresgid failed"); | ||
2074 | |||
2075 | if (setresuid(u, u, u) != 0) | ||
2076 | err(1, "setresuid failed"); | ||
2077 | |||
2078 | verbose("Dropping privileges completed\n"); | ||
2079 | } | ||
2080 | |||
2024 | /* Finally, run the Guest. This doesn't return. */ | 2081 | /* Finally, run the Guest. This doesn't return. */ |
2025 | run_guest(); | 2082 | run_guest(); |
2026 | } | 2083 | } |
diff --git a/Documentation/lguest/lguest.txt b/Documentation/lguest/lguest.txt index 6ccaf8e1a00e..dad99978a6a8 100644 --- a/Documentation/lguest/lguest.txt +++ b/Documentation/lguest/lguest.txt | |||
@@ -117,6 +117,11 @@ Running Lguest: | |||
117 | 117 | ||
118 | for general information on how to get bridging to work. | 118 | for general information on how to get bridging to work. |
119 | 119 | ||
120 | - Random number generation. Using the --rng option will provide a | ||
121 | /dev/hwrng in the guest that will read from the host's /dev/random. | ||
122 | Use this option in conjunction with rng-tools (see ../hw_random.txt) | ||
123 | to provide entropy to the guest kernel's /dev/random. | ||
124 | |||
120 | There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest | 125 | There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest |
121 | 126 | ||
122 | Good luck! | 127 | Good luck! |
diff --git a/Documentation/sound/alsa/soc/codec.txt b/Documentation/sound/alsa/soc/codec.txt index 37ba3a72cb76..bce23a4a7875 100644 --- a/Documentation/sound/alsa/soc/codec.txt +++ b/Documentation/sound/alsa/soc/codec.txt | |||
@@ -27,42 +27,38 @@ ASoC Codec driver breakdown | |||
27 | 27 | ||
28 | 1 - Codec DAI and PCM configuration | 28 | 1 - Codec DAI and PCM configuration |
29 | ----------------------------------- | 29 | ----------------------------------- |
30 | Each codec driver must have a struct snd_soc_codec_dai to define its DAI and | 30 | Each codec driver must have a struct snd_soc_dai_driver to define its DAI and |
31 | PCM capabilities and operations. This struct is exported so that it can be | 31 | PCM capabilities and operations. This struct is exported so that it can be |
32 | registered with the core by your machine driver. | 32 | registered with the core by your machine driver. |
33 | 33 | ||
34 | e.g. | 34 | e.g. |
35 | 35 | ||
36 | struct snd_soc_codec_dai wm8731_dai = { | 36 | static struct snd_soc_dai_ops wm8731_dai_ops = { |
37 | .name = "WM8731", | 37 | .prepare = wm8731_pcm_prepare, |
38 | /* playback capabilities */ | 38 | .hw_params = wm8731_hw_params, |
39 | .shutdown = wm8731_shutdown, | ||
40 | .digital_mute = wm8731_mute, | ||
41 | .set_sysclk = wm8731_set_dai_sysclk, | ||
42 | .set_fmt = wm8731_set_dai_fmt, | ||
43 | }; | ||
44 | |||
45 | struct snd_soc_dai_driver wm8731_dai = { | ||
46 | .name = "wm8731-hifi", | ||
39 | .playback = { | 47 | .playback = { |
40 | .stream_name = "Playback", | 48 | .stream_name = "Playback", |
41 | .channels_min = 1, | 49 | .channels_min = 1, |
42 | .channels_max = 2, | 50 | .channels_max = 2, |
43 | .rates = WM8731_RATES, | 51 | .rates = WM8731_RATES, |
44 | .formats = WM8731_FORMATS,}, | 52 | .formats = WM8731_FORMATS,}, |
45 | /* capture capabilities */ | ||
46 | .capture = { | 53 | .capture = { |
47 | .stream_name = "Capture", | 54 | .stream_name = "Capture", |
48 | .channels_min = 1, | 55 | .channels_min = 1, |
49 | .channels_max = 2, | 56 | .channels_max = 2, |
50 | .rates = WM8731_RATES, | 57 | .rates = WM8731_RATES, |
51 | .formats = WM8731_FORMATS,}, | 58 | .formats = WM8731_FORMATS,}, |
52 | /* pcm operations - see section 4 below */ | 59 | .ops = &wm8731_dai_ops, |
53 | .ops = { | 60 | .symmetric_rates = 1, |
54 | .prepare = wm8731_pcm_prepare, | ||
55 | .hw_params = wm8731_hw_params, | ||
56 | .shutdown = wm8731_shutdown, | ||
57 | }, | ||
58 | /* DAI operations - see DAI.txt */ | ||
59 | .dai_ops = { | ||
60 | .digital_mute = wm8731_mute, | ||
61 | .set_sysclk = wm8731_set_dai_sysclk, | ||
62 | .set_fmt = wm8731_set_dai_fmt, | ||
63 | } | ||
64 | }; | 61 | }; |
65 | EXPORT_SYMBOL_GPL(wm8731_dai); | ||
66 | 62 | ||
67 | 63 | ||
68 | 2 - Codec control IO | 64 | 2 - Codec control IO |
@@ -186,13 +182,14 @@ when the mute is applied or freed. | |||
186 | 182 | ||
187 | i.e. | 183 | i.e. |
188 | 184 | ||
189 | static int wm8974_mute(struct snd_soc_codec *codec, | 185 | static int wm8974_mute(struct snd_soc_dai *dai, int mute) |
190 | struct snd_soc_codec_dai *dai, int mute) | ||
191 | { | 186 | { |
192 | u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf; | 187 | struct snd_soc_codec *codec = dai->codec; |
193 | if(mute) | 188 | u16 mute_reg = snd_soc_read(codec, WM8974_DAC) & 0xffbf; |
194 | wm8974_write(codec, WM8974_DAC, mute_reg | 0x40); | 189 | |
190 | if (mute) | ||
191 | snd_soc_write(codec, WM8974_DAC, mute_reg | 0x40); | ||
195 | else | 192 | else |
196 | wm8974_write(codec, WM8974_DAC, mute_reg); | 193 | snd_soc_write(codec, WM8974_DAC, mute_reg); |
197 | return 0; | 194 | return 0; |
198 | } | 195 | } |
diff --git a/Documentation/sound/alsa/soc/machine.txt b/Documentation/sound/alsa/soc/machine.txt index 2524c75557df..3e2ec9cbf397 100644 --- a/Documentation/sound/alsa/soc/machine.txt +++ b/Documentation/sound/alsa/soc/machine.txt | |||
@@ -12,6 +12,8 @@ the following struct:- | |||
12 | struct snd_soc_card { | 12 | struct snd_soc_card { |
13 | char *name; | 13 | char *name; |
14 | 14 | ||
15 | ... | ||
16 | |||
15 | int (*probe)(struct platform_device *pdev); | 17 | int (*probe)(struct platform_device *pdev); |
16 | int (*remove)(struct platform_device *pdev); | 18 | int (*remove)(struct platform_device *pdev); |
17 | 19 | ||
@@ -22,12 +24,13 @@ struct snd_soc_card { | |||
22 | int (*resume_pre)(struct platform_device *pdev); | 24 | int (*resume_pre)(struct platform_device *pdev); |
23 | int (*resume_post)(struct platform_device *pdev); | 25 | int (*resume_post)(struct platform_device *pdev); |
24 | 26 | ||
25 | /* machine stream operations */ | 27 | ... |
26 | struct snd_soc_ops *ops; | ||
27 | 28 | ||
28 | /* CPU <--> Codec DAI links */ | 29 | /* CPU <--> Codec DAI links */ |
29 | struct snd_soc_dai_link *dai_link; | 30 | struct snd_soc_dai_link *dai_link; |
30 | int num_links; | 31 | int num_links; |
32 | |||
33 | ... | ||
31 | }; | 34 | }; |
32 | 35 | ||
33 | probe()/remove() | 36 | probe()/remove() |
@@ -42,11 +45,6 @@ of any machine audio tasks that have to be done before or after the codec, DAIs | |||
42 | and DMA is suspended and resumed. Optional. | 45 | and DMA is suspended and resumed. Optional. |
43 | 46 | ||
44 | 47 | ||
45 | Machine operations | ||
46 | ------------------ | ||
47 | The machine specific audio operations can be set here. Again this is optional. | ||
48 | |||
49 | |||
50 | Machine DAI Configuration | 48 | Machine DAI Configuration |
51 | ------------------------- | 49 | ------------------------- |
52 | The machine DAI configuration glues all the codec and CPU DAIs together. It can | 50 | The machine DAI configuration glues all the codec and CPU DAIs together. It can |
@@ -61,8 +59,10 @@ struct snd_soc_dai_link is used to set up each DAI in your machine. e.g. | |||
61 | static struct snd_soc_dai_link corgi_dai = { | 59 | static struct snd_soc_dai_link corgi_dai = { |
62 | .name = "WM8731", | 60 | .name = "WM8731", |
63 | .stream_name = "WM8731", | 61 | .stream_name = "WM8731", |
64 | .cpu_dai = &pxa_i2s_dai, | 62 | .cpu_dai_name = "pxa-is2-dai", |
65 | .codec_dai = &wm8731_dai, | 63 | .codec_dai_name = "wm8731-hifi", |
64 | .platform_name = "pxa-pcm-audio", | ||
65 | .codec_name = "wm8713-codec.0-001a", | ||
66 | .init = corgi_wm8731_init, | 66 | .init = corgi_wm8731_init, |
67 | .ops = &corgi_ops, | 67 | .ops = &corgi_ops, |
68 | }; | 68 | }; |
@@ -77,26 +77,6 @@ static struct snd_soc_card snd_soc_corgi = { | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | 79 | ||
80 | Machine Audio Subsystem | ||
81 | ----------------------- | ||
82 | |||
83 | The machine soc device glues the platform, machine and codec driver together. | ||
84 | Private data can also be set here. e.g. | ||
85 | |||
86 | /* corgi audio private data */ | ||
87 | static struct wm8731_setup_data corgi_wm8731_setup = { | ||
88 | .i2c_address = 0x1b, | ||
89 | }; | ||
90 | |||
91 | /* corgi audio subsystem */ | ||
92 | static struct snd_soc_device corgi_snd_devdata = { | ||
93 | .machine = &snd_soc_corgi, | ||
94 | .platform = &pxa2xx_soc_platform, | ||
95 | .codec_dev = &soc_codec_dev_wm8731, | ||
96 | .codec_data = &corgi_wm8731_setup, | ||
97 | }; | ||
98 | |||
99 | |||
100 | Machine Power Map | 80 | Machine Power Map |
101 | ----------------- | 81 | ----------------- |
102 | 82 | ||
diff --git a/Documentation/sound/alsa/soc/platform.txt b/Documentation/sound/alsa/soc/platform.txt index 06d835987c6a..d57efad37e0a 100644 --- a/Documentation/sound/alsa/soc/platform.txt +++ b/Documentation/sound/alsa/soc/platform.txt | |||
@@ -20,9 +20,10 @@ struct snd_soc_ops { | |||
20 | int (*trigger)(struct snd_pcm_substream *, int); | 20 | int (*trigger)(struct snd_pcm_substream *, int); |
21 | }; | 21 | }; |
22 | 22 | ||
23 | The platform driver exports its DMA functionality via struct snd_soc_platform:- | 23 | The platform driver exports its DMA functionality via struct |
24 | snd_soc_platform_driver:- | ||
24 | 25 | ||
25 | struct snd_soc_platform { | 26 | struct snd_soc_platform_driver { |
26 | char *name; | 27 | char *name; |
27 | 28 | ||
28 | int (*probe)(struct platform_device *pdev); | 29 | int (*probe)(struct platform_device *pdev); |
@@ -34,6 +35,13 @@ struct snd_soc_platform { | |||
34 | int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *); | 35 | int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *); |
35 | void (*pcm_free)(struct snd_pcm *); | 36 | void (*pcm_free)(struct snd_pcm *); |
36 | 37 | ||
38 | /* | ||
39 | * For platform caused delay reporting. | ||
40 | * Optional. | ||
41 | */ | ||
42 | snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, | ||
43 | struct snd_soc_dai *); | ||
44 | |||
37 | /* platform stream ops */ | 45 | /* platform stream ops */ |
38 | struct snd_pcm_ops *pcm_ops; | 46 | struct snd_pcm_ops *pcm_ops; |
39 | }; | 47 | }; |
diff --git a/MAINTAINERS b/MAINTAINERS index 1af022e63668..55592f8b672c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -162,7 +162,7 @@ L: linux-serial@vger.kernel.org | |||
162 | W: http://serial.sourceforge.net | 162 | W: http://serial.sourceforge.net |
163 | S: Maintained | 163 | S: Maintained |
164 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git | 164 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git |
165 | F: drivers/serial/8250* | 165 | F: drivers/tty/serial/8250* |
166 | F: include/linux/serial_8250.h | 166 | F: include/linux/serial_8250.h |
167 | 167 | ||
168 | 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.] | 168 | 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.] |
@@ -624,11 +624,15 @@ M: Lennert Buytenhek <kernel@wantstofly.org> | |||
624 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 624 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
625 | S: Maintained | 625 | S: Maintained |
626 | 626 | ||
627 | ARM/ATMEL AT91RM9200 ARM ARCHITECTURE | 627 | ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES |
628 | M: Andrew Victor <linux@maxim.org.za> | 628 | M: Andrew Victor <linux@maxim.org.za> |
629 | M: Nicolas Ferre <nicolas.ferre@atmel.com> | ||
630 | M: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> | ||
629 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 631 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
630 | W: http://maxim.org.za/at91_26.html | 632 | W: http://maxim.org.za/at91_26.html |
631 | S: Maintained | 633 | W: http://www.linux4sam.org |
634 | S: Supported | ||
635 | F: arch/arm/mach-at91/ | ||
632 | 636 | ||
633 | ARM/BCMRING ARM ARCHITECTURE | 637 | ARM/BCMRING ARM ARCHITECTURE |
634 | M: Jiandong Zheng <jdzheng@broadcom.com> | 638 | M: Jiandong Zheng <jdzheng@broadcom.com> |
@@ -888,8 +892,8 @@ F: arch/arm/mach-msm/ | |||
888 | F: drivers/video/msm/ | 892 | F: drivers/video/msm/ |
889 | F: drivers/mmc/host/msm_sdcc.c | 893 | F: drivers/mmc/host/msm_sdcc.c |
890 | F: drivers/mmc/host/msm_sdcc.h | 894 | F: drivers/mmc/host/msm_sdcc.h |
891 | F: drivers/serial/msm_serial.h | 895 | F: drivers/tty/serial/msm_serial.h |
892 | F: drivers/serial/msm_serial.c | 896 | F: drivers/tty/serial/msm_serial.c |
893 | T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git | 897 | T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git |
894 | S: Maintained | 898 | S: Maintained |
895 | 899 | ||
@@ -1256,7 +1260,7 @@ F: drivers/mmc/host/atmel-mci-regs.h | |||
1256 | ATMEL AT91 / AT32 SERIAL DRIVER | 1260 | ATMEL AT91 / AT32 SERIAL DRIVER |
1257 | M: Nicolas Ferre <nicolas.ferre@atmel.com> | 1261 | M: Nicolas Ferre <nicolas.ferre@atmel.com> |
1258 | S: Supported | 1262 | S: Supported |
1259 | F: drivers/serial/atmel_serial.c | 1263 | F: drivers/tty/serial/atmel_serial.c |
1260 | 1264 | ||
1261 | ATMEL LCDFB DRIVER | 1265 | ATMEL LCDFB DRIVER |
1262 | M: Nicolas Ferre <nicolas.ferre@atmel.com> | 1266 | M: Nicolas Ferre <nicolas.ferre@atmel.com> |
@@ -1412,7 +1416,7 @@ M: Sonic Zhang <sonic.zhang@analog.com> | |||
1412 | L: uclinux-dist-devel@blackfin.uclinux.org | 1416 | L: uclinux-dist-devel@blackfin.uclinux.org |
1413 | W: http://blackfin.uclinux.org | 1417 | W: http://blackfin.uclinux.org |
1414 | S: Supported | 1418 | S: Supported |
1415 | F: drivers/serial/bfin_5xx.c | 1419 | F: drivers/tty/serial/bfin_5xx.c |
1416 | 1420 | ||
1417 | BLACKFIN WATCHDOG DRIVER | 1421 | BLACKFIN WATCHDOG DRIVER |
1418 | M: Mike Frysinger <vapier.adi@gmail.com> | 1422 | M: Mike Frysinger <vapier.adi@gmail.com> |
@@ -1877,7 +1881,7 @@ L: linux-cris-kernel@axis.com | |||
1877 | W: http://developer.axis.com | 1881 | W: http://developer.axis.com |
1878 | S: Maintained | 1882 | S: Maintained |
1879 | F: arch/cris/ | 1883 | F: arch/cris/ |
1880 | F: drivers/serial/crisv10.* | 1884 | F: drivers/tty/serial/crisv10.* |
1881 | 1885 | ||
1882 | CRYPTO API | 1886 | CRYPTO API |
1883 | M: Herbert Xu <herbert@gondor.apana.org.au> | 1887 | M: Herbert Xu <herbert@gondor.apana.org.au> |
@@ -2216,7 +2220,7 @@ F: drivers/net/wan/dscc4.c | |||
2216 | DZ DECSTATION DZ11 SERIAL DRIVER | 2220 | DZ DECSTATION DZ11 SERIAL DRIVER |
2217 | M: "Maciej W. Rozycki" <macro@linux-mips.org> | 2221 | M: "Maciej W. Rozycki" <macro@linux-mips.org> |
2218 | S: Maintained | 2222 | S: Maintained |
2219 | F: drivers/serial/dz.* | 2223 | F: drivers/tty/serial/dz.* |
2220 | 2224 | ||
2221 | EATA-DMA SCSI DRIVER | 2225 | EATA-DMA SCSI DRIVER |
2222 | M: Michael Neuffer <mike@i-Connect.Net> | 2226 | M: Michael Neuffer <mike@i-Connect.Net> |
@@ -2643,7 +2647,7 @@ FREESCALE QUICC ENGINE UCC UART DRIVER | |||
2643 | M: Timur Tabi <timur@freescale.com> | 2647 | M: Timur Tabi <timur@freescale.com> |
2644 | L: linuxppc-dev@lists.ozlabs.org | 2648 | L: linuxppc-dev@lists.ozlabs.org |
2645 | S: Supported | 2649 | S: Supported |
2646 | F: drivers/serial/ucc_uart.c | 2650 | F: drivers/tty/serial/ucc_uart.c |
2647 | 2651 | ||
2648 | FREESCALE SOC SOUND DRIVERS | 2652 | FREESCALE SOC SOUND DRIVERS |
2649 | M: Timur Tabi <timur@freescale.com> | 2653 | M: Timur Tabi <timur@freescale.com> |
@@ -3146,7 +3150,7 @@ S: Orphan | |||
3146 | F: drivers/video/imsttfb.c | 3150 | F: drivers/video/imsttfb.c |
3147 | 3151 | ||
3148 | INFINIBAND SUBSYSTEM | 3152 | INFINIBAND SUBSYSTEM |
3149 | M: Roland Dreier <rolandd@cisco.com> | 3153 | M: Roland Dreier <roland@kernel.org> |
3150 | M: Sean Hefty <sean.hefty@intel.com> | 3154 | M: Sean Hefty <sean.hefty@intel.com> |
3151 | M: Hal Rosenstock <hal.rosenstock@gmail.com> | 3155 | M: Hal Rosenstock <hal.rosenstock@gmail.com> |
3152 | L: linux-rdma@vger.kernel.org | 3156 | L: linux-rdma@vger.kernel.org |
@@ -3350,7 +3354,7 @@ IOC3 SERIAL DRIVER | |||
3350 | M: Pat Gefre <pfg@sgi.com> | 3354 | M: Pat Gefre <pfg@sgi.com> |
3351 | L: linux-serial@vger.kernel.org | 3355 | L: linux-serial@vger.kernel.org |
3352 | S: Maintained | 3356 | S: Maintained |
3353 | F: drivers/serial/ioc3_serial.c | 3357 | F: drivers/tty/serial/ioc3_serial.c |
3354 | 3358 | ||
3355 | IP MASQUERADING | 3359 | IP MASQUERADING |
3356 | M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar> | 3360 | M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar> |
@@ -3527,7 +3531,7 @@ JSM Neo PCI based serial card | |||
3527 | M: Breno Leitao <leitao@linux.vnet.ibm.com> | 3531 | M: Breno Leitao <leitao@linux.vnet.ibm.com> |
3528 | L: linux-serial@vger.kernel.org | 3532 | L: linux-serial@vger.kernel.org |
3529 | S: Maintained | 3533 | S: Maintained |
3530 | F: drivers/serial/jsm/ | 3534 | F: drivers/tty/serial/jsm/ |
3531 | 3535 | ||
3532 | K10TEMP HARDWARE MONITORING DRIVER | 3536 | K10TEMP HARDWARE MONITORING DRIVER |
3533 | M: Clemens Ladisch <clemens@ladisch.de> | 3537 | M: Clemens Ladisch <clemens@ladisch.de> |
@@ -3677,7 +3681,7 @@ L: kgdb-bugreport@lists.sourceforge.net | |||
3677 | S: Maintained | 3681 | S: Maintained |
3678 | F: Documentation/DocBook/kgdb.tmpl | 3682 | F: Documentation/DocBook/kgdb.tmpl |
3679 | F: drivers/misc/kgdbts.c | 3683 | F: drivers/misc/kgdbts.c |
3680 | F: drivers/serial/kgdboc.c | 3684 | F: drivers/tty/serial/kgdboc.c |
3681 | F: include/linux/kdb.h | 3685 | F: include/linux/kdb.h |
3682 | F: include/linux/kgdb.h | 3686 | F: include/linux/kgdb.h |
3683 | F: kernel/debug/ | 3687 | F: kernel/debug/ |
@@ -5545,7 +5549,7 @@ M: Pat Gefre <pfg@sgi.com> | |||
5545 | L: linux-ia64@vger.kernel.org | 5549 | L: linux-ia64@vger.kernel.org |
5546 | S: Supported | 5550 | S: Supported |
5547 | F: Documentation/ia64/serial.txt | 5551 | F: Documentation/ia64/serial.txt |
5548 | F: drivers/serial/ioc?_serial.c | 5552 | F: drivers/tty/serial/ioc?_serial.c |
5549 | F: include/linux/ioc?.h | 5553 | F: include/linux/ioc?.h |
5550 | 5554 | ||
5551 | SGI VISUAL WORKSTATION 320 AND 540 | 5555 | SGI VISUAL WORKSTATION 320 AND 540 |
@@ -5567,7 +5571,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | |||
5567 | S: Maintained | 5571 | S: Maintained |
5568 | F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen | 5572 | F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen |
5569 | F: arch/arm/mach-lh7a40x/ | 5573 | F: arch/arm/mach-lh7a40x/ |
5570 | F: drivers/serial/serial_lh7a40x.c | 5574 | F: drivers/tty/serial/serial_lh7a40x.c |
5571 | F: drivers/usb/gadget/lh7a40* | 5575 | F: drivers/usb/gadget/lh7a40* |
5572 | F: drivers/usb/host/ohci-lh7a40* | 5576 | F: drivers/usb/host/ohci-lh7a40* |
5573 | 5577 | ||
@@ -5787,14 +5791,14 @@ L: sparclinux@vger.kernel.org | |||
5787 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git | 5791 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git |
5788 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git | 5792 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git |
5789 | S: Maintained | 5793 | S: Maintained |
5790 | F: drivers/serial/suncore.c | 5794 | F: drivers/tty/serial/suncore.c |
5791 | F: drivers/serial/suncore.h | 5795 | F: drivers/tty/serial/suncore.h |
5792 | F: drivers/serial/sunhv.c | 5796 | F: drivers/tty/serial/sunhv.c |
5793 | F: drivers/serial/sunsab.c | 5797 | F: drivers/tty/serial/sunsab.c |
5794 | F: drivers/serial/sunsab.h | 5798 | F: drivers/tty/serial/sunsab.h |
5795 | F: drivers/serial/sunsu.c | 5799 | F: drivers/tty/serial/sunsu.c |
5796 | F: drivers/serial/sunzilog.c | 5800 | F: drivers/tty/serial/sunzilog.c |
5797 | F: drivers/serial/sunzilog.h | 5801 | F: drivers/tty/serial/sunzilog.h |
5798 | 5802 | ||
5799 | SPEAR PLATFORM SUPPORT | 5803 | SPEAR PLATFORM SUPPORT |
5800 | M: Viresh Kumar <viresh.kumar@st.com> | 5804 | M: Viresh Kumar <viresh.kumar@st.com> |
@@ -6124,8 +6128,8 @@ TTY LAYER | |||
6124 | M: Greg Kroah-Hartman <gregkh@suse.de> | 6128 | M: Greg Kroah-Hartman <gregkh@suse.de> |
6125 | S: Maintained | 6129 | S: Maintained |
6126 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git | 6130 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git |
6127 | F: drivers/char/tty_* | 6131 | F: drivers/tty/* |
6128 | F: drivers/serial/serial_core.c | 6132 | F: drivers/tty/serial/serial_core.c |
6129 | F: include/linux/serial_core.h | 6133 | F: include/linux/serial_core.h |
6130 | F: include/linux/serial.h | 6134 | F: include/linux/serial.h |
6131 | F: include/linux/tty.h | 6135 | F: include/linux/tty.h |
@@ -6870,7 +6874,7 @@ XILINX UARTLITE SERIAL DRIVER | |||
6870 | M: Peter Korsgaard <jacmet@sunsite.dk> | 6874 | M: Peter Korsgaard <jacmet@sunsite.dk> |
6871 | L: linux-serial@vger.kernel.org | 6875 | L: linux-serial@vger.kernel.org |
6872 | S: Maintained | 6876 | S: Maintained |
6873 | F: drivers/serial/uartlite.c | 6877 | F: drivers/tty/serial/uartlite.c |
6874 | 6878 | ||
6875 | YAM DRIVER FOR AX.25 | 6879 | YAM DRIVER FOR AX.25 |
6876 | M: Jean-Paul Roubelat <jpr@f6fbb.org> | 6880 | M: Jean-Paul Roubelat <jpr@f6fbb.org> |
@@ -6916,7 +6920,7 @@ F: drivers/media/video/zoran/ | |||
6916 | ZS DECSTATION Z85C30 SERIAL DRIVER | 6920 | ZS DECSTATION Z85C30 SERIAL DRIVER |
6917 | M: "Maciej W. Rozycki" <macro@linux-mips.org> | 6921 | M: "Maciej W. Rozycki" <macro@linux-mips.org> |
6918 | S: Maintained | 6922 | S: Maintained |
6919 | F: drivers/serial/zs.* | 6923 | F: drivers/tty/serial/zs.* |
6920 | 6924 | ||
6921 | GRE DEMULTIPLEXER DRIVER | 6925 | GRE DEMULTIPLEXER DRIVER |
6922 | M: Dmitry Kozlov <xeb@mail.ru> | 6926 | M: Dmitry Kozlov <xeb@mail.ru> |
diff --git a/arch/arm/configs/ag5evm_defconfig b/arch/arm/configs/ag5evm_defconfig index 2b9cf56db363..212ead354a6b 100644 --- a/arch/arm/configs/ag5evm_defconfig +++ b/arch/arm/configs/ag5evm_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_NAMESPACES=y | |||
10 | # CONFIG_PID_NS is not set | 10 | # CONFIG_PID_NS is not set |
11 | CONFIG_BLK_DEV_INITRD=y | 11 | CONFIG_BLK_DEV_INITRD=y |
12 | CONFIG_INITRAMFS_SOURCE="" | 12 | CONFIG_INITRAMFS_SOURCE="" |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | CONFIG_SLAB=y | 14 | CONFIG_SLAB=y |
15 | # CONFIG_BLK_DEV_BSG is not set | 15 | # CONFIG_BLK_DEV_BSG is not set |
16 | # CONFIG_IOSCHED_DEADLINE is not set | 16 | # CONFIG_IOSCHED_DEADLINE is not set |
diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig index 5536c488dd01..f0dea52e49c4 100644 --- a/arch/arm/configs/am200epdkit_defconfig +++ b/arch/arm/configs/am200epdkit_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_LOCALVERSION="gum" | |||
3 | # CONFIG_SWAP is not set | 3 | # CONFIG_SWAP is not set |
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_EPOLL is not set | 8 | # CONFIG_EPOLL is not set |
9 | # CONFIG_SHMEM is not set | 9 | # CONFIG_SHMEM is not set |
diff --git a/arch/arm/configs/at572d940hfek_defconfig b/arch/arm/configs/at572d940hfek_defconfig index 695e32d4fb58..1b1158ae8f82 100644 --- a/arch/arm/configs/at572d940hfek_defconfig +++ b/arch/arm/configs/at572d940hfek_defconfig | |||
@@ -17,7 +17,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
17 | CONFIG_RELAY=y | 17 | CONFIG_RELAY=y |
18 | CONFIG_BLK_DEV_INITRD=y | 18 | CONFIG_BLK_DEV_INITRD=y |
19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
20 | CONFIG_EMBEDDED=y | 20 | CONFIG_EXPERT=y |
21 | CONFIG_SLAB=y | 21 | CONFIG_SLAB=y |
22 | CONFIG_PROFILING=y | 22 | CONFIG_PROFILING=y |
23 | CONFIG_OPROFILE=m | 23 | CONFIG_OPROFILE=m |
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig index 3a1ad15a779f..5b54abbeb0b3 100644 --- a/arch/arm/configs/badge4_defconfig +++ b/arch/arm/configs/badge4_defconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | CONFIG_EMBEDDED=y | 3 | CONFIG_EXPERT=y |
4 | CONFIG_MODULES=y | 4 | CONFIG_MODULES=y |
5 | CONFIG_MODVERSIONS=y | 5 | CONFIG_MODVERSIONS=y |
6 | CONFIG_ARCH_SA1100=y | 6 | CONFIG_ARCH_SA1100=y |
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig index 75984cd1e233..795374d48f81 100644 --- a/arch/arm/configs/bcmring_defconfig +++ b/arch/arm/configs/bcmring_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | # CONFIG_LOCALVERSION_AUTO is not set | 2 | # CONFIG_LOCALVERSION_AUTO is not set |
3 | # CONFIG_SWAP is not set | 3 | # CONFIG_SWAP is not set |
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_KALLSYMS_EXTRA_PASS=y | 6 | CONFIG_KALLSYMS_EXTRA_PASS=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_ELF_CORE is not set | 8 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/arm/configs/cm_x2xx_defconfig b/arch/arm/configs/cm_x2xx_defconfig index dcfbcf3b6c3e..a93ff8da5bab 100644 --- a/arch/arm/configs/cm_x2xx_defconfig +++ b/arch/arm/configs/cm_x2xx_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_VM_EVENT_COUNTERS is not set | 10 | # CONFIG_VM_EVENT_COUNTERS is not set |
11 | # CONFIG_SLUB_DEBUG is not set | 11 | # CONFIG_SLUB_DEBUG is not set |
12 | # CONFIG_COMPAT_BRK is not set | 12 | # CONFIG_COMPAT_BRK is not set |
diff --git a/arch/arm/configs/colibri_pxa270_defconfig b/arch/arm/configs/colibri_pxa270_defconfig index f52c64e36d8d..2ef2c5e8aaec 100644 --- a/arch/arm/configs/colibri_pxa270_defconfig +++ b/arch/arm/configs/colibri_pxa270_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | |||
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | CONFIG_SYSFS_DEPRECATED_V2=y | 9 | CONFIG_SYSFS_DEPRECATED_V2=y |
10 | CONFIG_BLK_DEV_INITRD=y | 10 | CONFIG_BLK_DEV_INITRD=y |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | CONFIG_KALLSYMS_EXTRA_PASS=y | 12 | CONFIG_KALLSYMS_EXTRA_PASS=y |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
14 | CONFIG_MODULES=y | 14 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig index 310f9a6270be..6c56ad086c7c 100644 --- a/arch/arm/configs/collie_defconfig +++ b/arch/arm/configs/collie_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BASE_FULL is not set | 8 | # CONFIG_BASE_FULL is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
10 | CONFIG_SLOB=y | 10 | CONFIG_SLOB=y |
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig index 4a1fa81ed37d..e53c47563845 100644 --- a/arch/arm/configs/corgi_defconfig +++ b/arch/arm/configs/corgi_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
9 | CONFIG_OPROFILE=m | 9 | CONFIG_OPROFILE=m |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig index cdc40c4b8c48..88ccde058ba4 100644 --- a/arch/arm/configs/da8xx_omapl_defconfig +++ b/arch/arm/configs/da8xx_omapl_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | |||
6 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
12 | CONFIG_MODULE_FORCE_UNLOAD=y | 12 | CONFIG_MODULE_FORCE_UNLOAD=y |
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig index 2519cc5a5f8f..889922ad229c 100644 --- a/arch/arm/configs/davinci_all_defconfig +++ b/arch/arm/configs/davinci_all_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | |||
6 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
12 | CONFIG_MODULE_FORCE_UNLOAD=y | 12 | CONFIG_MODULE_FORCE_UNLOAD=y |
diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index 9359e1bf32c1..54bf5eec8016 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | CONFIG_SLAB=y | 5 | CONFIG_SLAB=y |
6 | CONFIG_MODULES=y | 6 | CONFIG_MODULES=y |
7 | CONFIG_MODULE_UNLOAD=y | 7 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/ebsa110_defconfig b/arch/arm/configs/ebsa110_defconfig index c3194186920c..14559dbb4c2c 100644 --- a/arch/arm/configs/ebsa110_defconfig +++ b/arch/arm/configs/ebsa110_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_BSD_PROCESS_ACCT=y | 3 | CONFIG_BSD_PROCESS_ACCT=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_MODULES=y | 6 | CONFIG_MODULES=y |
7 | CONFIG_ARCH_EBSA110=y | 7 | CONFIG_ARCH_EBSA110=y |
8 | CONFIG_PCCARD=m | 8 | CONFIG_PCCARD=m |
diff --git a/arch/arm/configs/edb7211_defconfig b/arch/arm/configs/edb7211_defconfig index 7b62be1561ea..d52ded350a12 100644 --- a/arch/arm/configs/edb7211_defconfig +++ b/arch/arm/configs/edb7211_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | CONFIG_ARCH_CLPS711X=y | 7 | CONFIG_ARCH_CLPS711X=y |
8 | CONFIG_ARCH_EDB7211=y | 8 | CONFIG_ARCH_EDB7211=y |
diff --git a/arch/arm/configs/em_x270_defconfig b/arch/arm/configs/em_x270_defconfig index d7db34f79702..60a21e01eb70 100644 --- a/arch/arm/configs/em_x270_defconfig +++ b/arch/arm/configs/em_x270_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_VM_EVENT_COUNTERS is not set | 10 | # CONFIG_VM_EVENT_COUNTERS is not set |
11 | # CONFIG_SLUB_DEBUG is not set | 11 | # CONFIG_SLUB_DEBUG is not set |
12 | # CONFIG_COMPAT_BRK is not set | 12 | # CONFIG_COMPAT_BRK is not set |
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig index 6d6689cdf398..8e97b2f7ceec 100644 --- a/arch/arm/configs/ep93xx_defconfig +++ b/arch/arm/configs/ep93xx_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/eseries_pxa_defconfig b/arch/arm/configs/eseries_pxa_defconfig index 1691dea582fe..d68ac67c201c 100644 --- a/arch/arm/configs/eseries_pxa_defconfig +++ b/arch/arm/configs/eseries_pxa_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_KALLSYMS is not set | 6 | # CONFIG_KALLSYMS is not set |
7 | # CONFIG_COMPAT_BRK is not set | 7 | # CONFIG_COMPAT_BRK is not set |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig index c4eeb6d1cbf0..227a477346ed 100644 --- a/arch/arm/configs/ezx_defconfig +++ b/arch/arm/configs/ezx_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_RD_BZIP2=y | 8 | CONFIG_RD_BZIP2=y |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | # CONFIG_COMPAT_BRK is not set | 11 | # CONFIG_COMPAT_BRK is not set |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
13 | CONFIG_MODULES=y | 13 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig index 4f925ead2617..038518ab39a8 100644 --- a/arch/arm/configs/footbridge_defconfig +++ b/arch/arm/configs/footbridge_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_BSD_PROCESS_ACCT=y | 3 | CONFIG_BSD_PROCESS_ACCT=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_ARCH_FOOTBRIDGE=y | 9 | CONFIG_ARCH_FOOTBRIDGE=y |
diff --git a/arch/arm/configs/fortunet_defconfig b/arch/arm/configs/fortunet_defconfig index e11c7eab8ed0..840fced7529f 100644 --- a/arch/arm/configs/fortunet_defconfig +++ b/arch/arm/configs/fortunet_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | CONFIG_ARCH_CLPS711X=y | 7 | CONFIG_ARCH_CLPS711X=y |
8 | CONFIG_ARCH_FORTUNET=y | 8 | CONFIG_ARCH_FORTUNET=y |
diff --git a/arch/arm/configs/h5000_defconfig b/arch/arm/configs/h5000_defconfig index ac336f10000c..37903e3f0efc 100644 --- a/arch/arm/configs/h5000_defconfig +++ b/arch/arm/configs/h5000_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=16 | 5 | CONFIG_LOG_BUF_SHIFT=16 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_UID16 is not set | 8 | # CONFIG_UID16 is not set |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/imote2_defconfig b/arch/arm/configs/imote2_defconfig index ade55c8c408b..176ec22af034 100644 --- a/arch/arm/configs/imote2_defconfig +++ b/arch/arm/configs/imote2_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | CONFIG_RD_BZIP2=y | 7 | CONFIG_RD_BZIP2=y |
8 | CONFIG_RD_LZMA=y | 8 | CONFIG_RD_LZMA=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_COMPAT_BRK is not set | 10 | # CONFIG_COMPAT_BRK is not set |
11 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
12 | CONFIG_MODULES=y | 12 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig index 908324684549..8405aded97a3 100644 --- a/arch/arm/configs/ixp2000_defconfig +++ b/arch/arm/configs/ixp2000_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_BSD_PROCESS_ACCT=y | 3 | CONFIG_BSD_PROCESS_ACCT=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig index 7fc056a8569c..688717612e91 100644 --- a/arch/arm/configs/ixp23xx_defconfig +++ b/arch/arm/configs/ixp23xx_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_BSD_PROCESS_ACCT=y | 3 | CONFIG_BSD_PROCESS_ACCT=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_SLAB=y | 7 | CONFIG_SLAB=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig index 5c5023934001..063e2ab2c8f1 100644 --- a/arch/arm/configs/ixp4xx_defconfig +++ b/arch/arm/configs/ixp4xx_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_BSD_PROCESS_ACCT=y | 3 | CONFIG_BSD_PROCESS_ACCT=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_MODULES=y | 7 | CONFIG_MODULES=y |
8 | CONFIG_MODVERSIONS=y | 8 | CONFIG_MODVERSIONS=y |
9 | # CONFIG_BLK_DEV_BSG is not set | 9 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/arm/configs/loki_defconfig b/arch/arm/configs/loki_defconfig index e1eaff7f5536..1ba752b2dc6d 100644 --- a/arch/arm/configs/loki_defconfig +++ b/arch/arm/configs/loki_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | CONFIG_SLAB=y | 5 | CONFIG_SLAB=y |
6 | CONFIG_MODULES=y | 6 | CONFIG_MODULES=y |
7 | CONFIG_MODULE_UNLOAD=y | 7 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/lpd7a400_defconfig b/arch/arm/configs/lpd7a400_defconfig index 20caaaba4a04..5a48f171204c 100644 --- a/arch/arm/configs/lpd7a400_defconfig +++ b/arch/arm/configs/lpd7a400_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_EPOLL is not set | 8 | # CONFIG_EPOLL is not set |
9 | # CONFIG_IOSCHED_DEADLINE is not set | 9 | # CONFIG_IOSCHED_DEADLINE is not set |
diff --git a/arch/arm/configs/lpd7a404_defconfig b/arch/arm/configs/lpd7a404_defconfig index 1efcce97b4a7..22d0631de009 100644 --- a/arch/arm/configs/lpd7a404_defconfig +++ b/arch/arm/configs/lpd7a404_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
5 | CONFIG_LOG_BUF_SHIFT=16 | 5 | CONFIG_LOG_BUF_SHIFT=16 |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_EPOLL is not set | 8 | # CONFIG_EPOLL is not set |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig index af805e8fd03d..a88e64d4e9a5 100644 --- a/arch/arm/configs/magician_defconfig +++ b/arch/arm/configs/magician_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=16 | 5 | CONFIG_LOG_BUF_SHIFT=16 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_UID16 is not set | 8 | # CONFIG_UID16 is not set |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig index b0d082422d46..7305ebddb510 100644 --- a/arch/arm/configs/mv78xx0_defconfig +++ b/arch/arm/configs/mv78xx0_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_SYSFS_DEPRECATED_V2=y | 4 | CONFIG_SYSFS_DEPRECATED_V2=y |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_KALLSYMS_ALL=y | 6 | CONFIG_KALLSYMS_ALL=y |
7 | # CONFIG_SLUB_DEBUG is not set | 7 | # CONFIG_SLUB_DEBUG is not set |
8 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
diff --git a/arch/arm/configs/mx1_defconfig b/arch/arm/configs/mx1_defconfig index 2f38d9715437..b39b5ced8a10 100644 --- a/arch/arm/configs/mx1_defconfig +++ b/arch/arm/configs/mx1_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/mx21_defconfig b/arch/arm/configs/mx21_defconfig index 6454e18e2abe..411f88dd4402 100644 --- a/arch/arm/configs/mx21_defconfig +++ b/arch/arm/configs/mx21_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_KALLSYMS_EXTRA_PASS=y | 8 | CONFIG_KALLSYMS_EXTRA_PASS=y |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/mx27_defconfig b/arch/arm/configs/mx27_defconfig index 813cfb366c18..9ad4c656c9bd 100644 --- a/arch/arm/configs/mx27_defconfig +++ b/arch/arm/configs/mx27_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_POSIX_MQUEUE=y | 4 | CONFIG_POSIX_MQUEUE=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_KALLSYMS_EXTRA_PASS=y | 8 | CONFIG_KALLSYMS_EXTRA_PASS=y |
9 | # CONFIG_COMPAT_BRK is not set | 9 | # CONFIG_COMPAT_BRK is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
diff --git a/arch/arm/configs/mx3_defconfig b/arch/arm/configs/mx3_defconfig index e648ea3429be..7c4b30b34952 100644 --- a/arch/arm/configs/mx3_defconfig +++ b/arch/arm/configs/mx3_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/mx51_defconfig b/arch/arm/configs/mx51_defconfig index 5c7a87260fab..9cba68cfa51a 100644 --- a/arch/arm/configs/mx51_defconfig +++ b/arch/arm/configs/mx51_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_LOG_BUF_SHIFT=18 | 4 | CONFIG_LOG_BUF_SHIFT=18 |
5 | CONFIG_RELAY=y | 5 | CONFIG_RELAY=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SLUB_DEBUG is not set | 7 | # CONFIG_SLUB_DEBUG is not set |
8 | # CONFIG_COMPAT_BRK is not set | 8 | # CONFIG_COMPAT_BRK is not set |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig index 0e2dc26ebe66..37207d1bf44b 100644 --- a/arch/arm/configs/nhk8815_defconfig +++ b/arch/arm/configs/nhk8815_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y | |||
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_SYSFS_DEPRECATED_V2=y | 8 | CONFIG_SYSFS_DEPRECATED_V2=y |
9 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_KALLSYMS_ALL=y | 11 | CONFIG_KALLSYMS_ALL=y |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
13 | CONFIG_MODULES=y | 13 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig index a350cc6bfe6a..7b63462b349d 100644 --- a/arch/arm/configs/omap1_defconfig +++ b/arch/arm/configs/omap1_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
6 | CONFIG_IKCONFIG=y | 6 | CONFIG_IKCONFIG=y |
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_KALLSYMS is not set | 10 | # CONFIG_KALLSYMS is not set |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
12 | # CONFIG_BASE_FULL is not set | 12 | # CONFIG_BASE_FULL is not set |
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index ccedde1371c3..ae890caa17a7 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | |||
6 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=16 | 7 | CONFIG_LOG_BUF_SHIFT=16 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | 10 | # CONFIG_SYSCTL_SYSCALL is not set |
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | 11 | CONFIG_KALLSYMS_EXTRA_PASS=y |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index 439323b3b0ed..a288d7033950 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_SYSFS_DEPRECATED_V2=y | 4 | CONFIG_SYSFS_DEPRECATED_V2=y |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_SLUB_DEBUG is not set | 6 | # CONFIG_SLUB_DEBUG is not set |
7 | CONFIG_PROFILING=y | 7 | CONFIG_PROFILING=y |
8 | CONFIG_OPROFILE=y | 8 | CONFIG_OPROFILE=y |
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig index 583a0610bd00..2f136c30a989 100644 --- a/arch/arm/configs/pcm027_defconfig +++ b/arch/arm/configs/pcm027_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y | |||
7 | CONFIG_IKCONFIG_PROC=y | 7 | CONFIG_IKCONFIG_PROC=y |
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | # CONFIG_KALLSYMS is not set | 11 | # CONFIG_KALLSYMS is not set |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
13 | CONFIG_MODULES=y | 13 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/pcontrol_g20_defconfig b/arch/arm/configs/pcontrol_g20_defconfig index b42ee62c4d77..c75c9fcede58 100644 --- a/arch/arm/configs/pcontrol_g20_defconfig +++ b/arch/arm/configs/pcontrol_g20_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_NAMESPACES=y | 11 | CONFIG_NAMESPACES=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | # CONFIG_SYSCTL_SYSCALL is not set | 14 | # CONFIG_SYSCTL_SYSCALL is not set |
15 | # CONFIG_KALLSYMS is not set | 15 | # CONFIG_KALLSYMS is not set |
16 | # CONFIG_VM_EVENT_COUNTERS is not set | 16 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/arm/configs/pleb_defconfig b/arch/arm/configs/pleb_defconfig index d1efbdc1e6dc..cb08cc561da5 100644 --- a/arch/arm/configs/pleb_defconfig +++ b/arch/arm/configs/pleb_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_SHMEM is not set | 8 | # CONFIG_SHMEM is not set |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig index bd481f04276f..35a31ccacc32 100644 --- a/arch/arm/configs/pnx4008_defconfig +++ b/arch/arm/configs/pnx4008_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
5 | CONFIG_AUDIT=y | 5 | CONFIG_AUDIT=y |
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/simpad_defconfig b/arch/arm/configs/simpad_defconfig index af3b12e3b464..d3358155bf8a 100644 --- a/arch/arm/configs/simpad_defconfig +++ b/arch/arm/configs/simpad_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_LOCALVERSION="oe1" | 2 | CONFIG_LOCALVERSION="oe1" |
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_KALLSYMS_ALL=y | 6 | CONFIG_KALLSYMS_ALL=y |
7 | CONFIG_KALLSYMS_EXTRA_PASS=y | 7 | CONFIG_KALLSYMS_EXTRA_PASS=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig index aebd4bb0ad01..70158273c6dd 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
9 | CONFIG_OPROFILE=m | 9 | CONFIG_OPROFILE=m |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/stmp378x_defconfig b/arch/arm/configs/stmp378x_defconfig index 94a2d904bf94..1079c2b6eb3a 100644 --- a/arch/arm/configs/stmp378x_defconfig +++ b/arch/arm/configs/stmp378x_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_BSD_PROCESS_ACCT=y | 5 | CONFIG_BSD_PROCESS_ACCT=y |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/stmp37xx_defconfig b/arch/arm/configs/stmp37xx_defconfig index d8ee58cfa872..564a5cc44085 100644 --- a/arch/arm/configs/stmp37xx_defconfig +++ b/arch/arm/configs/stmp37xx_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_BSD_PROCESS_ACCT=y | 5 | CONFIG_BSD_PROCESS_ACCT=y |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/arm/configs/tct_hammer_defconfig b/arch/arm/configs/tct_hammer_defconfig index e89ca19489c2..95c0f0d63db6 100644 --- a/arch/arm/configs/tct_hammer_defconfig +++ b/arch/arm/configs/tct_hammer_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_BUG is not set | 10 | # CONFIG_BUG is not set |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig index 37f48342827c..3162173fa75a 100644 --- a/arch/arm/configs/trizeps4_defconfig +++ b/arch/arm/configs/trizeps4_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y | |||
7 | CONFIG_IKCONFIG_PROC=y | 7 | CONFIG_IKCONFIG_PROC=y |
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | 11 | CONFIG_KALLSYMS_EXTRA_PASS=y |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
13 | CONFIG_MODULES=y | 13 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig index c1c252cdca60..4a5a12681be2 100644 --- a/arch/arm/configs/u300_defconfig +++ b/arch/arm/configs/u300_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | # CONFIG_SWAP is not set | 3 | # CONFIG_SWAP is not set |
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_AIO is not set | 7 | # CONFIG_AIO is not set |
8 | # CONFIG_VM_EVENT_COUNTERS is not set | 8 | # CONFIG_VM_EVENT_COUNTERS is not set |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig index 9d7bf5e0d0f5..8b0c717378fa 100644 --- a/arch/arm/configs/viper_defconfig +++ b/arch/arm/configs/viper_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_LOG_BUF_SHIFT=13 | 4 | CONFIG_LOG_BUF_SHIFT=13 |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_ELF_CORE is not set | 7 | # CONFIG_ELF_CORE is not set |
8 | # CONFIG_SHMEM is not set | 8 | # CONFIG_SHMEM is not set |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
diff --git a/arch/arm/configs/xcep_defconfig b/arch/arm/configs/xcep_defconfig index 70d47dbae6db..5b5504143647 100644 --- a/arch/arm/configs/xcep_defconfig +++ b/arch/arm/configs/xcep_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | |||
8 | CONFIG_LOG_BUF_SHIFT=16 | 8 | CONFIG_LOG_BUF_SHIFT=16 |
9 | CONFIG_SYSFS_DEPRECATED_V2=y | 9 | CONFIG_SYSFS_DEPRECATED_V2=y |
10 | CONFIG_BLK_DEV_INITRD=y | 10 | CONFIG_BLK_DEV_INITRD=y |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SHMEM is not set | 13 | # CONFIG_SHMEM is not set |
14 | # CONFIG_VM_EVENT_COUNTERS is not set | 14 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c index 2e8391307f55..6dde8185205f 100644 --- a/arch/arm/mach-msm/board-qsd8x50.c +++ b/arch/arm/mach-msm/board-qsd8x50.c | |||
@@ -43,7 +43,7 @@ static const unsigned qsd8x50_surf_smc91x_gpio __initdata = 156; | |||
43 | * at run-time: they vary from board to board, and the true | 43 | * at run-time: they vary from board to board, and the true |
44 | * configuration won't be known until boot. | 44 | * configuration won't be known until boot. |
45 | */ | 45 | */ |
46 | static struct resource smc91x_resources[] __initdata = { | 46 | static struct resource smc91x_resources[] = { |
47 | [0] = { | 47 | [0] = { |
48 | .flags = IORESOURCE_MEM, | 48 | .flags = IORESOURCE_MEM, |
49 | }, | 49 | }, |
@@ -52,7 +52,7 @@ static struct resource smc91x_resources[] __initdata = { | |||
52 | }, | 52 | }, |
53 | }; | 53 | }; |
54 | 54 | ||
55 | static struct platform_device smc91x_device __initdata = { | 55 | static struct platform_device smc91x_device = { |
56 | .name = "smc91x", | 56 | .name = "smc91x", |
57 | .id = 0, | 57 | .id = 0, |
58 | .num_resources = ARRAY_SIZE(smc91x_resources), | 58 | .num_resources = ARRAY_SIZE(smc91x_resources), |
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 313b13073c54..cd2062fe0f61 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | config AVR32 | 1 | config AVR32 |
2 | def_bool y | 2 | def_bool y |
3 | # With EMBEDDED=n, we get lots of stuff automatically selected | 3 | # With EXPERT=n, we get lots of stuff automatically selected |
4 | # that we usually don't need on AVR32. | 4 | # that we usually don't need on AVR32. |
5 | select EMBEDDED | 5 | select EXPERT |
6 | select HAVE_CLK | 6 | select HAVE_CLK |
7 | select HAVE_OPROFILE | 7 | select HAVE_OPROFILE |
8 | select HAVE_KPROBES | 8 | select HAVE_KPROBES |
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig index c0b988ee30df..db8d38a12a9a 100644 --- a/arch/blackfin/configs/BF518F-EZBRD_defconfig +++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig index 864af5b68874..3e50d7857c27 100644 --- a/arch/blackfin/configs/BF526-EZBRD_defconfig +++ b/arch/blackfin/configs/BF526-EZBRD_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig b/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig index 7b6a3370dbe2..362f59dd5228 100644 --- a/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig +++ b/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
10 | # CONFIG_AIO is not set | 10 | # CONFIG_AIO is not set |
11 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
diff --git a/arch/blackfin/configs/BF527-EZKIT-V2_defconfig b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig index 4faa6b46a352..023ff0df2692 100644 --- a/arch/blackfin/configs/BF527-EZKIT-V2_defconfig +++ b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig index 9d893eb68243..4e5a121b3c56 100644 --- a/arch/blackfin/configs/BF527-EZKIT_defconfig +++ b/arch/blackfin/configs/BF527-EZKIT_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF527-TLL6527M_defconfig b/arch/blackfin/configs/BF527-TLL6527M_defconfig index 97a2767c80f8..cd0636bb24a0 100644 --- a/arch/blackfin/configs/BF527-TLL6527M_defconfig +++ b/arch/blackfin/configs/BF527-TLL6527M_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | 10 | # CONFIG_SYSCTL_SYSCALL is not set |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
12 | # CONFIG_FUTEX is not set | 12 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig index f84774360c5b..9f8fc84e4ac9 100644 --- a/arch/blackfin/configs/BF533-EZKIT_defconfig +++ b/arch/blackfin/configs/BF533-EZKIT_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig index 0e7262c04cc2..ccc432b722a0 100644 --- a/arch/blackfin/configs/BF533-STAMP_defconfig +++ b/arch/blackfin/configs/BF533-STAMP_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig index 4d14a002e7bd..566695472a84 100644 --- a/arch/blackfin/configs/BF537-STAMP_defconfig +++ b/arch/blackfin/configs/BF537-STAMP_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig index fbee9d776f56..ac22124ccb6c 100644 --- a/arch/blackfin/configs/BF538-EZKIT_defconfig +++ b/arch/blackfin/configs/BF538-EZKIT_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig index 05dd11db2f7d..944404b6ff08 100644 --- a/arch/blackfin/configs/BF548-EZKIT_defconfig +++ b/arch/blackfin/configs/BF548-EZKIT_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF561-ACVILON_defconfig b/arch/blackfin/configs/BF561-ACVILON_defconfig index bcb14d1c5664..b7c8451f26ac 100644 --- a/arch/blackfin/configs/BF561-ACVILON_defconfig +++ b/arch/blackfin/configs/BF561-ACVILON_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF561-EZKIT-SMP_defconfig b/arch/blackfin/configs/BF561-EZKIT-SMP_defconfig index 4cf451024fd8..7e67ba31e991 100644 --- a/arch/blackfin/configs/BF561-EZKIT-SMP_defconfig +++ b/arch/blackfin/configs/BF561-EZKIT-SMP_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig index 843aaa54a9e3..141e5933e1aa 100644 --- a/arch/blackfin/configs/BF561-EZKIT_defconfig +++ b/arch/blackfin/configs/BF561-EZKIT_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_FUTEX is not set | 11 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig index dae7adf3b2a2..97ebe09a7370 100644 --- a/arch/blackfin/configs/BlackStamp_defconfig +++ b/arch/blackfin/configs/BlackStamp_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | 10 | # CONFIG_SYSCTL_SYSCALL is not set |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
12 | # CONFIG_FUTEX is not set | 12 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig index f3414244bfed..c2457543e58c 100644 --- a/arch/blackfin/configs/CM-BF527_defconfig +++ b/arch/blackfin/configs/CM-BF527_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_SYSCTL_SYSCALL is not set | 12 | # CONFIG_SYSCTL_SYSCALL is not set |
13 | # CONFIG_ELF_CORE is not set | 13 | # CONFIG_ELF_CORE is not set |
14 | # CONFIG_FUTEX is not set | 14 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig index 8c7e08f173d4..baf1c1573e5e 100644 --- a/arch/blackfin/configs/CM-BF533_defconfig +++ b/arch/blackfin/configs/CM-BF533_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | # CONFIG_UID16 is not set | 11 | # CONFIG_UID16 is not set |
12 | # CONFIG_SYSCTL_SYSCALL is not set | 12 | # CONFIG_SYSCTL_SYSCALL is not set |
13 | # CONFIG_ELF_CORE is not set | 13 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig index bd3cb766d078..707cbf8a2590 100644 --- a/arch/blackfin/configs/CM-BF537E_defconfig +++ b/arch/blackfin/configs/CM-BF537E_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SYSCTL_SYSCALL is not set | 13 | # CONFIG_SYSCTL_SYSCALL is not set |
14 | # CONFIG_ELF_CORE is not set | 14 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/CM-BF537U_defconfig b/arch/blackfin/configs/CM-BF537U_defconfig index 82224f37c04e..4596935eadac 100644 --- a/arch/blackfin/configs/CM-BF537U_defconfig +++ b/arch/blackfin/configs/CM-BF537U_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SYSCTL_SYSCALL is not set | 13 | # CONFIG_SYSCTL_SYSCALL is not set |
14 | # CONFIG_ELF_CORE is not set | 14 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig index 433598c6e773..df267588efec 100644 --- a/arch/blackfin/configs/CM-BF548_defconfig +++ b/arch/blackfin/configs/CM-BF548_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SYSCTL_SYSCALL is not set | 13 | # CONFIG_SYSCTL_SYSCALL is not set |
14 | # CONFIG_ELF_CORE is not set | 14 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/CM-BF561_defconfig b/arch/blackfin/configs/CM-BF561_defconfig index ded7d845cb39..6c7b21585a43 100644 --- a/arch/blackfin/configs/CM-BF561_defconfig +++ b/arch/blackfin/configs/CM-BF561_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SYSCTL_SYSCALL is not set | 13 | # CONFIG_SYSCTL_SYSCALL is not set |
14 | # CONFIG_ELF_CORE is not set | 14 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/DNP5370_defconfig b/arch/blackfin/configs/DNP5370_defconfig index 0ebc7d9aa426..f50313657f3e 100644 --- a/arch/blackfin/configs/DNP5370_defconfig +++ b/arch/blackfin/configs/DNP5370_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG=y | |||
5 | CONFIG_IKCONFIG_PROC=y | 5 | CONFIG_IKCONFIG_PROC=y |
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_SLOB=y | 9 | CONFIG_SLOB=y |
10 | # CONFIG_BLK_DEV_BSG is not set | 10 | # CONFIG_BLK_DEV_BSG is not set |
11 | # CONFIG_IOSCHED_CFQ is not set | 11 | # CONFIG_IOSCHED_CFQ is not set |
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig index 700fb701c121..7450127b6455 100644 --- a/arch/blackfin/configs/H8606_defconfig +++ b/arch/blackfin/configs/H8606_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_SYSCTL_SYSCALL is not set | 6 | # CONFIG_SYSCTL_SYSCALL is not set |
7 | # CONFIG_ELF_CORE is not set | 7 | # CONFIG_ELF_CORE is not set |
8 | # CONFIG_FUTEX is not set | 8 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig index b40156d217e3..5e797cf72043 100644 --- a/arch/blackfin/configs/IP0X_defconfig +++ b/arch/blackfin/configs/IP0X_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_HOTPLUG is not set | 8 | # CONFIG_HOTPLUG is not set |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig index be866d95ed76..a566a2fe6b9b 100644 --- a/arch/blackfin/configs/PNAV-10_defconfig +++ b/arch/blackfin/configs/PNAV-10_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_SYSCTL_SYSCALL is not set | 6 | # CONFIG_SYSCTL_SYSCALL is not set |
7 | # CONFIG_ELF_CORE is not set | 7 | # CONFIG_ELF_CORE is not set |
8 | # CONFIG_FUTEX is not set | 8 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig index b64bdf759b82..853809510ee9 100644 --- a/arch/blackfin/configs/SRV1_defconfig +++ b/arch/blackfin/configs/SRV1_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | CONFIG_KALLSYMS_ALL=y | 8 | CONFIG_KALLSYMS_ALL=y |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/blackfin/configs/TCM-BF518_defconfig b/arch/blackfin/configs/TCM-BF518_defconfig index 1bccd9a50986..d496ae9a39b0 100644 --- a/arch/blackfin/configs/TCM-BF518_defconfig +++ b/arch/blackfin/configs/TCM-BF518_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | # CONFIG_SYSCTL_SYSCALL is not set | 11 | # CONFIG_SYSCTL_SYSCALL is not set |
12 | # CONFIG_ELF_CORE is not set | 12 | # CONFIG_ELF_CORE is not set |
13 | # CONFIG_FUTEX is not set | 13 | # CONFIG_FUTEX is not set |
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig index 00ce899e9e5d..65f642167a50 100644 --- a/arch/blackfin/configs/TCM-BF537_defconfig +++ b/arch/blackfin/configs/TCM-BF537_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
8 | # CONFIG_RD_GZIP is not set | 8 | # CONFIG_RD_GZIP is not set |
9 | CONFIG_RD_LZMA=y | 9 | CONFIG_RD_LZMA=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_UID16 is not set | 12 | # CONFIG_UID16 is not set |
13 | # CONFIG_SYSCTL_SYSCALL is not set | 13 | # CONFIG_SYSCTL_SYSCALL is not set |
14 | # CONFIG_ELF_CORE is not set | 14 | # CONFIG_ELF_CORE is not set |
diff --git a/arch/cris/configs/artpec_3_defconfig b/arch/cris/configs/artpec_3_defconfig index 590f72c9455d..71854d41c5a0 100644 --- a/arch/cris/configs/artpec_3_defconfig +++ b/arch/cris/configs/artpec_3_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | # CONFIG_SWAP is not set | 2 | # CONFIG_SWAP is not set |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_KALLSYMS is not set | 6 | # CONFIG_KALLSYMS is not set |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/cris/configs/etrax-100lx_v2_defconfig b/arch/cris/configs/etrax-100lx_v2_defconfig index 1b2853e39801..a85aabf92be5 100644 --- a/arch/cris/configs/etrax-100lx_v2_defconfig +++ b/arch/cris/configs/etrax-100lx_v2_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | # CONFIG_SWAP is not set | 2 | # CONFIG_SWAP is not set |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_KALLSYMS is not set | 6 | # CONFIG_KALLSYMS is not set |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/cris/configs/etraxfs_defconfig b/arch/cris/configs/etraxfs_defconfig index f73d38cc9c66..87c7227fecb2 100644 --- a/arch/cris/configs/etraxfs_defconfig +++ b/arch/cris/configs/etraxfs_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | # CONFIG_SWAP is not set | 2 | # CONFIG_SWAP is not set |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_KALLSYMS is not set | 6 | # CONFIG_KALLSYMS is not set |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/frv/defconfig b/arch/frv/defconfig index b8ebe9e8a493..b1b792610fdf 100644 --- a/arch/frv/defconfig +++ b/arch/frv/defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_POSIX_MQUEUE=y | 3 | CONFIG_POSIX_MQUEUE=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | CONFIG_MMU=y | 8 | CONFIG_MMU=y |
9 | CONFIG_FRV_OUTOFLINE_ATOMIC_OPS=y | 9 | CONFIG_FRV_OUTOFLINE_ATOMIC_OPS=y |
diff --git a/arch/h8300/defconfig b/arch/h8300/defconfig index 342f77765f02..042425a02645 100644 --- a/arch/h8300/defconfig +++ b/arch/h8300/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | # CONFIG_LOCALVERSION_AUTO is not set | 2 | # CONFIG_LOCALVERSION_AUTO is not set |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_UID16 is not set | 5 | # CONFIG_UID16 is not set |
6 | # CONFIG_SYSCTL_SYSCALL is not set | 6 | # CONFIG_SYSCTL_SYSCALL is not set |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
diff --git a/arch/m32r/configs/m32700ut.smp_defconfig b/arch/m32r/configs/m32700ut.smp_defconfig index 816c3ecaa2aa..a3d727ed6a16 100644 --- a/arch/m32r/configs/m32700ut.smp_defconfig +++ b/arch/m32r/configs/m32700ut.smp_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG=y | |||
5 | CONFIG_IKCONFIG_PROC=y | 5 | CONFIG_IKCONFIG_PROC=y |
6 | CONFIG_LOG_BUF_SHIFT=15 | 6 | CONFIG_LOG_BUF_SHIFT=15 |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_FUTEX is not set | 10 | # CONFIG_FUTEX is not set |
11 | # CONFIG_EPOLL is not set | 11 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/m32700ut.up_defconfig b/arch/m32r/configs/m32700ut.up_defconfig index 84785686640a..b8334163099d 100644 --- a/arch/m32r/configs/m32700ut.up_defconfig +++ b/arch/m32r/configs/m32700ut.up_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG=y | |||
5 | CONFIG_IKCONFIG_PROC=y | 5 | CONFIG_IKCONFIG_PROC=y |
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_FUTEX is not set | 10 | # CONFIG_FUTEX is not set |
11 | # CONFIG_EPOLL is not set | 11 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi.nommu_defconfig b/arch/m32r/configs/mappi.nommu_defconfig index 354a964d084d..7c90ce2fc42b 100644 --- a/arch/m32r/configs/mappi.nommu_defconfig +++ b/arch/m32r/configs/mappi.nommu_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
3 | CONFIG_IKCONFIG=y | 3 | CONFIG_IKCONFIG=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | # CONFIG_FUTEX is not set | 8 | # CONFIG_FUTEX is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi.smp_defconfig b/arch/m32r/configs/mappi.smp_defconfig index 9022307bd073..367d07cebcd3 100644 --- a/arch/m32r/configs/mappi.smp_defconfig +++ b/arch/m32r/configs/mappi.smp_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=15 | 5 | CONFIG_LOG_BUF_SHIFT=15 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_FUTEX is not set | 10 | # CONFIG_FUTEX is not set |
11 | # CONFIG_EPOLL is not set | 11 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi.up_defconfig b/arch/m32r/configs/mappi.up_defconfig index 3726068721a5..cb11384386ce 100644 --- a/arch/m32r/configs/mappi.up_defconfig +++ b/arch/m32r/configs/mappi.up_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_FUTEX is not set | 10 | # CONFIG_FUTEX is not set |
11 | # CONFIG_EPOLL is not set | 11 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi2.opsp_defconfig b/arch/m32r/configs/mappi2.opsp_defconfig index 6136fad048e4..3bff779259b4 100644 --- a/arch/m32r/configs/mappi2.opsp_defconfig +++ b/arch/m32r/configs/mappi2.opsp_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_FUTEX is not set | 9 | # CONFIG_FUTEX is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi2.vdec2_defconfig b/arch/m32r/configs/mappi2.vdec2_defconfig index dce1fc7d67ed..75246c9c1af8 100644 --- a/arch/m32r/configs/mappi2.vdec2_defconfig +++ b/arch/m32r/configs/mappi2.vdec2_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_FUTEX is not set | 9 | # CONFIG_FUTEX is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/mappi3.smp_defconfig b/arch/m32r/configs/mappi3.smp_defconfig index b204e2ecd0f1..27cefd41ac1f 100644 --- a/arch/m32r/configs/mappi3.smp_defconfig +++ b/arch/m32r/configs/mappi3.smp_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_IKCONFIG_PROC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=15 | 5 | CONFIG_LOG_BUF_SHIFT=15 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_KALLSYMS is not set | 9 | # CONFIG_KALLSYMS is not set |
10 | # CONFIG_FUTEX is not set | 10 | # CONFIG_FUTEX is not set |
11 | # CONFIG_EPOLL is not set | 11 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/oaks32r_defconfig b/arch/m32r/configs/oaks32r_defconfig index 5aa4ea9ebb10..5087a510ca4f 100644 --- a/arch/m32r/configs/oaks32r_defconfig +++ b/arch/m32r/configs/oaks32r_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | |||
2 | CONFIG_BSD_PROCESS_ACCT=y | 2 | CONFIG_BSD_PROCESS_ACCT=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 4 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | # CONFIG_KALLSYMS is not set | 6 | # CONFIG_KALLSYMS is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
8 | # CONFIG_EPOLL is not set | 8 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/opsput_defconfig b/arch/m32r/configs/opsput_defconfig index 8494c6a276e8..50c6f525db20 100644 --- a/arch/m32r/configs/opsput_defconfig +++ b/arch/m32r/configs/opsput_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_FUTEX is not set | 9 | # CONFIG_FUTEX is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/m32r/configs/usrv_defconfig b/arch/m32r/configs/usrv_defconfig index 1df293bc2ab9..a3cfaaedab60 100644 --- a/arch/m32r/configs/usrv_defconfig +++ b/arch/m32r/configs/usrv_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
5 | CONFIG_LOG_BUF_SHIFT=15 | 5 | CONFIG_LOG_BUF_SHIFT=15 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_EXTRA_PASS=y | 9 | CONFIG_KALLSYMS_EXTRA_PASS=y |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/m68knommu/configs/m5208evb_defconfig b/arch/m68knommu/configs/m5208evb_defconfig index 6ac2981a2cdf..2f5655c577af 100644 --- a/arch/m68knommu/configs/m5208evb_defconfig +++ b/arch/m68knommu/configs/m5208evb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/configs/m5249evb_defconfig b/arch/m68knommu/configs/m5249evb_defconfig index 14934ff8d5c3..16df72bfbd45 100644 --- a/arch/m68knommu/configs/m5249evb_defconfig +++ b/arch/m68knommu/configs/m5249evb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/configs/m5272c3_defconfig b/arch/m68knommu/configs/m5272c3_defconfig index 5985a3b593d8..4e6ea50c7f33 100644 --- a/arch/m68knommu/configs/m5272c3_defconfig +++ b/arch/m68knommu/configs/m5272c3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/configs/m5275evb_defconfig b/arch/m68knommu/configs/m5275evb_defconfig index 5a7857efb45d..f3dd74115a34 100644 --- a/arch/m68knommu/configs/m5275evb_defconfig +++ b/arch/m68knommu/configs/m5275evb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/configs/m5307c3_defconfig b/arch/m68knommu/configs/m5307c3_defconfig index e8102018c8d4..bce0a20c3737 100644 --- a/arch/m68knommu/configs/m5307c3_defconfig +++ b/arch/m68knommu/configs/m5307c3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/configs/m5407c3_defconfig b/arch/m68knommu/configs/m5407c3_defconfig index 5c124a7ba2a7..618cc32691f2 100644 --- a/arch/m68knommu/configs/m5407c3_defconfig +++ b/arch/m68knommu/configs/m5407c3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/m68knommu/defconfig b/arch/m68knommu/defconfig index 6ac2981a2cdf..2f5655c577af 100644 --- a/arch/m68knommu/defconfig +++ b/arch/m68knommu/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_LOG_BUF_SHIFT=14 | 2 | CONFIG_LOG_BUF_SHIFT=14 |
3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 3 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | # CONFIG_HOTPLUG is not set | 6 | # CONFIG_HOTPLUG is not set |
7 | # CONFIG_FUTEX is not set | 7 | # CONFIG_FUTEX is not set |
diff --git a/arch/microblaze/configs/mmu_defconfig b/arch/microblaze/configs/mmu_defconfig index ab8fbe7ad90b..b3f5eecff2a7 100644 --- a/arch/microblaze/configs/mmu_defconfig +++ b/arch/microblaze/configs/mmu_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
7 | CONFIG_INITRAMFS_SOURCE="rootfs.cpio" | 7 | CONFIG_INITRAMFS_SOURCE="rootfs.cpio" |
8 | CONFIG_INITRAMFS_COMPRESSION_GZIP=y | 8 | CONFIG_INITRAMFS_COMPRESSION_GZIP=y |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_KALLSYMS_ALL=y | 11 | CONFIG_KALLSYMS_ALL=y |
12 | CONFIG_KALLSYMS_EXTRA_PASS=y | 12 | CONFIG_KALLSYMS_EXTRA_PASS=y |
13 | # CONFIG_HOTPLUG is not set | 13 | # CONFIG_HOTPLUG is not set |
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig index ebc143c5368e..0249e4b7e1d3 100644 --- a/arch/microblaze/configs/nommu_defconfig +++ b/arch/microblaze/configs/nommu_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
6 | CONFIG_IKCONFIG=y | 6 | CONFIG_IKCONFIG=y |
7 | CONFIG_IKCONFIG_PROC=y | 7 | CONFIG_IKCONFIG_PROC=y |
8 | CONFIG_SYSFS_DEPRECATED_V2=y | 8 | CONFIG_SYSFS_DEPRECATED_V2=y |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_KALLSYMS_ALL=y | 10 | CONFIG_KALLSYMS_ALL=y |
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | 11 | CONFIG_KALLSYMS_EXTRA_PASS=y |
12 | # CONFIG_HOTPLUG is not set | 12 | # CONFIG_HOTPLUG is not set |
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index f437cd1fafb8..5358f90b4dd2 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug | |||
@@ -7,7 +7,7 @@ config TRACE_IRQFLAGS_SUPPORT | |||
7 | source "lib/Kconfig.debug" | 7 | source "lib/Kconfig.debug" |
8 | 8 | ||
9 | config EARLY_PRINTK | 9 | config EARLY_PRINTK |
10 | bool "Early printk" if EMBEDDED | 10 | bool "Early printk" if EXPERT |
11 | depends on SYS_HAS_EARLY_PRINTK | 11 | depends on SYS_HAS_EARLY_PRINTK |
12 | default y | 12 | default y |
13 | help | 13 | help |
diff --git a/arch/mips/configs/ar7_defconfig b/arch/mips/configs/ar7_defconfig index c78c7e7e41df..6cd5a519ce5c 100644 --- a/arch/mips/configs/ar7_defconfig +++ b/arch/mips/configs/ar7_defconfig | |||
@@ -14,7 +14,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
14 | CONFIG_RELAY=y | 14 | CONFIG_RELAY=y |
15 | CONFIG_BLK_DEV_INITRD=y | 15 | CONFIG_BLK_DEV_INITRD=y |
16 | CONFIG_RD_LZMA=y | 16 | CONFIG_RD_LZMA=y |
17 | CONFIG_EMBEDDED=y | 17 | CONFIG_EXPERT=y |
18 | # CONFIG_KALLSYMS is not set | 18 | # CONFIG_KALLSYMS is not set |
19 | # CONFIG_ELF_CORE is not set | 19 | # CONFIG_ELF_CORE is not set |
20 | # CONFIG_PCSPKR_PLATFORM is not set | 20 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/bcm47xx_defconfig b/arch/mips/configs/bcm47xx_defconfig index 927d58b2cd03..22fdf2f0cc23 100644 --- a/arch/mips/configs/bcm47xx_defconfig +++ b/arch/mips/configs/bcm47xx_defconfig | |||
@@ -21,7 +21,7 @@ CONFIG_CGROUP_CPUACCT=y | |||
21 | CONFIG_RELAY=y | 21 | CONFIG_RELAY=y |
22 | CONFIG_BLK_DEV_INITRD=y | 22 | CONFIG_BLK_DEV_INITRD=y |
23 | CONFIG_RD_LZMA=y | 23 | CONFIG_RD_LZMA=y |
24 | CONFIG_EMBEDDED=y | 24 | CONFIG_EXPERT=y |
25 | CONFIG_SLAB=y | 25 | CONFIG_SLAB=y |
26 | CONFIG_MODULES=y | 26 | CONFIG_MODULES=y |
27 | CONFIG_MODULE_UNLOAD=y | 27 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/bcm63xx_defconfig b/arch/mips/configs/bcm63xx_defconfig index b806a4e32896..919005139f5a 100644 --- a/arch/mips/configs/bcm63xx_defconfig +++ b/arch/mips/configs/bcm63xx_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_EXPERIMENTAL=y | |||
10 | # CONFIG_SWAP is not set | 10 | # CONFIG_SWAP is not set |
11 | CONFIG_TINY_RCU=y | 11 | CONFIG_TINY_RCU=y |
12 | CONFIG_SYSFS_DEPRECATED_V2=y | 12 | CONFIG_SYSFS_DEPRECATED_V2=y |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | # CONFIG_PCSPKR_PLATFORM is not set | 14 | # CONFIG_PCSPKR_PLATFORM is not set |
15 | # CONFIG_FUTEX is not set | 15 | # CONFIG_FUTEX is not set |
16 | # CONFIG_EPOLL is not set | 16 | # CONFIG_EPOLL is not set |
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig index 9749bc8758db..1cdff6b6327d 100644 --- a/arch/mips/configs/bigsur_defconfig +++ b/arch/mips/configs/bigsur_defconfig | |||
@@ -26,7 +26,7 @@ CONFIG_PID_NS=y | |||
26 | CONFIG_NET_NS=y | 26 | CONFIG_NET_NS=y |
27 | CONFIG_BLK_DEV_INITRD=y | 27 | CONFIG_BLK_DEV_INITRD=y |
28 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 28 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
29 | CONFIG_EMBEDDED=y | 29 | CONFIG_EXPERT=y |
30 | # CONFIG_SYSCTL_SYSCALL is not set | 30 | # CONFIG_SYSCTL_SYSCALL is not set |
31 | # CONFIG_PCSPKR_PLATFORM is not set | 31 | # CONFIG_PCSPKR_PLATFORM is not set |
32 | CONFIG_SLAB=y | 32 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig index 502a8e9c084b..5135dc0b950a 100644 --- a/arch/mips/configs/capcella_defconfig +++ b/arch/mips/configs/capcella_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/cavium-octeon_defconfig b/arch/mips/configs/cavium-octeon_defconfig index 3567b6f07b37..75165dfa60c1 100644 --- a/arch/mips/configs/cavium-octeon_defconfig +++ b/arch/mips/configs/cavium-octeon_defconfig | |||
@@ -15,7 +15,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
15 | CONFIG_RELAY=y | 15 | CONFIG_RELAY=y |
16 | CONFIG_BLK_DEV_INITRD=y | 16 | CONFIG_BLK_DEV_INITRD=y |
17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
18 | CONFIG_EMBEDDED=y | 18 | CONFIG_EXPERT=y |
19 | # CONFIG_PCSPKR_PLATFORM is not set | 19 | # CONFIG_PCSPKR_PLATFORM is not set |
20 | CONFIG_SLAB=y | 20 | CONFIG_SLAB=y |
21 | CONFIG_MODULES=y | 21 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig index 6c4f7e9d3383..5419adb219a8 100644 --- a/arch/mips/configs/cobalt_defconfig +++ b/arch/mips/configs/cobalt_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_RELAY=y | 5 | CONFIG_RELAY=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
10 | # CONFIG_BLK_DEV_BSG is not set | 10 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig index dda158b2c8dc..4044c9e0fb73 100644 --- a/arch/mips/configs/db1000_defconfig +++ b/arch/mips/configs/db1000_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_POSIX_MQUEUE=y | |||
11 | CONFIG_TINY_RCU=y | 11 | CONFIG_TINY_RCU=y |
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_KALLSYMS is not set | 15 | # CONFIG_KALLSYMS is not set |
16 | # CONFIG_PCSPKR_PLATFORM is not set | 16 | # CONFIG_PCSPKR_PLATFORM is not set |
17 | # CONFIG_VM_EVENT_COUNTERS is not set | 17 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig index 7e4fc76df538..c6b49938ee84 100644 --- a/arch/mips/configs/db1100_defconfig +++ b/arch/mips/configs/db1100_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_SYSVIPC=y | |||
11 | CONFIG_POSIX_MQUEUE=y | 11 | CONFIG_POSIX_MQUEUE=y |
12 | CONFIG_TINY_RCU=y | 12 | CONFIG_TINY_RCU=y |
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_SYSCTL_SYSCALL is not set | 15 | # CONFIG_SYSCTL_SYSCALL is not set |
16 | # CONFIG_KALLSYMS is not set | 16 | # CONFIG_KALLSYMS is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig index 6fe205fa7b61..1f69249b839a 100644 --- a/arch/mips/configs/db1200_defconfig +++ b/arch/mips/configs/db1200_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_SYSVIPC=y | |||
12 | CONFIG_POSIX_MQUEUE=y | 12 | CONFIG_POSIX_MQUEUE=y |
13 | CONFIG_TINY_RCU=y | 13 | CONFIG_TINY_RCU=y |
14 | CONFIG_LOG_BUF_SHIFT=14 | 14 | CONFIG_LOG_BUF_SHIFT=14 |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | # CONFIG_SYSCTL_SYSCALL is not set | 16 | # CONFIG_SYSCTL_SYSCALL is not set |
17 | # CONFIG_KALLSYMS is not set | 17 | # CONFIG_KALLSYMS is not set |
18 | # CONFIG_PCSPKR_PLATFORM is not set | 18 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig index a741c55448d0..b6e21c7cb6bd 100644 --- a/arch/mips/configs/db1500_defconfig +++ b/arch/mips/configs/db1500_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_LOCALVERSION="-db1500" | |||
10 | CONFIG_KERNEL_LZMA=y | 10 | CONFIG_KERNEL_LZMA=y |
11 | CONFIG_SYSVIPC=y | 11 | CONFIG_SYSVIPC=y |
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | # CONFIG_KALLSYMS is not set | 14 | # CONFIG_KALLSYMS is not set |
15 | # CONFIG_PCSPKR_PLATFORM is not set | 15 | # CONFIG_PCSPKR_PLATFORM is not set |
16 | # CONFIG_VM_EVENT_COUNTERS is not set | 16 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig index cd32dd8c8008..798a553c9e80 100644 --- a/arch/mips/configs/db1550_defconfig +++ b/arch/mips/configs/db1550_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_SYSVIPC=y | |||
11 | CONFIG_POSIX_MQUEUE=y | 11 | CONFIG_POSIX_MQUEUE=y |
12 | CONFIG_TINY_RCU=y | 12 | CONFIG_TINY_RCU=y |
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_SYSCTL_SYSCALL is not set | 15 | # CONFIG_SYSCTL_SYSCALL is not set |
16 | # CONFIG_KALLSYMS is not set | 16 | # CONFIG_KALLSYMS is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig index b15bfd1e69c8..87d0340837aa 100644 --- a/arch/mips/configs/decstation_defconfig +++ b/arch/mips/configs/decstation_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig index 0b60c06a943d..0126e66d60cb 100644 --- a/arch/mips/configs/e55_defconfig +++ b/arch/mips/configs/e55_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_HOTPLUG is not set | 8 | # CONFIG_HOTPLUG is not set |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/fuloong2e_defconfig b/arch/mips/configs/fuloong2e_defconfig index 63944a14b816..e5b73de08fc5 100644 --- a/arch/mips/configs/fuloong2e_defconfig +++ b/arch/mips/configs/fuloong2e_defconfig | |||
@@ -17,7 +17,7 @@ CONFIG_NAMESPACES=y | |||
17 | CONFIG_USER_NS=y | 17 | CONFIG_USER_NS=y |
18 | CONFIG_PID_NS=y | 18 | CONFIG_PID_NS=y |
19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
20 | CONFIG_EMBEDDED=y | 20 | CONFIG_EXPERT=y |
21 | # CONFIG_PCSPKR_PLATFORM is not set | 21 | # CONFIG_PCSPKR_PLATFORM is not set |
22 | # CONFIG_COMPAT_BRK is not set | 22 | # CONFIG_COMPAT_BRK is not set |
23 | CONFIG_SLAB=y | 23 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/gpr_defconfig b/arch/mips/configs/gpr_defconfig index 53edc134f274..48a40aefaf58 100644 --- a/arch/mips/configs/gpr_defconfig +++ b/arch/mips/configs/gpr_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_PROFILING=y | 16 | CONFIG_PROFILING=y |
17 | CONFIG_MODULES=y | 17 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig index 36de199f4c27..d1606569b001 100644 --- a/arch/mips/configs/ip22_defconfig +++ b/arch/mips/configs/ip22_defconfig | |||
@@ -17,7 +17,7 @@ CONFIG_IPC_NS=y | |||
17 | CONFIG_USER_NS=y | 17 | CONFIG_USER_NS=y |
18 | CONFIG_PID_NS=y | 18 | CONFIG_PID_NS=y |
19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 19 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
20 | CONFIG_EMBEDDED=y | 20 | CONFIG_EXPERT=y |
21 | # CONFIG_HOTPLUG is not set | 21 | # CONFIG_HOTPLUG is not set |
22 | # CONFIG_PCSPKR_PLATFORM is not set | 22 | # CONFIG_PCSPKR_PLATFORM is not set |
23 | # CONFIG_COMPAT_BRK is not set | 23 | # CONFIG_COMPAT_BRK is not set |
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index 4b16c48b0c36..0e36abcd39cc 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_defconfig | |||
@@ -15,7 +15,7 @@ CONFIG_CGROUPS=y | |||
15 | CONFIG_CPUSETS=y | 15 | CONFIG_CPUSETS=y |
16 | CONFIG_RELAY=y | 16 | CONFIG_RELAY=y |
17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
18 | CONFIG_EMBEDDED=y | 18 | CONFIG_EXPERT=y |
19 | # CONFIG_PCSPKR_PLATFORM is not set | 19 | # CONFIG_PCSPKR_PLATFORM is not set |
20 | CONFIG_SLAB=y | 20 | CONFIG_SLAB=y |
21 | CONFIG_MODULES=y | 21 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/ip28_defconfig b/arch/mips/configs/ip28_defconfig index 98f2c7736e87..4dbf6269b3f9 100644 --- a/arch/mips/configs/ip28_defconfig +++ b/arch/mips/configs/ip28_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | |||
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | CONFIG_RELAY=y | 9 | CONFIG_RELAY=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_HOTPLUG is not set | 12 | # CONFIG_HOTPLUG is not set |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
14 | CONFIG_MODULES=y | 14 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig index 5bea99b26fa8..7bbd52194fc3 100644 --- a/arch/mips/configs/ip32_defconfig +++ b/arch/mips/configs/ip32_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_SYSFS_DEPRECATED_V2=y | 11 | CONFIG_SYSFS_DEPRECATED_V2=y |
12 | CONFIG_RELAY=y | 12 | CONFIG_RELAY=y |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | CONFIG_SLAB=y | 14 | CONFIG_SLAB=y |
15 | CONFIG_PROFILING=y | 15 | CONFIG_PROFILING=y |
16 | CONFIG_OPROFILE=m | 16 | CONFIG_OPROFILE=m |
diff --git a/arch/mips/configs/jazz_defconfig b/arch/mips/configs/jazz_defconfig index 6ae46bcdb20b..92a60aecad5c 100644 --- a/arch/mips/configs/jazz_defconfig +++ b/arch/mips/configs/jazz_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | # CONFIG_SYSCTL_SYSCALL is not set | 14 | # CONFIG_SYSCTL_SYSCALL is not set |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig index bf24e9309b9c..db5705e18b36 100644 --- a/arch/mips/configs/jmr3927_defconfig +++ b/arch/mips/configs/jmr3927_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_TOSHIBA_JMR3927=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_HOTPLUG is not set | 8 | # CONFIG_HOTPLUG is not set |
9 | # CONFIG_PCSPKR_PLATFORM is not set | 9 | # CONFIG_PCSPKR_PLATFORM is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/lasat_defconfig b/arch/mips/configs/lasat_defconfig index 6447261c61d0..d9f3db29ab95 100644 --- a/arch/mips/configs/lasat_defconfig +++ b/arch/mips/configs/lasat_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_HZ_1000=y | |||
8 | CONFIG_EXPERIMENTAL=y | 8 | CONFIG_EXPERIMENTAL=y |
9 | CONFIG_SYSVIPC=y | 9 | CONFIG_SYSVIPC=y |
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_SYSCTL_SYSCALL is not set | 12 | # CONFIG_SYSCTL_SYSCALL is not set |
13 | # CONFIG_KALLSYMS is not set | 13 | # CONFIG_KALLSYMS is not set |
14 | # CONFIG_HOTPLUG is not set | 14 | # CONFIG_HOTPLUG is not set |
diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemote2f_defconfig index f7033f3a5822..167c1d07b809 100644 --- a/arch/mips/configs/lemote2f_defconfig +++ b/arch/mips/configs/lemote2f_defconfig | |||
@@ -21,7 +21,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
21 | CONFIG_RD_BZIP2=y | 21 | CONFIG_RD_BZIP2=y |
22 | CONFIG_RD_LZMA=y | 22 | CONFIG_RD_LZMA=y |
23 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 23 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
24 | CONFIG_EMBEDDED=y | 24 | CONFIG_EXPERT=y |
25 | CONFIG_PROFILING=y | 25 | CONFIG_PROFILING=y |
26 | CONFIG_OPROFILE=m | 26 | CONFIG_OPROFILE=m |
27 | CONFIG_MODULES=y | 27 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig index 9d03b68aece8..7270f3183bda 100644 --- a/arch/mips/configs/malta_defconfig +++ b/arch/mips/configs/malta_defconfig | |||
@@ -15,7 +15,7 @@ CONFIG_UTS_NS=y | |||
15 | CONFIG_IPC_NS=y | 15 | CONFIG_IPC_NS=y |
16 | CONFIG_PID_NS=y | 16 | CONFIG_PID_NS=y |
17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
18 | CONFIG_EMBEDDED=y | 18 | CONFIG_EXPERT=y |
19 | # CONFIG_SYSCTL_SYSCALL is not set | 19 | # CONFIG_SYSCTL_SYSCALL is not set |
20 | # CONFIG_COMPAT_BRK is not set | 20 | # CONFIG_COMPAT_BRK is not set |
21 | CONFIG_SLAB=y | 21 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/markeins_defconfig b/arch/mips/configs/markeins_defconfig index 86bf001babe9..9c9a123016c0 100644 --- a/arch/mips/configs/markeins_defconfig +++ b/arch/mips/configs/markeins_defconfig | |||
@@ -9,7 +9,7 @@ CONFIG_IKCONFIG=y | |||
9 | CONFIG_IKCONFIG_PROC=y | 9 | CONFIG_IKCONFIG_PROC=y |
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 11 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
12 | CONFIG_EMBEDDED=y | 12 | CONFIG_EXPERT=y |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
14 | CONFIG_MODULES=y | 14 | CONFIG_MODULES=y |
15 | CONFIG_MODULE_UNLOAD=y | 15 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig index 4925f507dc21..b5ad7387bbb0 100644 --- a/arch/mips/configs/mipssim_defconfig +++ b/arch/mips/configs/mipssim_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_EXPERIMENTAL=y | |||
7 | CONFIG_SYSVIPC=y | 7 | CONFIG_SYSVIPC=y |
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
12 | CONFIG_MODULES=y | 12 | CONFIG_MODULES=y |
13 | CONFIG_MODULE_UNLOAD=y | 13 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig index efb779f8f6fe..c16de9812920 100644 --- a/arch/mips/configs/mpc30x_defconfig +++ b/arch/mips/configs/mpc30x_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_RELAY=y | 6 | CONFIG_RELAY=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/msp71xx_defconfig b/arch/mips/configs/msp71xx_defconfig index ab051458452b..d1142e9cd9a1 100644 --- a/arch/mips/configs/msp71xx_defconfig +++ b/arch/mips/configs/msp71xx_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_LOCALVERSION="-pmc" | |||
8 | CONFIG_SYSVIPC=y | 8 | CONFIG_SYSVIPC=y |
9 | CONFIG_LOG_BUF_SHIFT=14 | 9 | CONFIG_LOG_BUF_SHIFT=14 |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_SHMEM is not set | 12 | # CONFIG_SHMEM is not set |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
14 | CONFIG_MODULES=y | 14 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig index 814699754e0d..a97a42c6b2c8 100644 --- a/arch/mips/configs/mtx1_defconfig +++ b/arch/mips/configs/mtx1_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_AUDIT=y | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_PROFILING=y | 16 | CONFIG_PROFILING=y |
17 | CONFIG_OPROFILE=m | 17 | CONFIG_OPROFILE=m |
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig index 1597aa1842fa..75eb1b1f316c 100644 --- a/arch/mips/configs/pb1100_defconfig +++ b/arch/mips/configs/pb1100_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_SYSVIPC=y | |||
11 | CONFIG_POSIX_MQUEUE=y | 11 | CONFIG_POSIX_MQUEUE=y |
12 | CONFIG_TINY_RCU=y | 12 | CONFIG_TINY_RCU=y |
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_SYSCTL_SYSCALL is not set | 15 | # CONFIG_SYSCTL_SYSCALL is not set |
16 | # CONFIG_KALLSYMS is not set | 16 | # CONFIG_KALLSYMS is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/pb1200_defconfig b/arch/mips/configs/pb1200_defconfig index 96f0d43cf08b..dcbe2704e5ed 100644 --- a/arch/mips/configs/pb1200_defconfig +++ b/arch/mips/configs/pb1200_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_SYSVIPC=y | |||
12 | CONFIG_POSIX_MQUEUE=y | 12 | CONFIG_POSIX_MQUEUE=y |
13 | CONFIG_TINY_RCU=y | 13 | CONFIG_TINY_RCU=y |
14 | CONFIG_LOG_BUF_SHIFT=14 | 14 | CONFIG_LOG_BUF_SHIFT=14 |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | # CONFIG_SYSCTL_SYSCALL is not set | 16 | # CONFIG_SYSCTL_SYSCALL is not set |
17 | # CONFIG_KALLSYMS is not set | 17 | # CONFIG_KALLSYMS is not set |
18 | # CONFIG_PCSPKR_PLATFORM is not set | 18 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig index b4bfd4823458..fa00487146f8 100644 --- a/arch/mips/configs/pb1500_defconfig +++ b/arch/mips/configs/pb1500_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_SYSVIPC=y | |||
11 | CONFIG_POSIX_MQUEUE=y | 11 | CONFIG_POSIX_MQUEUE=y |
12 | CONFIG_TINY_RCU=y | 12 | CONFIG_TINY_RCU=y |
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_SYSCTL_SYSCALL is not set | 15 | # CONFIG_SYSCTL_SYSCALL is not set |
16 | # CONFIG_KALLSYMS is not set | 16 | # CONFIG_KALLSYMS is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig index 5a660024d22a..e83d6497e8b4 100644 --- a/arch/mips/configs/pb1550_defconfig +++ b/arch/mips/configs/pb1550_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_SYSVIPC=y | |||
11 | CONFIG_POSIX_MQUEUE=y | 11 | CONFIG_POSIX_MQUEUE=y |
12 | CONFIG_TINY_RCU=y | 12 | CONFIG_TINY_RCU=y |
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | # CONFIG_SYSCTL_SYSCALL is not set | 15 | # CONFIG_SYSCTL_SYSCALL is not set |
16 | # CONFIG_KALLSYMS is not set | 16 | # CONFIG_KALLSYMS is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/pnx8335-stb225_defconfig b/arch/mips/configs/pnx8335-stb225_defconfig index 39926a1a96b6..f2925769dfa3 100644 --- a/arch/mips/configs/pnx8335-stb225_defconfig +++ b/arch/mips/configs/pnx8335-stb225_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_EXPERIMENTAL=y | |||
11 | CONFIG_SYSVIPC=y | 11 | CONFIG_SYSVIPC=y |
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | CONFIG_SYSFS_DEPRECATED_V2=y | 13 | CONFIG_SYSFS_DEPRECATED_V2=y |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
17 | CONFIG_MODULE_UNLOAD=y | 17 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig index 3376bc8616cc..1d1f2067f3e6 100644 --- a/arch/mips/configs/pnx8550-jbs_defconfig +++ b/arch/mips/configs/pnx8550-jbs_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | 10 | # CONFIG_SYSCTL_SYSCALL is not set |
11 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
12 | CONFIG_MODULES=y | 12 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/pnx8550-stb810_defconfig b/arch/mips/configs/pnx8550-stb810_defconfig index 6514f1bf0afb..15c66a571f99 100644 --- a/arch/mips/configs/pnx8550-stb810_defconfig +++ b/arch/mips/configs/pnx8550-stb810_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | 10 | # CONFIG_SYSCTL_SYSCALL is not set |
11 | # CONFIG_HOTPLUG is not set | 11 | # CONFIG_HOTPLUG is not set |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/powertv_defconfig b/arch/mips/configs/powertv_defconfig index f1f58e91dd80..3b0b6e8c8533 100644 --- a/arch/mips/configs/powertv_defconfig +++ b/arch/mips/configs/powertv_defconfig | |||
@@ -14,7 +14,7 @@ CONFIG_RELAY=y | |||
14 | CONFIG_BLK_DEV_INITRD=y | 14 | CONFIG_BLK_DEV_INITRD=y |
15 | # CONFIG_RD_GZIP is not set | 15 | # CONFIG_RD_GZIP is not set |
16 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 16 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
17 | CONFIG_EMBEDDED=y | 17 | CONFIG_EXPERT=y |
18 | # CONFIG_SYSCTL_SYSCALL is not set | 18 | # CONFIG_SYSCTL_SYSCALL is not set |
19 | CONFIG_KALLSYMS_ALL=y | 19 | CONFIG_KALLSYMS_ALL=y |
20 | # CONFIG_PCSPKR_PLATFORM is not set | 20 | # CONFIG_PCSPKR_PLATFORM is not set |
diff --git a/arch/mips/configs/rb532_defconfig b/arch/mips/configs/rb532_defconfig index d6457bc38c71..55902d9cd0f2 100644 --- a/arch/mips/configs/rb532_defconfig +++ b/arch/mips/configs/rb532_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_IKCONFIG_PROC=y | |||
13 | CONFIG_LOG_BUF_SHIFT=14 | 13 | CONFIG_LOG_BUF_SHIFT=14 |
14 | CONFIG_SYSFS_DEPRECATED_V2=y | 14 | CONFIG_SYSFS_DEPRECATED_V2=y |
15 | CONFIG_BLK_DEV_INITRD=y | 15 | CONFIG_BLK_DEV_INITRD=y |
16 | CONFIG_EMBEDDED=y | 16 | CONFIG_EXPERT=y |
17 | # CONFIG_KALLSYMS is not set | 17 | # CONFIG_KALLSYMS is not set |
18 | # CONFIG_ELF_CORE is not set | 18 | # CONFIG_ELF_CORE is not set |
19 | # CONFIG_VM_EVENT_COUNTERS is not set | 19 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/mips/configs/rbtx49xx_defconfig b/arch/mips/configs/rbtx49xx_defconfig index 29acfab31516..9cba856277ff 100644 --- a/arch/mips/configs/rbtx49xx_defconfig +++ b/arch/mips/configs/rbtx49xx_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_IKCONFIG_PROC=y | |||
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | CONFIG_SYSFS_DEPRECATED_V2=y | 13 | CONFIG_SYSFS_DEPRECATED_V2=y |
14 | CONFIG_BLK_DEV_INITRD=y | 14 | CONFIG_BLK_DEV_INITRD=y |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | # CONFIG_HOTPLUG is not set | 16 | # CONFIG_HOTPLUG is not set |
17 | # CONFIG_PCSPKR_PLATFORM is not set | 17 | # CONFIG_PCSPKR_PLATFORM is not set |
18 | # CONFIG_EPOLL is not set | 18 | # CONFIG_EPOLL is not set |
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig index 2b3e47653f60..2c0230e76d20 100644 --- a/arch/mips/configs/rm200_defconfig +++ b/arch/mips/configs/rm200_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_IKCONFIG_PROC=y | |||
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | CONFIG_RELAY=y | 13 | CONFIG_RELAY=y |
14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | CONFIG_SLAB=y | 16 | CONFIG_SLAB=y |
17 | CONFIG_MODULES=y | 17 | CONFIG_MODULES=y |
18 | CONFIG_MODULE_UNLOAD=y | 18 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig index 64840d717750..5b0463ef9389 100644 --- a/arch/mips/configs/sb1250-swarm_defconfig +++ b/arch/mips/configs/sb1250-swarm_defconfig | |||
@@ -15,7 +15,7 @@ CONFIG_RELAY=y | |||
15 | CONFIG_NAMESPACES=y | 15 | CONFIG_NAMESPACES=y |
16 | CONFIG_BLK_DEV_INITRD=y | 16 | CONFIG_BLK_DEV_INITRD=y |
17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
18 | CONFIG_EMBEDDED=y | 18 | CONFIG_EXPERT=y |
19 | # CONFIG_COMPAT_BRK is not set | 19 | # CONFIG_COMPAT_BRK is not set |
20 | CONFIG_SLAB=y | 20 | CONFIG_SLAB=y |
21 | CONFIG_MODULES=y | 21 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig index d9be37fc9cb7..30036b4cbeb1 100644 --- a/arch/mips/configs/tb0219_defconfig +++ b/arch/mips/configs/tb0219_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_PCSPKR_PLATFORM is not set | 9 | # CONFIG_PCSPKR_PLATFORM is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig index 3d25dd08907b..81bfa1d4d8e3 100644 --- a/arch/mips/configs/tb0226_defconfig +++ b/arch/mips/configs/tb0226_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_PCSPKR_PLATFORM is not set | 9 | # CONFIG_PCSPKR_PLATFORM is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig index be697c9b23c6..c415c4f0e5c2 100644 --- a/arch/mips/configs/tb0287_defconfig +++ b/arch/mips/configs/tb0287_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 5 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_PCSPKR_PLATFORM is not set | 9 | # CONFIG_PCSPKR_PLATFORM is not set |
10 | CONFIG_SLAB=y | 10 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig index 7ec9287254d8..ee4b2be43c44 100644 --- a/arch/mips/configs/workpad_defconfig +++ b/arch/mips/configs/workpad_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mips/configs/wrppmc_defconfig b/arch/mips/configs/wrppmc_defconfig index a231b73b1a40..44a451be359e 100644 --- a/arch/mips/configs/wrppmc_defconfig +++ b/arch/mips/configs/wrppmc_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | 11 | CONFIG_KALLSYMS_EXTRA_PASS=y |
12 | # CONFIG_EPOLL is not set | 12 | # CONFIG_EPOLL is not set |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig index ab3a3dcec04d..f72d305a3f08 100644 --- a/arch/mips/configs/yosemite_defconfig +++ b/arch/mips/configs/yosemite_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG=y | |||
8 | CONFIG_IKCONFIG_PROC=y | 8 | CONFIG_IKCONFIG_PROC=y |
9 | CONFIG_LOG_BUF_SHIFT=14 | 9 | CONFIG_LOG_BUF_SHIFT=14 |
10 | CONFIG_RELAY=y | 10 | CONFIG_RELAY=y |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | CONFIG_SLAB=y | 12 | CONFIG_SLAB=y |
13 | CONFIG_MODULES=y | 13 | CONFIG_MODULES=y |
14 | CONFIG_MODULE_UNLOAD=y | 14 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/mn10300/configs/asb2303_defconfig b/arch/mn10300/configs/asb2303_defconfig index 3f749b69ca71..1fd41ec1dfb5 100644 --- a/arch/mn10300/configs/asb2303_defconfig +++ b/arch/mn10300/configs/asb2303_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
4 | CONFIG_TINY_RCU=y | 4 | CONFIG_TINY_RCU=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_VM_EVENT_COUNTERS is not set | 10 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/mn10300/configs/asb2364_defconfig b/arch/mn10300/configs/asb2364_defconfig index 83ce2f27b12a..31d76261a3d5 100644 --- a/arch/mn10300/configs/asb2364_defconfig +++ b/arch/mn10300/configs/asb2364_defconfig | |||
@@ -15,7 +15,7 @@ CONFIG_CGROUP_CPUACCT=y | |||
15 | CONFIG_RESOURCE_COUNTERS=y | 15 | CONFIG_RESOURCE_COUNTERS=y |
16 | CONFIG_RELAY=y | 16 | CONFIG_RELAY=y |
17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 17 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
18 | CONFIG_EMBEDDED=y | 18 | CONFIG_EXPERT=y |
19 | # CONFIG_KALLSYMS is not set | 19 | # CONFIG_KALLSYMS is not set |
20 | # CONFIG_VM_EVENT_COUNTERS is not set | 20 | # CONFIG_VM_EVENT_COUNTERS is not set |
21 | CONFIG_SLAB=y | 21 | CONFIG_SLAB=y |
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig index f9305f30603a..b647b182dacc 100644 --- a/arch/parisc/configs/a500_defconfig +++ b/arch/parisc/configs/a500_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_LOG_BUF_SHIFT=16 | |||
8 | CONFIG_SYSFS_DEPRECATED_V2=y | 8 | CONFIG_SYSFS_DEPRECATED_V2=y |
9 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | CONFIG_KALLSYMS_ALL=y | 12 | CONFIG_KALLSYMS_ALL=y |
13 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
14 | CONFIG_PROFILING=y | 14 | CONFIG_PROFILING=y |
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig index 628d3e022535..311ca367b622 100644 --- a/arch/parisc/configs/c3000_defconfig +++ b/arch/parisc/configs/c3000_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=16 | 6 | CONFIG_LOG_BUF_SHIFT=16 |
7 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_KALLSYMS_ALL=y | 10 | CONFIG_KALLSYMS_ALL=y |
11 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
12 | CONFIG_PROFILING=y | 12 | CONFIG_PROFILING=y |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 96deec63bcf3..89178164af5e 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -368,7 +368,7 @@ INSTALL := install | |||
368 | extra-installed := $(patsubst $(obj)/%, $(DESTDIR)$(WRAPPER_OBJDIR)/%, $(extra-y)) | 368 | extra-installed := $(patsubst $(obj)/%, $(DESTDIR)$(WRAPPER_OBJDIR)/%, $(extra-y)) |
369 | hostprogs-installed := $(patsubst %, $(DESTDIR)$(WRAPPER_BINDIR)/%, $(hostprogs-y)) | 369 | hostprogs-installed := $(patsubst %, $(DESTDIR)$(WRAPPER_BINDIR)/%, $(hostprogs-y)) |
370 | wrapper-installed := $(DESTDIR)$(WRAPPER_BINDIR)/wrapper | 370 | wrapper-installed := $(DESTDIR)$(WRAPPER_BINDIR)/wrapper |
371 | dts-installed := $(patsubst $(obj)/dts/%, $(DESTDIR)$(WRAPPER_DTSDIR)/%, $(wildcard $(obj)/dts/*.dts)) | 371 | dts-installed := $(patsubst $(dtstree)/%, $(DESTDIR)$(WRAPPER_DTSDIR)/%, $(wildcard $(dtstree)/*.dts)) |
372 | 372 | ||
373 | all-installed := $(extra-installed) $(hostprogs-installed) $(wrapper-installed) $(dts-installed) | 373 | all-installed := $(extra-installed) $(hostprogs-installed) $(wrapper-installed) $(dts-installed) |
374 | 374 | ||
diff --git a/arch/powerpc/boot/dts/mpc8308rdb.dts b/arch/powerpc/boot/dts/mpc8308rdb.dts index d3db02f98ddd..a0bd1881081e 100644 --- a/arch/powerpc/boot/dts/mpc8308rdb.dts +++ b/arch/powerpc/boot/dts/mpc8308rdb.dts | |||
@@ -109,7 +109,7 @@ | |||
109 | #address-cells = <1>; | 109 | #address-cells = <1>; |
110 | #size-cells = <1>; | 110 | #size-cells = <1>; |
111 | device_type = "soc"; | 111 | device_type = "soc"; |
112 | compatible = "fsl,mpc8315-immr", "simple-bus"; | 112 | compatible = "fsl,mpc8308-immr", "simple-bus"; |
113 | ranges = <0 0xe0000000 0x00100000>; | 113 | ranges = <0 0xe0000000 0x00100000>; |
114 | reg = <0xe0000000 0x00000200>; | 114 | reg = <0xe0000000 0x00000200>; |
115 | bus-frequency = <0>; | 115 | bus-frequency = <0>; |
diff --git a/arch/powerpc/boot/dts/p1022ds.dts b/arch/powerpc/boot/dts/p1022ds.dts index 2bbecbb4cbf9..69422eb24d97 100644 --- a/arch/powerpc/boot/dts/p1022ds.dts +++ b/arch/powerpc/boot/dts/p1022ds.dts | |||
@@ -291,13 +291,13 @@ | |||
291 | ranges = <0x0 0xc100 0x200>; | 291 | ranges = <0x0 0xc100 0x200>; |
292 | cell-index = <1>; | 292 | cell-index = <1>; |
293 | dma00: dma-channel@0 { | 293 | dma00: dma-channel@0 { |
294 | compatible = "fsl,eloplus-dma-channel"; | 294 | compatible = "fsl,ssi-dma-channel"; |
295 | reg = <0x0 0x80>; | 295 | reg = <0x0 0x80>; |
296 | cell-index = <0>; | 296 | cell-index = <0>; |
297 | interrupts = <76 2>; | 297 | interrupts = <76 2>; |
298 | }; | 298 | }; |
299 | dma01: dma-channel@80 { | 299 | dma01: dma-channel@80 { |
300 | compatible = "fsl,eloplus-dma-channel"; | 300 | compatible = "fsl,ssi-dma-channel"; |
301 | reg = <0x80 0x80>; | 301 | reg = <0x80 0x80>; |
302 | cell-index = <1>; | 302 | cell-index = <1>; |
303 | interrupts = <77 2>; | 303 | interrupts = <77 2>; |
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig index 97fedceaa30b..4182c772340b 100644 --- a/arch/powerpc/configs/40x/acadia_defconfig +++ b/arch/powerpc/configs/40x/acadia_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig index 33b3c24f4edd..2dbb293163f5 100644 --- a/arch/powerpc/configs/40x/ep405_defconfig +++ b/arch/powerpc/configs/40x/ep405_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig index 4613079a0ab1..ebeb4accad65 100644 --- a/arch/powerpc/configs/40x/hcu4_defconfig +++ b/arch/powerpc/configs/40x/hcu4_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig index 34b8c1a1e752..532ea9d93a15 100644 --- a/arch/powerpc/configs/40x/kilauea_defconfig +++ b/arch/powerpc/configs/40x/kilauea_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig index 651be09136fa..3c142ac1b344 100644 --- a/arch/powerpc/configs/40x/makalu_defconfig +++ b/arch/powerpc/configs/40x/makalu_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig index ded455e18339..ff57d4828ffc 100644 --- a/arch/powerpc/configs/40x/walnut_defconfig +++ b/arch/powerpc/configs/40x/walnut_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig index 63746a041d6b..3ed16d5c909d 100644 --- a/arch/powerpc/configs/44x/arches_defconfig +++ b/arch/powerpc/configs/44x/arches_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig index f5f2a4e3e21b..b1b7d2c5c059 100644 --- a/arch/powerpc/configs/44x/bamboo_defconfig +++ b/arch/powerpc/configs/44x/bamboo_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/bluestone_defconfig b/arch/powerpc/configs/44x/bluestone_defconfig index ac65b48b8ccd..30a0a8e08fdd 100644 --- a/arch/powerpc/configs/44x/bluestone_defconfig +++ b/arch/powerpc/configs/44x/bluestone_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_POSIX_MQUEUE=y | 4 | CONFIG_POSIX_MQUEUE=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_VM_EVENT_COUNTERS is not set | 8 | # CONFIG_VM_EVENT_COUNTERS is not set |
9 | # CONFIG_PCI_QUIRKS is not set | 9 | # CONFIG_PCI_QUIRKS is not set |
10 | # CONFIG_COMPAT_BRK is not set | 10 | # CONFIG_COMPAT_BRK is not set |
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig index 17e4dd98eed7..a46942aac695 100644 --- a/arch/powerpc/configs/44x/canyonlands_defconfig +++ b/arch/powerpc/configs/44x/canyonlands_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig index fedd03fdf5d5..07d77e51f1ba 100644 --- a/arch/powerpc/configs/44x/ebony_defconfig +++ b/arch/powerpc/configs/44x/ebony_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/44x/eiger_defconfig b/arch/powerpc/configs/44x/eiger_defconfig index ebff7011282e..2ce7e9aff09e 100644 --- a/arch/powerpc/configs/44x/eiger_defconfig +++ b/arch/powerpc/configs/44x/eiger_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/icon_defconfig b/arch/powerpc/configs/44x/icon_defconfig index 865e93fb41fd..18730ff9de7c 100644 --- a/arch/powerpc/configs/44x/icon_defconfig +++ b/arch/powerpc/configs/44x/icon_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
12 | # CONFIG_BLK_DEV_BSG is not set | 12 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/iss476-smp_defconfig b/arch/powerpc/configs/44x/iss476-smp_defconfig index 8ece4c774415..92f863ac8443 100644 --- a/arch/powerpc/configs/44x/iss476-smp_defconfig +++ b/arch/powerpc/configs/44x/iss476-smp_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
7 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | CONFIG_KALLSYMS_ALL=y | 11 | CONFIG_KALLSYMS_ALL=y |
12 | CONFIG_KALLSYMS_EXTRA_PASS=y | 12 | CONFIG_KALLSYMS_EXTRA_PASS=y |
13 | CONFIG_PROFILING=y | 13 | CONFIG_PROFILING=y |
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig index 4ca9b4873c51..34c09144a699 100644 --- a/arch/powerpc/configs/44x/katmai_defconfig +++ b/arch/powerpc/configs/44x/katmai_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig index e3b65d24207e..21c33faf61a2 100644 --- a/arch/powerpc/configs/44x/rainier_defconfig +++ b/arch/powerpc/configs/44x/rainier_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/redwood_defconfig b/arch/powerpc/configs/44x/redwood_defconfig index 64cd0f3421a9..01cc2b1a7f9a 100644 --- a/arch/powerpc/configs/44x/redwood_defconfig +++ b/arch/powerpc/configs/44x/redwood_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig index 01d03367917e..dfcffede16ad 100644 --- a/arch/powerpc/configs/44x/sam440ep_defconfig +++ b/arch/powerpc/configs/44x/sam440ep_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 10 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 11 | CONFIG_MODULE_UNLOAD=y |
12 | # CONFIG_BLK_DEV_BSG is not set | 12 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig index 89b2f9626137..47e399f2892f 100644 --- a/arch/powerpc/configs/44x/sequoia_defconfig +++ b/arch/powerpc/configs/44x/sequoia_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig index e3386cf6f5b7..a6a002ed5681 100644 --- a/arch/powerpc/configs/44x/taishan_defconfig +++ b/arch/powerpc/configs/44x/taishan_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig index 9c13b9dffafa..6cf9d6614805 100644 --- a/arch/powerpc/configs/44x/warp_defconfig +++ b/arch/powerpc/configs/44x/warp_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | |||
8 | CONFIG_LOG_BUF_SHIFT=14 | 8 | CONFIG_LOG_BUF_SHIFT=14 |
9 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | CONFIG_MODULES=y | 12 | CONFIG_MODULES=y |
13 | CONFIG_MODULE_UNLOAD=y | 13 | CONFIG_MODULE_UNLOAD=y |
14 | # CONFIG_BLK_DEV_BSG is not set | 14 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig index f234c4d0b15c..69b57daf402e 100644 --- a/arch/powerpc/configs/52xx/cm5200_defconfig +++ b/arch/powerpc/configs/52xx/cm5200_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig index a4a795c80740..f3638ae0a627 100644 --- a/arch/powerpc/configs/52xx/lite5200b_defconfig +++ b/arch/powerpc/configs/52xx/lite5200b_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig index 20d53a1aa7e4..6828eda02bdc 100644 --- a/arch/powerpc/configs/52xx/motionpro_defconfig +++ b/arch/powerpc/configs/52xx/motionpro_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig index 6bd58338bf1a..7f7e4a878602 100644 --- a/arch/powerpc/configs/52xx/pcm030_defconfig +++ b/arch/powerpc/configs/52xx/pcm030_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG=y | |||
8 | CONFIG_IKCONFIG_PROC=y | 8 | CONFIG_IKCONFIG_PROC=y |
9 | CONFIG_LOG_BUF_SHIFT=14 | 9 | CONFIG_LOG_BUF_SHIFT=14 |
10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 10 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | # CONFIG_SYSCTL_SYSCALL is not set | 12 | # CONFIG_SYSCTL_SYSCALL is not set |
13 | # CONFIG_VM_EVENT_COUNTERS is not set | 13 | # CONFIG_VM_EVENT_COUNTERS is not set |
14 | CONFIG_SLAB=y | 14 | CONFIG_SLAB=y |
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig index 3a1f70292d9d..959cd2cfc275 100644 --- a/arch/powerpc/configs/52xx/tqm5200_defconfig +++ b/arch/powerpc/configs/52xx/tqm5200_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_SYSCTL_SYSCALL is not set | 7 | # CONFIG_SYSCTL_SYSCALL is not set |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_EPOLL is not set | 9 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig index eed42d8919e8..d2762d9dcb8e 100644 --- a/arch/powerpc/configs/83xx/asp8347_defconfig +++ b/arch/powerpc/configs/83xx/asp8347_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/kmeter1_defconfig b/arch/powerpc/configs/83xx/kmeter1_defconfig index e43ecb27dfd7..7a7b731c5735 100644 --- a/arch/powerpc/configs/83xx/kmeter1_defconfig +++ b/arch/powerpc/configs/83xx/kmeter1_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_POSIX_MQUEUE=y | 4 | CONFIG_POSIX_MQUEUE=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_HOTPLUG is not set | 7 | # CONFIG_HOTPLUG is not set |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig index c2e6ab51d335..c683bce4c26e 100644 --- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig index 1d3b20065913..a721cd3d793f 100644 --- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig index 91fe73bd5ad2..a5699a1f7d0a 100644 --- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig index 6d300f205604..b4da1a7e6449 100644 --- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig index b236a67e01fe..291f8221d5a6 100644 --- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig index 001dead3cde9..f8b228aaa03a 100644 --- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig index 9dccefca00c3..99660c062191 100644 --- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig index d4b165d7d294..10b5c4cd0e72 100644 --- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig index 89ba67274bda..45925d701d2a 100644 --- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig index 2ea6b405046a..f367985be6f7 100644 --- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_SLAB=y | 7 | CONFIG_SLAB=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig index bffe3c775030..414eda381591 100644 --- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_SLAB=y | 7 | CONFIG_SLAB=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig index fa5c9eefc9ad..6d6463fe06fc 100644 --- a/arch/powerpc/configs/83xx/sbc834x_defconfig +++ b/arch/powerpc/configs/83xx/sbc834x_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_KALLSYMS is not set | 7 | # CONFIG_KALLSYMS is not set |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig index 385b1af37d75..8f7c1061891a 100644 --- a/arch/powerpc/configs/85xx/ksi8560_defconfig +++ b/arch/powerpc/configs/85xx/ksi8560_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | CONFIG_KSI8560=y | 9 | CONFIG_KSI8560=y |
10 | CONFIG_CPM2=y | 10 | CONFIG_CPM2=y |
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig index 222b704c1f4b..55e0725500dc 100644 --- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig +++ b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | CONFIG_MPC8540_ADS=y | 9 | CONFIG_MPC8540_ADS=y |
10 | CONFIG_NO_HZ=y | 10 | CONFIG_NO_HZ=y |
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig index 619702de9477..d724095530a6 100644 --- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig +++ b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | CONFIG_MPC8560_ADS=y | 9 | CONFIG_MPC8560_ADS=y |
10 | CONFIG_BINFMT_MISC=y | 10 | CONFIG_BINFMT_MISC=y |
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig index 6bf56e83f957..4b44beaa21ae 100644 --- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +++ b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | CONFIG_MPC85xx_CDS=y | 9 | CONFIG_MPC85xx_CDS=y |
10 | CONFIG_NO_HZ=y | 10 | CONFIG_NO_HZ=y |
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig index a9a17d055766..5b2b651dfb98 100644 --- a/arch/powerpc/configs/85xx/sbc8548_defconfig +++ b/arch/powerpc/configs/85xx/sbc8548_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | # CONFIG_BLK_DEV_BSG is not set | 9 | # CONFIG_BLK_DEV_BSG is not set |
10 | CONFIG_SBC8548=y | 10 | CONFIG_SBC8548=y |
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig index 820e32d8c42b..f7fdb0318e4c 100644 --- a/arch/powerpc/configs/85xx/sbc8560_defconfig +++ b/arch/powerpc/configs/85xx/sbc8560_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | # CONFIG_BLK_DEV_BSG is not set | 9 | # CONFIG_BLK_DEV_BSG is not set |
10 | CONFIG_SBC8560=y | 10 | CONFIG_SBC8560=y |
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig index b6db3f47af99..77506b5d5a41 100644 --- a/arch/powerpc/configs/85xx/socrates_defconfig +++ b/arch/powerpc/configs/85xx/socrates_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=16 | 4 | CONFIG_LOG_BUF_SHIFT=16 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig index 333a41bd2a68..5d4db154bf59 100644 --- a/arch/powerpc/configs/85xx/stx_gp3_defconfig +++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODVERSIONS=y | 9 | CONFIG_MODVERSIONS=y |
10 | # CONFIG_BLK_DEV_BSG is not set | 10 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig index 33db352f847e..ddcb9f37fa1f 100644 --- a/arch/powerpc/configs/85xx/tqm8540_defconfig +++ b/arch/powerpc/configs/85xx/tqm8540_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig index f0c20dfbd4d3..981abd6d4b57 100644 --- a/arch/powerpc/configs/85xx/tqm8541_defconfig +++ b/arch/powerpc/configs/85xx/tqm8541_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig index a883450dcdfa..37b3d7227cdd 100644 --- a/arch/powerpc/configs/85xx/tqm8548_defconfig +++ b/arch/powerpc/configs/85xx/tqm8548_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
10 | # CONFIG_BLK_DEV_BSG is not set | 10 | # CONFIG_BLK_DEV_BSG is not set |
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig index ff95f90dc171..3593b320c97c 100644 --- a/arch/powerpc/configs/85xx/tqm8555_defconfig +++ b/arch/powerpc/configs/85xx/tqm8555_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig index 8d6c90ea4783..de413acc34d6 100644 --- a/arch/powerpc/configs/85xx/tqm8560_defconfig +++ b/arch/powerpc/configs/85xx/tqm8560_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_KALLSYMS is not set | 8 | # CONFIG_KALLSYMS is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_EPOLL is not set | 10 | # CONFIG_EPOLL is not set |
diff --git a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig index f53efe4a0e0c..5ea3124518fd 100644 --- a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +++ b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_IKCONFIG_PROC=y | |||
11 | CONFIG_LOG_BUF_SHIFT=14 | 11 | CONFIG_LOG_BUF_SHIFT=14 |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_KALLSYMS_ALL=y | 15 | CONFIG_KALLSYMS_ALL=y |
16 | CONFIG_KALLSYMS_EXTRA_PASS=y | 16 | CONFIG_KALLSYMS_EXTRA_PASS=y |
17 | CONFIG_MODULES=y | 17 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig index 432ebc28d25c..4b2441244eab 100644 --- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig +++ b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
17 | CONFIG_MODULE_UNLOAD=y | 17 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig index ce5e919d9b55..a360ba44b928 100644 --- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc310_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
17 | CONFIG_MODULE_UNLOAD=y | 17 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig index 589e71e6dc1c..be2829dd129f 100644 --- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
17 | CONFIG_MODULE_UNLOAD=y | 17 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig index 321fb47096d9..036bfb2d18cd 100644 --- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig +++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
12 | CONFIG_MODULES=y | 12 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig index b5e46399374e..0c9c7ed7ec75 100644 --- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig +++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_BLK_DEV_INITRD=y | 11 | CONFIG_BLK_DEV_INITRD=y |
12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | CONFIG_KALLSYMS_ALL=y | 14 | CONFIG_KALLSYMS_ALL=y |
15 | CONFIG_KALLSYMS_EXTRA_PASS=y | 15 | CONFIG_KALLSYMS_EXTRA_PASS=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig index 71145c3a64db..0a92ca045641 100644 --- a/arch/powerpc/configs/86xx/sbc8641d_defconfig +++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig | |||
@@ -11,7 +11,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
11 | CONFIG_RELAY=y | 11 | CONFIG_RELAY=y |
12 | CONFIG_BLK_DEV_INITRD=y | 12 | CONFIG_BLK_DEV_INITRD=y |
13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 13 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
14 | CONFIG_EMBEDDED=y | 14 | CONFIG_EXPERT=y |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
17 | CONFIG_MODULE_UNLOAD=y | 17 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig index ca84c7fc24d5..69128740c14d 100644 --- a/arch/powerpc/configs/adder875_defconfig +++ b/arch/powerpc/configs/adder875_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
10 | # CONFIG_BASE_FULL is not set | 10 | # CONFIG_BASE_FULL is not set |
diff --git a/arch/powerpc/configs/e55xx_smp_defconfig b/arch/powerpc/configs/e55xx_smp_defconfig index 94d120ef99cf..06f95492afc7 100644 --- a/arch/powerpc/configs/e55xx_smp_defconfig +++ b/arch/powerpc/configs/e55xx_smp_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
12 | CONFIG_SYSFS_DEPRECATED_V2=y | 12 | CONFIG_SYSFS_DEPRECATED_V2=y |
13 | CONFIG_BLK_DEV_INITRD=y | 13 | CONFIG_BLK_DEV_INITRD=y |
14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | CONFIG_KALLSYMS_ALL=y | 16 | CONFIG_KALLSYMS_ALL=y |
17 | CONFIG_KALLSYMS_EXTRA_PASS=y | 17 | CONFIG_KALLSYMS_EXTRA_PASS=y |
18 | CONFIG_MODULES=y | 18 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig index 2677b08199e7..fceffb3cffbe 100644 --- a/arch/powerpc/configs/ep8248e_defconfig +++ b/arch/powerpc/configs/ep8248e_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_SYSVIPC=y | |||
2 | CONFIG_IKCONFIG=y | 2 | CONFIG_IKCONFIG=y |
3 | CONFIG_IKCONFIG_PROC=y | 3 | CONFIG_IKCONFIG_PROC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_KALLSYMS_ALL=y | 6 | CONFIG_KALLSYMS_ALL=y |
7 | CONFIG_SLAB=y | 7 | CONFIG_SLAB=y |
8 | # CONFIG_IOSCHED_CFQ is not set | 8 | # CONFIG_IOSCHED_CFQ is not set |
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig index f9a3112e5442..219fd470ed22 100644 --- a/arch/powerpc/configs/ep88xc_defconfig +++ b/arch/powerpc/configs/ep88xc_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
10 | # CONFIG_BASE_FULL is not set | 10 | # CONFIG_BASE_FULL is not set |
diff --git a/arch/powerpc/configs/gamecube_defconfig b/arch/powerpc/configs/gamecube_defconfig index fcf0a398cd66..e74d3a483705 100644 --- a/arch/powerpc/configs/gamecube_defconfig +++ b/arch/powerpc/configs/gamecube_defconfig | |||
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | |||
6 | CONFIG_LOG_BUF_SHIFT=14 | 6 | CONFIG_LOG_BUF_SHIFT=14 |
7 | CONFIG_BLK_DEV_INITRD=y | 7 | CONFIG_BLK_DEV_INITRD=y |
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EMBEDDED=y | 9 | CONFIG_EXPERT=y |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | CONFIG_PERF_COUNTERS=y | 11 | CONFIG_PERF_COUNTERS=y |
12 | # CONFIG_VM_EVENT_COUNTERS is not set | 12 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/powerpc/configs/holly_defconfig b/arch/powerpc/configs/holly_defconfig index b9b63a609525..94ebfee188db 100644 --- a/arch/powerpc/configs/holly_defconfig +++ b/arch/powerpc/configs/holly_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_MODULES=y | 7 | CONFIG_MODULES=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | # CONFIG_PPC_CHRP is not set | 9 | # CONFIG_PPC_CHRP is not set |
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig index c4ed255af18b..39518e91822f 100644 --- a/arch/powerpc/configs/mgcoge_defconfig +++ b/arch/powerpc/configs/mgcoge_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_IKCONFIG=y | |||
3 | CONFIG_IKCONFIG_PROC=y | 3 | CONFIG_IKCONFIG_PROC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_KALLSYMS_ALL=y | 7 | CONFIG_KALLSYMS_ALL=y |
8 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
9 | # CONFIG_IOSCHED_CFQ is not set | 9 | # CONFIG_IOSCHED_CFQ is not set |
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig index f276c7cf555b..2a490626015c 100644 --- a/arch/powerpc/configs/mgsuvd_defconfig +++ b/arch/powerpc/configs/mgsuvd_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_BUG is not set | 10 | # CONFIG_BUG is not set |
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig index 3b9470883de5..75f0bbf0f6e8 100644 --- a/arch/powerpc/configs/mpc7448_hpc2_defconfig +++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | |||
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | # CONFIG_PPC_CHRP is not set | 9 | # CONFIG_PPC_CHRP is not set |
10 | # CONFIG_PPC_PMAC is not set | 10 | # CONFIG_PPC_PMAC is not set |
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig index c7d68ff1a736..6a22400f73c1 100644 --- a/arch/powerpc/configs/mpc8272_ads_defconfig +++ b/arch/powerpc/configs/mpc8272_ads_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_SYSVIPC=y | |||
2 | CONFIG_IKCONFIG=y | 2 | CONFIG_IKCONFIG=y |
3 | CONFIG_IKCONFIG_PROC=y | 3 | CONFIG_IKCONFIG_PROC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_EMBEDDED=y | 5 | CONFIG_EXPERT=y |
6 | CONFIG_KALLSYMS_ALL=y | 6 | CONFIG_KALLSYMS_ALL=y |
7 | # CONFIG_PPC_CHRP is not set | 7 | # CONFIG_PPC_CHRP is not set |
8 | # CONFIG_PPC_PMAC is not set | 8 | # CONFIG_PPC_PMAC is not set |
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig index 5b1b10fd9740..5aac9a8bc53b 100644 --- a/arch/powerpc/configs/mpc83xx_defconfig +++ b/arch/powerpc/configs/mpc83xx_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | |||
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 5 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_SLAB=y | 7 | CONFIG_SLAB=y |
8 | CONFIG_MODULES=y | 8 | CONFIG_MODULES=y |
9 | CONFIG_MODULE_UNLOAD=y | 9 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig index 3aeb5949cfef..99a19d1e9bf8 100644 --- a/arch/powerpc/configs/mpc85xx_defconfig +++ b/arch/powerpc/configs/mpc85xx_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_BLK_DEV_INITRD=y | 11 | CONFIG_BLK_DEV_INITRD=y |
12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | CONFIG_KALLSYMS_ALL=y | 14 | CONFIG_KALLSYMS_ALL=y |
15 | CONFIG_KALLSYMS_EXTRA_PASS=y | 15 | CONFIG_KALLSYMS_EXTRA_PASS=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig index d62c8016f4bc..c636f23f8c92 100644 --- a/arch/powerpc/configs/mpc85xx_smp_defconfig +++ b/arch/powerpc/configs/mpc85xx_smp_defconfig | |||
@@ -12,7 +12,7 @@ CONFIG_IKCONFIG_PROC=y | |||
12 | CONFIG_LOG_BUF_SHIFT=14 | 12 | CONFIG_LOG_BUF_SHIFT=14 |
13 | CONFIG_BLK_DEV_INITRD=y | 13 | CONFIG_BLK_DEV_INITRD=y |
14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 14 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
15 | CONFIG_EMBEDDED=y | 15 | CONFIG_EXPERT=y |
16 | CONFIG_KALLSYMS_ALL=y | 16 | CONFIG_KALLSYMS_ALL=y |
17 | CONFIG_KALLSYMS_EXTRA_PASS=y | 17 | CONFIG_KALLSYMS_EXTRA_PASS=y |
18 | CONFIG_MODULES=y | 18 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig index 668215cae890..5c258823e694 100644 --- a/arch/powerpc/configs/mpc866_ads_defconfig +++ b/arch/powerpc/configs/mpc866_ads_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_HOTPLUG is not set | 9 | # CONFIG_HOTPLUG is not set |
10 | # CONFIG_BUG is not set | 10 | # CONFIG_BUG is not set |
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig index 63b90d477889..55b54318fef6 100644 --- a/arch/powerpc/configs/mpc86xx_defconfig +++ b/arch/powerpc/configs/mpc86xx_defconfig | |||
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | |||
10 | CONFIG_LOG_BUF_SHIFT=14 | 10 | CONFIG_LOG_BUF_SHIFT=14 |
11 | CONFIG_BLK_DEV_INITRD=y | 11 | CONFIG_BLK_DEV_INITRD=y |
12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 12 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
13 | CONFIG_EMBEDDED=y | 13 | CONFIG_EXPERT=y |
14 | CONFIG_KALLSYMS_ALL=y | 14 | CONFIG_KALLSYMS_ALL=y |
15 | CONFIG_KALLSYMS_EXTRA_PASS=y | 15 | CONFIG_KALLSYMS_EXTRA_PASS=y |
16 | CONFIG_MODULES=y | 16 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig index f9b83481b00e..9e146cdf63de 100644 --- a/arch/powerpc/configs/mpc885_ads_defconfig +++ b/arch/powerpc/configs/mpc885_ads_defconfig | |||
@@ -4,7 +4,7 @@ CONFIG_EXPERIMENTAL=y | |||
4 | CONFIG_SYSVIPC=y | 4 | CONFIG_SYSVIPC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 6 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
7 | CONFIG_EMBEDDED=y | 7 | CONFIG_EXPERT=y |
8 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
9 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
10 | # CONFIG_BASE_FULL is not set | 10 | # CONFIG_BASE_FULL is not set |
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig index 93d7425ce6cd..bfd634b5ada7 100644 --- a/arch/powerpc/configs/ppc40x_defconfig +++ b/arch/powerpc/configs/ppc40x_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 2fa05f7be4cb..47133202a625 100644 --- a/arch/powerpc/configs/ppc44x_defconfig +++ b/arch/powerpc/configs/ppc44x_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
10 | CONFIG_KALLSYMS_EXTRA_PASS=y | 10 | CONFIG_KALLSYMS_EXTRA_PASS=y |
11 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig index a4353bef31c5..baad8db21b61 100644 --- a/arch/powerpc/configs/pq2fads_defconfig +++ b/arch/powerpc/configs/pq2fads_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_IKCONFIG=y | |||
3 | CONFIG_IKCONFIG_PROC=y | 3 | CONFIG_IKCONFIG_PROC=y |
4 | CONFIG_LOG_BUF_SHIFT=14 | 4 | CONFIG_LOG_BUF_SHIFT=14 |
5 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | CONFIG_KALLSYMS_ALL=y | 7 | CONFIG_KALLSYMS_ALL=y |
8 | # CONFIG_PPC_CHRP is not set | 8 | # CONFIG_PPC_CHRP is not set |
9 | # CONFIG_PPC_PMAC is not set | 9 | # CONFIG_PPC_PMAC is not set |
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig index 49cffe003657..caba919f65d8 100644 --- a/arch/powerpc/configs/ps3_defconfig +++ b/arch/powerpc/configs/ps3_defconfig | |||
@@ -8,7 +8,7 @@ CONFIG_SYSVIPC=y | |||
8 | CONFIG_POSIX_MQUEUE=y | 8 | CONFIG_POSIX_MQUEUE=y |
9 | CONFIG_NAMESPACES=y | 9 | CONFIG_NAMESPACES=y |
10 | CONFIG_BLK_DEV_INITRD=y | 10 | CONFIG_BLK_DEV_INITRD=y |
11 | CONFIG_EMBEDDED=y | 11 | CONFIG_EXPERT=y |
12 | CONFIG_KALLSYMS_EXTRA_PASS=y | 12 | CONFIG_KALLSYMS_EXTRA_PASS=y |
13 | # CONFIG_PERF_EVENTS is not set | 13 | # CONFIG_PERF_EVENTS is not set |
14 | # CONFIG_COMPAT_BRK is not set | 14 | # CONFIG_COMPAT_BRK is not set |
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index f87f0e15cfa7..9c3f22c6cde1 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_defconfig | |||
@@ -2,7 +2,7 @@ CONFIG_PPC64=y | |||
2 | CONFIG_ALTIVEC=y | 2 | CONFIG_ALTIVEC=y |
3 | CONFIG_VSX=y | 3 | CONFIG_VSX=y |
4 | CONFIG_SMP=y | 4 | CONFIG_SMP=y |
5 | CONFIG_NR_CPUS=128 | 5 | CONFIG_NR_CPUS=1024 |
6 | CONFIG_EXPERIMENTAL=y | 6 | CONFIG_EXPERIMENTAL=y |
7 | CONFIG_SYSVIPC=y | 7 | CONFIG_SYSVIPC=y |
8 | CONFIG_POSIX_MQUEUE=y | 8 | CONFIG_POSIX_MQUEUE=y |
@@ -45,6 +45,8 @@ CONFIG_KEXEC=y | |||
45 | CONFIG_IRQ_ALL_CPUS=y | 45 | CONFIG_IRQ_ALL_CPUS=y |
46 | CONFIG_MEMORY_HOTPLUG=y | 46 | CONFIG_MEMORY_HOTPLUG=y |
47 | CONFIG_MEMORY_HOTREMOVE=y | 47 | CONFIG_MEMORY_HOTREMOVE=y |
48 | CONFIG_PPC_64K_PAGES=y | ||
49 | CONFIG_PPC_SUBPAGE_PROT=y | ||
48 | CONFIG_SCHED_SMT=y | 50 | CONFIG_SCHED_SMT=y |
49 | CONFIG_HOTPLUG_PCI=m | 51 | CONFIG_HOTPLUG_PCI=m |
50 | CONFIG_HOTPLUG_PCI_RPA=m | 52 | CONFIG_HOTPLUG_PCI_RPA=m |
@@ -184,6 +186,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y | |||
184 | CONFIG_E1000=y | 186 | CONFIG_E1000=y |
185 | CONFIG_E1000E=y | 187 | CONFIG_E1000E=y |
186 | CONFIG_TIGON3=y | 188 | CONFIG_TIGON3=y |
189 | CONFIG_BNX2=m | ||
187 | CONFIG_CHELSIO_T1=m | 190 | CONFIG_CHELSIO_T1=m |
188 | CONFIG_CHELSIO_T3=m | 191 | CONFIG_CHELSIO_T3=m |
189 | CONFIG_EHEA=y | 192 | CONFIG_EHEA=y |
@@ -311,9 +314,7 @@ CONFIG_DEBUG_KERNEL=y | |||
311 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 314 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
312 | CONFIG_LATENCYTOP=y | 315 | CONFIG_LATENCYTOP=y |
313 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 316 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
314 | CONFIG_IRQSOFF_TRACER=y | ||
315 | CONFIG_SCHED_TRACER=y | 317 | CONFIG_SCHED_TRACER=y |
316 | CONFIG_STACK_TRACER=y | ||
317 | CONFIG_BLK_DEV_IO_TRACE=y | 318 | CONFIG_BLK_DEV_IO_TRACE=y |
318 | CONFIG_DEBUG_STACKOVERFLOW=y | 319 | CONFIG_DEBUG_STACKOVERFLOW=y |
319 | CONFIG_DEBUG_STACK_USAGE=y | 320 | CONFIG_DEBUG_STACK_USAGE=y |
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig index 4f0c10a62b9d..ebb2a66c99d3 100644 --- a/arch/powerpc/configs/storcenter_defconfig +++ b/arch/powerpc/configs/storcenter_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_LOG_BUF_SHIFT=14 | 3 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_EMBEDDED=y | 4 | CONFIG_EXPERT=y |
5 | # CONFIG_KALLSYMS is not set | 5 | # CONFIG_KALLSYMS is not set |
6 | CONFIG_MODULES=y | 6 | CONFIG_MODULES=y |
7 | CONFIG_MODULE_UNLOAD=y | 7 | CONFIG_MODULE_UNLOAD=y |
diff --git a/arch/powerpc/configs/tqm8xx_defconfig b/arch/powerpc/configs/tqm8xx_defconfig index d0a5b6763880..8616fde0896f 100644 --- a/arch/powerpc/configs/tqm8xx_defconfig +++ b/arch/powerpc/configs/tqm8xx_defconfig | |||
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | |||
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
8 | CONFIG_EMBEDDED=y | 8 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 9 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 10 | # CONFIG_ELF_CORE is not set |
11 | # CONFIG_BASE_FULL is not set | 11 | # CONFIG_BASE_FULL is not set |
diff --git a/arch/powerpc/configs/wii_defconfig b/arch/powerpc/configs/wii_defconfig index bb8ba75b7c68..175295fbf4f3 100644 --- a/arch/powerpc/configs/wii_defconfig +++ b/arch/powerpc/configs/wii_defconfig | |||
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y | |||
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EXPERT=y |
11 | # CONFIG_ELF_CORE is not set | 11 | # CONFIG_ELF_CORE is not set |
12 | CONFIG_PERF_COUNTERS=y | 12 | CONFIG_PERF_COUNTERS=y |
13 | # CONFIG_VM_EVENT_COUNTERS is not set | 13 | # CONFIG_VM_EVENT_COUNTERS is not set |
diff --git a/arch/powerpc/include/asm/feature-fixups.h b/arch/powerpc/include/asm/feature-fixups.h index 96a7d067fbb2..921a8470e18a 100644 --- a/arch/powerpc/include/asm/feature-fixups.h +++ b/arch/powerpc/include/asm/feature-fixups.h | |||
@@ -37,18 +37,21 @@ label##2: \ | |||
37 | .align 2; \ | 37 | .align 2; \ |
38 | label##3: | 38 | label##3: |
39 | 39 | ||
40 | #define MAKE_FTR_SECTION_ENTRY(msk, val, label, sect) \ | 40 | #define MAKE_FTR_SECTION_ENTRY(msk, val, label, sect) \ |
41 | label##4: \ | 41 | label##4: \ |
42 | .popsection; \ | 42 | .popsection; \ |
43 | .pushsection sect,"a"; \ | 43 | .pushsection sect,"a"; \ |
44 | .align 3; \ | 44 | .align 3; \ |
45 | label##5: \ | 45 | label##5: \ |
46 | FTR_ENTRY_LONG msk; \ | 46 | FTR_ENTRY_LONG msk; \ |
47 | FTR_ENTRY_LONG val; \ | 47 | FTR_ENTRY_LONG val; \ |
48 | FTR_ENTRY_OFFSET label##1b-label##5b; \ | 48 | FTR_ENTRY_OFFSET label##1b-label##5b; \ |
49 | FTR_ENTRY_OFFSET label##2b-label##5b; \ | 49 | FTR_ENTRY_OFFSET label##2b-label##5b; \ |
50 | FTR_ENTRY_OFFSET label##3b-label##5b; \ | 50 | FTR_ENTRY_OFFSET label##3b-label##5b; \ |
51 | FTR_ENTRY_OFFSET label##4b-label##5b; \ | 51 | FTR_ENTRY_OFFSET label##4b-label##5b; \ |
52 | .ifgt (label##4b-label##3b)-(label##2b-label##1b); \ | ||
53 | .error "Feature section else case larger than body"; \ | ||
54 | .endif; \ | ||
52 | .popsection; | 55 | .popsection; |
53 | 56 | ||
54 | 57 | ||
diff --git a/arch/powerpc/include/asm/immap_qe.h b/arch/powerpc/include/asm/immap_qe.h index 4e10f508570a..0edb6842b13d 100644 --- a/arch/powerpc/include/asm/immap_qe.h +++ b/arch/powerpc/include/asm/immap_qe.h | |||
@@ -467,13 +467,22 @@ struct qe_immap { | |||
467 | extern struct qe_immap __iomem *qe_immr; | 467 | extern struct qe_immap __iomem *qe_immr; |
468 | extern phys_addr_t get_qe_base(void); | 468 | extern phys_addr_t get_qe_base(void); |
469 | 469 | ||
470 | static inline unsigned long immrbar_virt_to_phys(void *address) | 470 | /* |
471 | * Returns the offset within the QE address space of the given pointer. | ||
472 | * | ||
473 | * Note that the QE does not support 36-bit physical addresses, so if | ||
474 | * get_qe_base() returns a number above 4GB, the caller will probably fail. | ||
475 | */ | ||
476 | static inline phys_addr_t immrbar_virt_to_phys(void *address) | ||
471 | { | 477 | { |
472 | if ( ((u32)address >= (u32)qe_immr) && | 478 | void *q = (void *)qe_immr; |
473 | ((u32)address < ((u32)qe_immr + QE_IMMAP_SIZE)) ) | 479 | |
474 | return (unsigned long)(address - (u32)qe_immr + | 480 | /* Is it a MURAM address? */ |
475 | (u32)get_qe_base()); | 481 | if ((address >= q) && (address < (q + QE_IMMAP_SIZE))) |
476 | return (unsigned long)virt_to_phys(address); | 482 | return get_qe_base() + (address - q); |
483 | |||
484 | /* It's an address returned by kmalloc */ | ||
485 | return virt_to_phys(address); | ||
477 | } | 486 | } |
478 | 487 | ||
479 | #endif /* __KERNEL__ */ | 488 | #endif /* __KERNEL__ */ |
diff --git a/arch/powerpc/include/asm/irqflags.h b/arch/powerpc/include/asm/irqflags.h index b85d8ddbb666..b0b06d85788d 100644 --- a/arch/powerpc/include/asm/irqflags.h +++ b/arch/powerpc/include/asm/irqflags.h | |||
@@ -12,24 +12,44 @@ | |||
12 | 12 | ||
13 | #else | 13 | #else |
14 | #ifdef CONFIG_TRACE_IRQFLAGS | 14 | #ifdef CONFIG_TRACE_IRQFLAGS |
15 | #ifdef CONFIG_IRQSOFF_TRACER | ||
16 | /* | ||
17 | * Since the ftrace irqsoff latency trace checks CALLER_ADDR1, | ||
18 | * which is the stack frame here, we need to force a stack frame | ||
19 | * in case we came from user space. | ||
20 | */ | ||
21 | #define TRACE_WITH_FRAME_BUFFER(func) \ | ||
22 | mflr r0; \ | ||
23 | stdu r1, -32(r1); \ | ||
24 | std r0, 16(r1); \ | ||
25 | stdu r1, -32(r1); \ | ||
26 | bl func; \ | ||
27 | ld r1, 0(r1); \ | ||
28 | ld r1, 0(r1); | ||
29 | #else | ||
30 | #define TRACE_WITH_FRAME_BUFFER(func) \ | ||
31 | bl func; | ||
32 | #endif | ||
33 | |||
15 | /* | 34 | /* |
16 | * Most of the CPU's IRQ-state tracing is done from assembly code; we | 35 | * Most of the CPU's IRQ-state tracing is done from assembly code; we |
17 | * have to call a C function so call a wrapper that saves all the | 36 | * have to call a C function so call a wrapper that saves all the |
18 | * C-clobbered registers. | 37 | * C-clobbered registers. |
19 | */ | 38 | */ |
20 | #define TRACE_ENABLE_INTS bl .trace_hardirqs_on | 39 | #define TRACE_ENABLE_INTS TRACE_WITH_FRAME_BUFFER(.trace_hardirqs_on) |
21 | #define TRACE_DISABLE_INTS bl .trace_hardirqs_off | 40 | #define TRACE_DISABLE_INTS TRACE_WITH_FRAME_BUFFER(.trace_hardirqs_off) |
22 | #define TRACE_AND_RESTORE_IRQ_PARTIAL(en,skip) \ | 41 | |
23 | cmpdi en,0; \ | 42 | #define TRACE_AND_RESTORE_IRQ_PARTIAL(en,skip) \ |
24 | bne 95f; \ | 43 | cmpdi en,0; \ |
25 | stb en,PACASOFTIRQEN(r13); \ | 44 | bne 95f; \ |
26 | bl .trace_hardirqs_off; \ | 45 | stb en,PACASOFTIRQEN(r13); \ |
27 | b skip; \ | 46 | TRACE_WITH_FRAME_BUFFER(.trace_hardirqs_off) \ |
28 | 95: bl .trace_hardirqs_on; \ | 47 | b skip; \ |
48 | 95: TRACE_WITH_FRAME_BUFFER(.trace_hardirqs_on) \ | ||
29 | li en,1; | 49 | li en,1; |
30 | #define TRACE_AND_RESTORE_IRQ(en) \ | 50 | #define TRACE_AND_RESTORE_IRQ(en) \ |
31 | TRACE_AND_RESTORE_IRQ_PARTIAL(en,96f); \ | 51 | TRACE_AND_RESTORE_IRQ_PARTIAL(en,96f); \ |
32 | stb en,PACASOFTIRQEN(r13); \ | 52 | stb en,PACASOFTIRQEN(r13); \ |
33 | 96: | 53 | 96: |
34 | #else | 54 | #else |
35 | #define TRACE_ENABLE_INTS | 55 | #define TRACE_ENABLE_INTS |
diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h index 8433d36619a1..991d5998d6be 100644 --- a/arch/powerpc/include/asm/machdep.h +++ b/arch/powerpc/include/asm/machdep.h | |||
@@ -116,9 +116,6 @@ struct machdep_calls { | |||
116 | * If for some reason there is no irq, but the interrupt | 116 | * If for some reason there is no irq, but the interrupt |
117 | * shouldn't be counted as spurious, return NO_IRQ_IGNORE. */ | 117 | * shouldn't be counted as spurious, return NO_IRQ_IGNORE. */ |
118 | unsigned int (*get_irq)(void); | 118 | unsigned int (*get_irq)(void); |
119 | #ifdef CONFIG_KEXEC | ||
120 | void (*kexec_cpu_down)(int crash_shutdown, int secondary); | ||
121 | #endif | ||
122 | 119 | ||
123 | /* PCI stuff */ | 120 | /* PCI stuff */ |
124 | /* Called after scanning the bus, before allocating resources */ | 121 | /* Called after scanning the bus, before allocating resources */ |
@@ -235,11 +232,7 @@ struct machdep_calls { | |||
235 | void (*machine_shutdown)(void); | 232 | void (*machine_shutdown)(void); |
236 | 233 | ||
237 | #ifdef CONFIG_KEXEC | 234 | #ifdef CONFIG_KEXEC |
238 | /* Called to do the minimal shutdown needed to run a kexec'd kernel | 235 | void (*kexec_cpu_down)(int crash_shutdown, int secondary); |
239 | * to run successfully. | ||
240 | * XXX Should we move this one out of kexec scope? | ||
241 | */ | ||
242 | void (*machine_crash_shutdown)(struct pt_regs *regs); | ||
243 | 236 | ||
244 | /* Called to do what every setup is needed on image and the | 237 | /* Called to do what every setup is needed on image and the |
245 | * reboot code buffer. Returns 0 on success. | 238 | * reboot code buffer. Returns 0 on success. |
@@ -247,15 +240,6 @@ struct machdep_calls { | |||
247 | * claims to support kexec. | 240 | * claims to support kexec. |
248 | */ | 241 | */ |
249 | int (*machine_kexec_prepare)(struct kimage *image); | 242 | int (*machine_kexec_prepare)(struct kimage *image); |
250 | |||
251 | /* Called to handle any machine specific cleanup on image */ | ||
252 | void (*machine_kexec_cleanup)(struct kimage *image); | ||
253 | |||
254 | /* Called to perform the _real_ kexec. | ||
255 | * Do NOT allocate memory or fail here. We are past the point of | ||
256 | * no return. | ||
257 | */ | ||
258 | void (*machine_kexec)(struct kimage *image); | ||
259 | #endif /* CONFIG_KEXEC */ | 243 | #endif /* CONFIG_KEXEC */ |
260 | 244 | ||
261 | #ifdef CONFIG_SUSPEND | 245 | #ifdef CONFIG_SUSPEND |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index ff0005eec7dd..125fc1ad665d 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -283,6 +283,7 @@ | |||
283 | #define HID0_NOPTI (1<<0) /* No-op dcbt and dcbst instr. */ | 283 | #define HID0_NOPTI (1<<0) /* No-op dcbt and dcbst instr. */ |
284 | 284 | ||
285 | #define SPRN_HID1 0x3F1 /* Hardware Implementation Register 1 */ | 285 | #define SPRN_HID1 0x3F1 /* Hardware Implementation Register 1 */ |
286 | #ifdef CONFIG_6xx | ||
286 | #define HID1_EMCP (1<<31) /* 7450 Machine Check Pin Enable */ | 287 | #define HID1_EMCP (1<<31) /* 7450 Machine Check Pin Enable */ |
287 | #define HID1_DFS (1<<22) /* 7447A Dynamic Frequency Scaling */ | 288 | #define HID1_DFS (1<<22) /* 7447A Dynamic Frequency Scaling */ |
288 | #define HID1_PC0 (1<<16) /* 7450 PLL_CFG[0] */ | 289 | #define HID1_PC0 (1<<16) /* 7450 PLL_CFG[0] */ |
@@ -292,6 +293,7 @@ | |||
292 | #define HID1_SYNCBE (1<<11) /* 7450 ABE for sync, eieio */ | 293 | #define HID1_SYNCBE (1<<11) /* 7450 ABE for sync, eieio */ |
293 | #define HID1_ABE (1<<10) /* 7450 Address Broadcast Enable */ | 294 | #define HID1_ABE (1<<10) /* 7450 Address Broadcast Enable */ |
294 | #define HID1_PS (1<<16) /* 750FX PLL selection */ | 295 | #define HID1_PS (1<<16) /* 750FX PLL selection */ |
296 | #endif | ||
295 | #define SPRN_HID2 0x3F8 /* Hardware Implementation Register 2 */ | 297 | #define SPRN_HID2 0x3F8 /* Hardware Implementation Register 2 */ |
296 | #define SPRN_HID2_GEKKO 0x398 /* Gekko HID2 Register */ | 298 | #define SPRN_HID2_GEKKO 0x398 /* Gekko HID2 Register */ |
297 | #define SPRN_IABR 0x3F2 /* Instruction Address Breakpoint Register */ | 299 | #define SPRN_IABR 0x3F2 /* Instruction Address Breakpoint Register */ |
diff --git a/arch/powerpc/include/asm/reg_booke.h b/arch/powerpc/include/asm/reg_booke.h index 667a498eaee1..e68c69bf741a 100644 --- a/arch/powerpc/include/asm/reg_booke.h +++ b/arch/powerpc/include/asm/reg_booke.h | |||
@@ -246,6 +246,20 @@ | |||
246 | store or cache line push */ | 246 | store or cache line push */ |
247 | #endif | 247 | #endif |
248 | 248 | ||
249 | /* Bit definitions for the HID1 */ | ||
250 | #ifdef CONFIG_E500 | ||
251 | /* e500v1/v2 */ | ||
252 | #define HID1_PLL_CFG_MASK 0xfc000000 /* PLL_CFG input pins */ | ||
253 | #define HID1_RFXE 0x00020000 /* Read fault exception enable */ | ||
254 | #define HID1_R1DPE 0x00008000 /* R1 data bus parity enable */ | ||
255 | #define HID1_R2DPE 0x00004000 /* R2 data bus parity enable */ | ||
256 | #define HID1_ASTME 0x00002000 /* Address bus streaming mode enable */ | ||
257 | #define HID1_ABE 0x00001000 /* Address broadcast enable */ | ||
258 | #define HID1_MPXTT 0x00000400 /* MPX re-map transfer type */ | ||
259 | #define HID1_ATS 0x00000080 /* Atomic status */ | ||
260 | #define HID1_MID_MASK 0x0000000f /* MID input pins */ | ||
261 | #endif | ||
262 | |||
249 | /* Bit definitions for the DBSR. */ | 263 | /* Bit definitions for the DBSR. */ |
250 | /* | 264 | /* |
251 | * DBSR bits which have conflicting definitions on true Book E versus IBM 40x. | 265 | * DBSR bits which have conflicting definitions on true Book E versus IBM 40x. |
diff --git a/arch/powerpc/include/asm/spu.h b/arch/powerpc/include/asm/spu.h index 0ab8d869e3d6..0c8b35d75232 100644 --- a/arch/powerpc/include/asm/spu.h +++ b/arch/powerpc/include/asm/spu.h | |||
@@ -203,14 +203,6 @@ void spu_irq_setaffinity(struct spu *spu, int cpu); | |||
203 | void spu_setup_kernel_slbs(struct spu *spu, struct spu_lscsa *lscsa, | 203 | void spu_setup_kernel_slbs(struct spu *spu, struct spu_lscsa *lscsa, |
204 | void *code, int code_size); | 204 | void *code, int code_size); |
205 | 205 | ||
206 | #ifdef CONFIG_KEXEC | ||
207 | void crash_register_spus(struct list_head *list); | ||
208 | #else | ||
209 | static inline void crash_register_spus(struct list_head *list) | ||
210 | { | ||
211 | } | ||
212 | #endif | ||
213 | |||
214 | extern void spu_invalidate_slbs(struct spu *spu); | 206 | extern void spu_invalidate_slbs(struct spu *spu); |
215 | extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm); | 207 | extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm); |
216 | int spu_64k_pages_available(void); | 208 | int spu_64k_pages_available(void); |
diff --git a/arch/powerpc/kernel/cpu_setup_fsl_booke.S b/arch/powerpc/kernel/cpu_setup_fsl_booke.S index 894e64fa481e..5c518ad3445c 100644 --- a/arch/powerpc/kernel/cpu_setup_fsl_booke.S +++ b/arch/powerpc/kernel/cpu_setup_fsl_booke.S | |||
@@ -64,6 +64,12 @@ _GLOBAL(__setup_cpu_e500v2) | |||
64 | bl __e500_icache_setup | 64 | bl __e500_icache_setup |
65 | bl __e500_dcache_setup | 65 | bl __e500_dcache_setup |
66 | bl __setup_e500_ivors | 66 | bl __setup_e500_ivors |
67 | #ifdef CONFIG_RAPIDIO | ||
68 | /* Ensure that RFXE is set */ | ||
69 | mfspr r3,SPRN_HID1 | ||
70 | oris r3,r3,HID1_RFXE@h | ||
71 | mtspr SPRN_HID1,r3 | ||
72 | #endif | ||
67 | mtlr r4 | 73 | mtlr r4 |
68 | blr | 74 | blr |
69 | _GLOBAL(__setup_cpu_e500mc) | 75 | _GLOBAL(__setup_cpu_e500mc) |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index be5ab18b03b5..8d74a24c5502 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -116,7 +116,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
116 | .pmc_type = PPC_PMC_IBM, | 116 | .pmc_type = PPC_PMC_IBM, |
117 | .oprofile_cpu_type = "ppc64/power3", | 117 | .oprofile_cpu_type = "ppc64/power3", |
118 | .oprofile_type = PPC_OPROFILE_RS64, | 118 | .oprofile_type = PPC_OPROFILE_RS64, |
119 | .machine_check = machine_check_generic, | ||
120 | .platform = "power3", | 119 | .platform = "power3", |
121 | }, | 120 | }, |
122 | { /* Power3+ */ | 121 | { /* Power3+ */ |
@@ -132,7 +131,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
132 | .pmc_type = PPC_PMC_IBM, | 131 | .pmc_type = PPC_PMC_IBM, |
133 | .oprofile_cpu_type = "ppc64/power3", | 132 | .oprofile_cpu_type = "ppc64/power3", |
134 | .oprofile_type = PPC_OPROFILE_RS64, | 133 | .oprofile_type = PPC_OPROFILE_RS64, |
135 | .machine_check = machine_check_generic, | ||
136 | .platform = "power3", | 134 | .platform = "power3", |
137 | }, | 135 | }, |
138 | { /* Northstar */ | 136 | { /* Northstar */ |
@@ -148,7 +146,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
148 | .pmc_type = PPC_PMC_IBM, | 146 | .pmc_type = PPC_PMC_IBM, |
149 | .oprofile_cpu_type = "ppc64/rs64", | 147 | .oprofile_cpu_type = "ppc64/rs64", |
150 | .oprofile_type = PPC_OPROFILE_RS64, | 148 | .oprofile_type = PPC_OPROFILE_RS64, |
151 | .machine_check = machine_check_generic, | ||
152 | .platform = "rs64", | 149 | .platform = "rs64", |
153 | }, | 150 | }, |
154 | { /* Pulsar */ | 151 | { /* Pulsar */ |
@@ -164,7 +161,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
164 | .pmc_type = PPC_PMC_IBM, | 161 | .pmc_type = PPC_PMC_IBM, |
165 | .oprofile_cpu_type = "ppc64/rs64", | 162 | .oprofile_cpu_type = "ppc64/rs64", |
166 | .oprofile_type = PPC_OPROFILE_RS64, | 163 | .oprofile_type = PPC_OPROFILE_RS64, |
167 | .machine_check = machine_check_generic, | ||
168 | .platform = "rs64", | 164 | .platform = "rs64", |
169 | }, | 165 | }, |
170 | { /* I-star */ | 166 | { /* I-star */ |
@@ -180,7 +176,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
180 | .pmc_type = PPC_PMC_IBM, | 176 | .pmc_type = PPC_PMC_IBM, |
181 | .oprofile_cpu_type = "ppc64/rs64", | 177 | .oprofile_cpu_type = "ppc64/rs64", |
182 | .oprofile_type = PPC_OPROFILE_RS64, | 178 | .oprofile_type = PPC_OPROFILE_RS64, |
183 | .machine_check = machine_check_generic, | ||
184 | .platform = "rs64", | 179 | .platform = "rs64", |
185 | }, | 180 | }, |
186 | { /* S-star */ | 181 | { /* S-star */ |
@@ -196,7 +191,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
196 | .pmc_type = PPC_PMC_IBM, | 191 | .pmc_type = PPC_PMC_IBM, |
197 | .oprofile_cpu_type = "ppc64/rs64", | 192 | .oprofile_cpu_type = "ppc64/rs64", |
198 | .oprofile_type = PPC_OPROFILE_RS64, | 193 | .oprofile_type = PPC_OPROFILE_RS64, |
199 | .machine_check = machine_check_generic, | ||
200 | .platform = "rs64", | 194 | .platform = "rs64", |
201 | }, | 195 | }, |
202 | { /* Power4 */ | 196 | { /* Power4 */ |
@@ -212,7 +206,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
212 | .pmc_type = PPC_PMC_IBM, | 206 | .pmc_type = PPC_PMC_IBM, |
213 | .oprofile_cpu_type = "ppc64/power4", | 207 | .oprofile_cpu_type = "ppc64/power4", |
214 | .oprofile_type = PPC_OPROFILE_POWER4, | 208 | .oprofile_type = PPC_OPROFILE_POWER4, |
215 | .machine_check = machine_check_generic, | ||
216 | .platform = "power4", | 209 | .platform = "power4", |
217 | }, | 210 | }, |
218 | { /* Power4+ */ | 211 | { /* Power4+ */ |
@@ -228,7 +221,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
228 | .pmc_type = PPC_PMC_IBM, | 221 | .pmc_type = PPC_PMC_IBM, |
229 | .oprofile_cpu_type = "ppc64/power4", | 222 | .oprofile_cpu_type = "ppc64/power4", |
230 | .oprofile_type = PPC_OPROFILE_POWER4, | 223 | .oprofile_type = PPC_OPROFILE_POWER4, |
231 | .machine_check = machine_check_generic, | ||
232 | .platform = "power4", | 224 | .platform = "power4", |
233 | }, | 225 | }, |
234 | { /* PPC970 */ | 226 | { /* PPC970 */ |
@@ -247,7 +239,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
247 | .cpu_restore = __restore_cpu_ppc970, | 239 | .cpu_restore = __restore_cpu_ppc970, |
248 | .oprofile_cpu_type = "ppc64/970", | 240 | .oprofile_cpu_type = "ppc64/970", |
249 | .oprofile_type = PPC_OPROFILE_POWER4, | 241 | .oprofile_type = PPC_OPROFILE_POWER4, |
250 | .machine_check = machine_check_generic, | ||
251 | .platform = "ppc970", | 242 | .platform = "ppc970", |
252 | }, | 243 | }, |
253 | { /* PPC970FX */ | 244 | { /* PPC970FX */ |
@@ -266,7 +257,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
266 | .cpu_restore = __restore_cpu_ppc970, | 257 | .cpu_restore = __restore_cpu_ppc970, |
267 | .oprofile_cpu_type = "ppc64/970", | 258 | .oprofile_cpu_type = "ppc64/970", |
268 | .oprofile_type = PPC_OPROFILE_POWER4, | 259 | .oprofile_type = PPC_OPROFILE_POWER4, |
269 | .machine_check = machine_check_generic, | ||
270 | .platform = "ppc970", | 260 | .platform = "ppc970", |
271 | }, | 261 | }, |
272 | { /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */ | 262 | { /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */ |
@@ -285,7 +275,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
285 | .cpu_restore = __restore_cpu_ppc970, | 275 | .cpu_restore = __restore_cpu_ppc970, |
286 | .oprofile_cpu_type = "ppc64/970MP", | 276 | .oprofile_cpu_type = "ppc64/970MP", |
287 | .oprofile_type = PPC_OPROFILE_POWER4, | 277 | .oprofile_type = PPC_OPROFILE_POWER4, |
288 | .machine_check = machine_check_generic, | ||
289 | .platform = "ppc970", | 278 | .platform = "ppc970", |
290 | }, | 279 | }, |
291 | { /* PPC970MP */ | 280 | { /* PPC970MP */ |
@@ -304,7 +293,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
304 | .cpu_restore = __restore_cpu_ppc970, | 293 | .cpu_restore = __restore_cpu_ppc970, |
305 | .oprofile_cpu_type = "ppc64/970MP", | 294 | .oprofile_cpu_type = "ppc64/970MP", |
306 | .oprofile_type = PPC_OPROFILE_POWER4, | 295 | .oprofile_type = PPC_OPROFILE_POWER4, |
307 | .machine_check = machine_check_generic, | ||
308 | .platform = "ppc970", | 296 | .platform = "ppc970", |
309 | }, | 297 | }, |
310 | { /* PPC970GX */ | 298 | { /* PPC970GX */ |
@@ -322,7 +310,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
322 | .cpu_setup = __setup_cpu_ppc970, | 310 | .cpu_setup = __setup_cpu_ppc970, |
323 | .oprofile_cpu_type = "ppc64/970", | 311 | .oprofile_cpu_type = "ppc64/970", |
324 | .oprofile_type = PPC_OPROFILE_POWER4, | 312 | .oprofile_type = PPC_OPROFILE_POWER4, |
325 | .machine_check = machine_check_generic, | ||
326 | .platform = "ppc970", | 313 | .platform = "ppc970", |
327 | }, | 314 | }, |
328 | { /* Power5 GR */ | 315 | { /* Power5 GR */ |
@@ -343,7 +330,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
343 | */ | 330 | */ |
344 | .oprofile_mmcra_sihv = MMCRA_SIHV, | 331 | .oprofile_mmcra_sihv = MMCRA_SIHV, |
345 | .oprofile_mmcra_sipr = MMCRA_SIPR, | 332 | .oprofile_mmcra_sipr = MMCRA_SIPR, |
346 | .machine_check = machine_check_generic, | ||
347 | .platform = "power5", | 333 | .platform = "power5", |
348 | }, | 334 | }, |
349 | { /* Power5++ */ | 335 | { /* Power5++ */ |
@@ -360,7 +346,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
360 | .oprofile_type = PPC_OPROFILE_POWER4, | 346 | .oprofile_type = PPC_OPROFILE_POWER4, |
361 | .oprofile_mmcra_sihv = MMCRA_SIHV, | 347 | .oprofile_mmcra_sihv = MMCRA_SIHV, |
362 | .oprofile_mmcra_sipr = MMCRA_SIPR, | 348 | .oprofile_mmcra_sipr = MMCRA_SIPR, |
363 | .machine_check = machine_check_generic, | ||
364 | .platform = "power5+", | 349 | .platform = "power5+", |
365 | }, | 350 | }, |
366 | { /* Power5 GS */ | 351 | { /* Power5 GS */ |
@@ -378,7 +363,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
378 | .oprofile_type = PPC_OPROFILE_POWER4, | 363 | .oprofile_type = PPC_OPROFILE_POWER4, |
379 | .oprofile_mmcra_sihv = MMCRA_SIHV, | 364 | .oprofile_mmcra_sihv = MMCRA_SIHV, |
380 | .oprofile_mmcra_sipr = MMCRA_SIPR, | 365 | .oprofile_mmcra_sipr = MMCRA_SIPR, |
381 | .machine_check = machine_check_generic, | ||
382 | .platform = "power5+", | 366 | .platform = "power5+", |
383 | }, | 367 | }, |
384 | { /* POWER6 in P5+ mode; 2.04-compliant processor */ | 368 | { /* POWER6 in P5+ mode; 2.04-compliant processor */ |
@@ -390,7 +374,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
390 | .mmu_features = MMU_FTR_HPTE_TABLE, | 374 | .mmu_features = MMU_FTR_HPTE_TABLE, |
391 | .icache_bsize = 128, | 375 | .icache_bsize = 128, |
392 | .dcache_bsize = 128, | 376 | .dcache_bsize = 128, |
393 | .machine_check = machine_check_generic, | ||
394 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", | 377 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", |
395 | .oprofile_type = PPC_OPROFILE_POWER4, | 378 | .oprofile_type = PPC_OPROFILE_POWER4, |
396 | .platform = "power5+", | 379 | .platform = "power5+", |
@@ -413,7 +396,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
413 | .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR, | 396 | .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR, |
414 | .oprofile_mmcra_clear = POWER6_MMCRA_THRM | | 397 | .oprofile_mmcra_clear = POWER6_MMCRA_THRM | |
415 | POWER6_MMCRA_OTHER, | 398 | POWER6_MMCRA_OTHER, |
416 | .machine_check = machine_check_generic, | ||
417 | .platform = "power6x", | 399 | .platform = "power6x", |
418 | }, | 400 | }, |
419 | { /* 2.05-compliant processor, i.e. Power6 "architected" mode */ | 401 | { /* 2.05-compliant processor, i.e. Power6 "architected" mode */ |
@@ -425,7 +407,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
425 | .mmu_features = MMU_FTR_HPTE_TABLE, | 407 | .mmu_features = MMU_FTR_HPTE_TABLE, |
426 | .icache_bsize = 128, | 408 | .icache_bsize = 128, |
427 | .dcache_bsize = 128, | 409 | .dcache_bsize = 128, |
428 | .machine_check = machine_check_generic, | ||
429 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", | 410 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", |
430 | .oprofile_type = PPC_OPROFILE_POWER4, | 411 | .oprofile_type = PPC_OPROFILE_POWER4, |
431 | .platform = "power6", | 412 | .platform = "power6", |
@@ -440,7 +421,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
440 | MMU_FTR_TLBIE_206, | 421 | MMU_FTR_TLBIE_206, |
441 | .icache_bsize = 128, | 422 | .icache_bsize = 128, |
442 | .dcache_bsize = 128, | 423 | .dcache_bsize = 128, |
443 | .machine_check = machine_check_generic, | ||
444 | .oprofile_type = PPC_OPROFILE_POWER4, | 424 | .oprofile_type = PPC_OPROFILE_POWER4, |
445 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", | 425 | .oprofile_cpu_type = "ppc64/ibm-compat-v1", |
446 | .platform = "power7", | 426 | .platform = "power7", |
@@ -492,7 +472,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
492 | .pmc_type = PPC_PMC_IBM, | 472 | .pmc_type = PPC_PMC_IBM, |
493 | .oprofile_cpu_type = "ppc64/cell-be", | 473 | .oprofile_cpu_type = "ppc64/cell-be", |
494 | .oprofile_type = PPC_OPROFILE_CELL, | 474 | .oprofile_type = PPC_OPROFILE_CELL, |
495 | .machine_check = machine_check_generic, | ||
496 | .platform = "ppc-cell-be", | 475 | .platform = "ppc-cell-be", |
497 | }, | 476 | }, |
498 | { /* PA Semi PA6T */ | 477 | { /* PA Semi PA6T */ |
@@ -510,7 +489,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
510 | .cpu_restore = __restore_cpu_pa6t, | 489 | .cpu_restore = __restore_cpu_pa6t, |
511 | .oprofile_cpu_type = "ppc64/pa6t", | 490 | .oprofile_cpu_type = "ppc64/pa6t", |
512 | .oprofile_type = PPC_OPROFILE_PA6T, | 491 | .oprofile_type = PPC_OPROFILE_PA6T, |
513 | .machine_check = machine_check_generic, | ||
514 | .platform = "pa6t", | 492 | .platform = "pa6t", |
515 | }, | 493 | }, |
516 | { /* default match */ | 494 | { /* default match */ |
@@ -524,7 +502,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
524 | .dcache_bsize = 128, | 502 | .dcache_bsize = 128, |
525 | .num_pmcs = 6, | 503 | .num_pmcs = 6, |
526 | .pmc_type = PPC_PMC_IBM, | 504 | .pmc_type = PPC_PMC_IBM, |
527 | .machine_check = machine_check_generic, | ||
528 | .platform = "power4", | 505 | .platform = "power4", |
529 | } | 506 | } |
530 | #endif /* CONFIG_PPC_BOOK3S_64 */ | 507 | #endif /* CONFIG_PPC_BOOK3S_64 */ |
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 832c8c4db254..3d569e2aff18 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c | |||
@@ -48,7 +48,7 @@ int crashing_cpu = -1; | |||
48 | static cpumask_t cpus_in_crash = CPU_MASK_NONE; | 48 | static cpumask_t cpus_in_crash = CPU_MASK_NONE; |
49 | cpumask_t cpus_in_sr = CPU_MASK_NONE; | 49 | cpumask_t cpus_in_sr = CPU_MASK_NONE; |
50 | 50 | ||
51 | #define CRASH_HANDLER_MAX 2 | 51 | #define CRASH_HANDLER_MAX 3 |
52 | /* NULL terminated list of shutdown handles */ | 52 | /* NULL terminated list of shutdown handles */ |
53 | static crash_shutdown_t crash_shutdown_handles[CRASH_HANDLER_MAX+1]; | 53 | static crash_shutdown_t crash_shutdown_handles[CRASH_HANDLER_MAX+1]; |
54 | static DEFINE_SPINLOCK(crash_handlers_lock); | 54 | static DEFINE_SPINLOCK(crash_handlers_lock); |
@@ -125,7 +125,7 @@ static void crash_kexec_prepare_cpus(int cpu) | |||
125 | smp_wmb(); | 125 | smp_wmb(); |
126 | 126 | ||
127 | /* | 127 | /* |
128 | * FIXME: Until we will have the way to stop other CPUSs reliabally, | 128 | * FIXME: Until we will have the way to stop other CPUs reliably, |
129 | * the crash CPU will send an IPI and wait for other CPUs to | 129 | * the crash CPU will send an IPI and wait for other CPUs to |
130 | * respond. | 130 | * respond. |
131 | * Delay of at least 10 seconds. | 131 | * Delay of at least 10 seconds. |
@@ -254,72 +254,6 @@ void crash_kexec_secondary(struct pt_regs *regs) | |||
254 | cpus_in_sr = CPU_MASK_NONE; | 254 | cpus_in_sr = CPU_MASK_NONE; |
255 | } | 255 | } |
256 | #endif | 256 | #endif |
257 | #ifdef CONFIG_SPU_BASE | ||
258 | |||
259 | #include <asm/spu.h> | ||
260 | #include <asm/spu_priv1.h> | ||
261 | |||
262 | struct crash_spu_info { | ||
263 | struct spu *spu; | ||
264 | u32 saved_spu_runcntl_RW; | ||
265 | u32 saved_spu_status_R; | ||
266 | u32 saved_spu_npc_RW; | ||
267 | u64 saved_mfc_sr1_RW; | ||
268 | u64 saved_mfc_dar; | ||
269 | u64 saved_mfc_dsisr; | ||
270 | }; | ||
271 | |||
272 | #define CRASH_NUM_SPUS 16 /* Enough for current hardware */ | ||
273 | static struct crash_spu_info crash_spu_info[CRASH_NUM_SPUS]; | ||
274 | |||
275 | static void crash_kexec_stop_spus(void) | ||
276 | { | ||
277 | struct spu *spu; | ||
278 | int i; | ||
279 | u64 tmp; | ||
280 | |||
281 | for (i = 0; i < CRASH_NUM_SPUS; i++) { | ||
282 | if (!crash_spu_info[i].spu) | ||
283 | continue; | ||
284 | |||
285 | spu = crash_spu_info[i].spu; | ||
286 | |||
287 | crash_spu_info[i].saved_spu_runcntl_RW = | ||
288 | in_be32(&spu->problem->spu_runcntl_RW); | ||
289 | crash_spu_info[i].saved_spu_status_R = | ||
290 | in_be32(&spu->problem->spu_status_R); | ||
291 | crash_spu_info[i].saved_spu_npc_RW = | ||
292 | in_be32(&spu->problem->spu_npc_RW); | ||
293 | |||
294 | crash_spu_info[i].saved_mfc_dar = spu_mfc_dar_get(spu); | ||
295 | crash_spu_info[i].saved_mfc_dsisr = spu_mfc_dsisr_get(spu); | ||
296 | tmp = spu_mfc_sr1_get(spu); | ||
297 | crash_spu_info[i].saved_mfc_sr1_RW = tmp; | ||
298 | |||
299 | tmp &= ~MFC_STATE1_MASTER_RUN_CONTROL_MASK; | ||
300 | spu_mfc_sr1_set(spu, tmp); | ||
301 | |||
302 | __delay(200); | ||
303 | } | ||
304 | } | ||
305 | |||
306 | void crash_register_spus(struct list_head *list) | ||
307 | { | ||
308 | struct spu *spu; | ||
309 | |||
310 | list_for_each_entry(spu, list, full_list) { | ||
311 | if (WARN_ON(spu->number >= CRASH_NUM_SPUS)) | ||
312 | continue; | ||
313 | |||
314 | crash_spu_info[spu->number].spu = spu; | ||
315 | } | ||
316 | } | ||
317 | |||
318 | #else | ||
319 | static inline void crash_kexec_stop_spus(void) | ||
320 | { | ||
321 | } | ||
322 | #endif /* CONFIG_SPU_BASE */ | ||
323 | 257 | ||
324 | /* | 258 | /* |
325 | * Register a function to be called on shutdown. Only use this if you | 259 | * Register a function to be called on shutdown. Only use this if you |
@@ -439,8 +373,6 @@ void default_machine_crash_shutdown(struct pt_regs *regs) | |||
439 | crash_shutdown_cpu = -1; | 373 | crash_shutdown_cpu = -1; |
440 | __debugger_fault_handler = old_handler; | 374 | __debugger_fault_handler = old_handler; |
441 | 375 | ||
442 | crash_kexec_stop_spus(); | ||
443 | |||
444 | if (ppc_md.kexec_cpu_down) | 376 | if (ppc_md.kexec_cpu_down) |
445 | ppc_md.kexec_cpu_down(1, 0); | 377 | ppc_md.kexec_cpu_down(1, 0); |
446 | } | 378 | } |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index c22dc1ec1c94..56212bc0ab08 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -880,7 +880,18 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_47x) | |||
880 | */ | 880 | */ |
881 | andi. r10,r9,MSR_EE | 881 | andi. r10,r9,MSR_EE |
882 | beq 1f | 882 | beq 1f |
883 | /* | ||
884 | * Since the ftrace irqsoff latency trace checks CALLER_ADDR1, | ||
885 | * which is the stack frame here, we need to force a stack frame | ||
886 | * in case we came from user space. | ||
887 | */ | ||
888 | stwu r1,-32(r1) | ||
889 | mflr r0 | ||
890 | stw r0,4(r1) | ||
891 | stwu r1,-32(r1) | ||
883 | bl trace_hardirqs_on | 892 | bl trace_hardirqs_on |
893 | lwz r1,0(r1) | ||
894 | lwz r1,0(r1) | ||
884 | lwz r9,_MSR(r1) | 895 | lwz r9,_MSR(r1) |
885 | 1: | 896 | 1: |
886 | #endif /* CONFIG_TRACE_IRQFLAGS */ | 897 | #endif /* CONFIG_TRACE_IRQFLAGS */ |
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c index df7e20c191cd..49a170af8145 100644 --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/memblock.h> | 15 | #include <linux/memblock.h> |
16 | #include <linux/of.h> | 16 | #include <linux/of.h> |
17 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
18 | #include <linux/ftrace.h> | ||
18 | 19 | ||
19 | #include <asm/machdep.h> | 20 | #include <asm/machdep.h> |
20 | #include <asm/prom.h> | 21 | #include <asm/prom.h> |
@@ -44,10 +45,7 @@ void machine_kexec_mask_interrupts(void) { | |||
44 | 45 | ||
45 | void machine_crash_shutdown(struct pt_regs *regs) | 46 | void machine_crash_shutdown(struct pt_regs *regs) |
46 | { | 47 | { |
47 | if (ppc_md.machine_crash_shutdown) | 48 | default_machine_crash_shutdown(regs); |
48 | ppc_md.machine_crash_shutdown(regs); | ||
49 | else | ||
50 | default_machine_crash_shutdown(regs); | ||
51 | } | 49 | } |
52 | 50 | ||
53 | /* | 51 | /* |
@@ -65,8 +63,6 @@ int machine_kexec_prepare(struct kimage *image) | |||
65 | 63 | ||
66 | void machine_kexec_cleanup(struct kimage *image) | 64 | void machine_kexec_cleanup(struct kimage *image) |
67 | { | 65 | { |
68 | if (ppc_md.machine_kexec_cleanup) | ||
69 | ppc_md.machine_kexec_cleanup(image); | ||
70 | } | 66 | } |
71 | 67 | ||
72 | void arch_crash_save_vmcoreinfo(void) | 68 | void arch_crash_save_vmcoreinfo(void) |
@@ -87,10 +83,13 @@ void arch_crash_save_vmcoreinfo(void) | |||
87 | */ | 83 | */ |
88 | void machine_kexec(struct kimage *image) | 84 | void machine_kexec(struct kimage *image) |
89 | { | 85 | { |
90 | if (ppc_md.machine_kexec) | 86 | int save_ftrace_enabled; |
91 | ppc_md.machine_kexec(image); | 87 | |
92 | else | 88 | save_ftrace_enabled = __ftrace_enabled_save(); |
93 | default_machine_kexec(image); | 89 | |
90 | default_machine_kexec(image); | ||
91 | |||
92 | __ftrace_enabled_restore(save_ftrace_enabled); | ||
94 | 93 | ||
95 | /* Fall back to normal restart if we're still alive. */ | 94 | /* Fall back to normal restart if we're still alive. */ |
96 | machine_restart(NULL); | 95 | machine_restart(NULL); |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 84906d3fc860..7a1d5cb76932 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -631,7 +631,7 @@ void show_regs(struct pt_regs * regs) | |||
631 | #ifdef CONFIG_PPC_ADV_DEBUG_REGS | 631 | #ifdef CONFIG_PPC_ADV_DEBUG_REGS |
632 | printk("DEAR: "REG", ESR: "REG"\n", regs->dar, regs->dsisr); | 632 | printk("DEAR: "REG", ESR: "REG"\n", regs->dar, regs->dsisr); |
633 | #else | 633 | #else |
634 | printk("DAR: "REG", DSISR: "REG"\n", regs->dar, regs->dsisr); | 634 | printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr); |
635 | #endif | 635 | #endif |
636 | printk("TASK = %p[%d] '%s' THREAD: %p", | 636 | printk("TASK = %p[%d] '%s' THREAD: %p", |
637 | current, task_pid_nr(current), current->comm, task_thread_info(current)); | 637 | current, task_pid_nr(current), current->comm, task_thread_info(current)); |
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c index 2b442e6c21e6..bf5f5ce3a7bd 100644 --- a/arch/powerpc/kernel/rtas_flash.c +++ b/arch/powerpc/kernel/rtas_flash.c | |||
@@ -256,31 +256,16 @@ static ssize_t rtas_flash_read(struct file *file, char __user *buf, | |||
256 | struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode); | 256 | struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode); |
257 | struct rtas_update_flash_t *uf; | 257 | struct rtas_update_flash_t *uf; |
258 | char msg[RTAS_MSG_MAXLEN]; | 258 | char msg[RTAS_MSG_MAXLEN]; |
259 | int msglen; | ||
260 | 259 | ||
261 | uf = (struct rtas_update_flash_t *) dp->data; | 260 | uf = dp->data; |
262 | 261 | ||
263 | if (!strcmp(dp->name, FIRMWARE_FLASH_NAME)) { | 262 | if (!strcmp(dp->name, FIRMWARE_FLASH_NAME)) { |
264 | get_flash_status_msg(uf->status, msg); | 263 | get_flash_status_msg(uf->status, msg); |
265 | } else { /* FIRMWARE_UPDATE_NAME */ | 264 | } else { /* FIRMWARE_UPDATE_NAME */ |
266 | sprintf(msg, "%d\n", uf->status); | 265 | sprintf(msg, "%d\n", uf->status); |
267 | } | 266 | } |
268 | msglen = strlen(msg); | ||
269 | if (msglen > count) | ||
270 | msglen = count; | ||
271 | |||
272 | if (ppos && *ppos != 0) | ||
273 | return 0; /* be cheap */ | ||
274 | |||
275 | if (!access_ok(VERIFY_WRITE, buf, msglen)) | ||
276 | return -EINVAL; | ||
277 | 267 | ||
278 | if (copy_to_user(buf, msg, msglen)) | 268 | return simple_read_from_buffer(buf, count, ppos, msg, strlen(msg)); |
279 | return -EFAULT; | ||
280 | |||
281 | if (ppos) | ||
282 | *ppos = msglen; | ||
283 | return msglen; | ||
284 | } | 269 | } |
285 | 270 | ||
286 | /* constructor for flash_block_cache */ | 271 | /* constructor for flash_block_cache */ |
@@ -394,26 +379,13 @@ static ssize_t manage_flash_read(struct file *file, char __user *buf, | |||
394 | char msg[RTAS_MSG_MAXLEN]; | 379 | char msg[RTAS_MSG_MAXLEN]; |
395 | int msglen; | 380 | int msglen; |
396 | 381 | ||
397 | args_buf = (struct rtas_manage_flash_t *) dp->data; | 382 | args_buf = dp->data; |
398 | if (args_buf == NULL) | 383 | if (args_buf == NULL) |
399 | return 0; | 384 | return 0; |
400 | 385 | ||
401 | msglen = sprintf(msg, "%d\n", args_buf->status); | 386 | msglen = sprintf(msg, "%d\n", args_buf->status); |
402 | if (msglen > count) | ||
403 | msglen = count; | ||
404 | 387 | ||
405 | if (ppos && *ppos != 0) | 388 | return simple_read_from_buffer(buf, count, ppos, msg, msglen); |
406 | return 0; /* be cheap */ | ||
407 | |||
408 | if (!access_ok(VERIFY_WRITE, buf, msglen)) | ||
409 | return -EINVAL; | ||
410 | |||
411 | if (copy_to_user(buf, msg, msglen)) | ||
412 | return -EFAULT; | ||
413 | |||
414 | if (ppos) | ||
415 | *ppos = msglen; | ||
416 | return msglen; | ||
417 | } | 389 | } |
418 | 390 | ||
419 | static ssize_t manage_flash_write(struct file *file, const char __user *buf, | 391 | static ssize_t manage_flash_write(struct file *file, const char __user *buf, |
@@ -495,24 +467,11 @@ static ssize_t validate_flash_read(struct file *file, char __user *buf, | |||
495 | char msg[RTAS_MSG_MAXLEN]; | 467 | char msg[RTAS_MSG_MAXLEN]; |
496 | int msglen; | 468 | int msglen; |
497 | 469 | ||
498 | args_buf = (struct rtas_validate_flash_t *) dp->data; | 470 | args_buf = dp->data; |
499 | 471 | ||
500 | if (ppos && *ppos != 0) | ||
501 | return 0; /* be cheap */ | ||
502 | |||
503 | msglen = get_validate_flash_msg(args_buf, msg); | 472 | msglen = get_validate_flash_msg(args_buf, msg); |
504 | if (msglen > count) | ||
505 | msglen = count; | ||
506 | |||
507 | if (!access_ok(VERIFY_WRITE, buf, msglen)) | ||
508 | return -EINVAL; | ||
509 | |||
510 | if (copy_to_user(buf, msg, msglen)) | ||
511 | return -EFAULT; | ||
512 | 473 | ||
513 | if (ppos) | 474 | return simple_read_from_buffer(buf, count, ppos, msg, msglen); |
514 | *ppos = msglen; | ||
515 | return msglen; | ||
516 | } | 475 | } |
517 | 476 | ||
518 | static ssize_t validate_flash_write(struct file *file, const char __user *buf, | 477 | static ssize_t validate_flash_write(struct file *file, const char __user *buf, |
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c index 0438f819fe6b..049dbecb5dbc 100644 --- a/arch/powerpc/kernel/rtasd.c +++ b/arch/powerpc/kernel/rtasd.c | |||
@@ -160,7 +160,7 @@ static int log_rtas_len(char * buf) | |||
160 | /* rtas fixed header */ | 160 | /* rtas fixed header */ |
161 | len = 8; | 161 | len = 8; |
162 | err = (struct rtas_error_log *)buf; | 162 | err = (struct rtas_error_log *)buf; |
163 | if (err->extended_log_length) { | 163 | if (err->extended && err->extended_log_length) { |
164 | 164 | ||
165 | /* extended header */ | 165 | /* extended header */ |
166 | len += err->extended_log_length; | 166 | len += err->extended_log_length; |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 09e4dea4a85a..09d31dbf43f9 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -265,11 +265,26 @@ void accumulate_stolen_time(void) | |||
265 | { | 265 | { |
266 | u64 sst, ust; | 266 | u64 sst, ust; |
267 | 267 | ||
268 | sst = scan_dispatch_log(get_paca()->starttime_user); | 268 | u8 save_soft_enabled = local_paca->soft_enabled; |
269 | ust = scan_dispatch_log(get_paca()->starttime); | 269 | u8 save_hard_enabled = local_paca->hard_enabled; |
270 | get_paca()->system_time -= sst; | 270 | |
271 | get_paca()->user_time -= ust; | 271 | /* We are called early in the exception entry, before |
272 | get_paca()->stolen_time += ust + sst; | 272 | * soft/hard_enabled are sync'ed to the expected state |
273 | * for the exception. We are hard disabled but the PACA | ||
274 | * needs to reflect that so various debug stuff doesn't | ||
275 | * complain | ||
276 | */ | ||
277 | local_paca->soft_enabled = 0; | ||
278 | local_paca->hard_enabled = 0; | ||
279 | |||
280 | sst = scan_dispatch_log(local_paca->starttime_user); | ||
281 | ust = scan_dispatch_log(local_paca->starttime); | ||
282 | local_paca->system_time -= sst; | ||
283 | local_paca->user_time -= ust; | ||
284 | local_paca->stolen_time += ust + sst; | ||
285 | |||
286 | local_paca->soft_enabled = save_soft_enabled; | ||
287 | local_paca->hard_enabled = save_hard_enabled; | ||
273 | } | 288 | } |
274 | 289 | ||
275 | static inline u64 calculate_stolen_time(u64 stop_tb) | 290 | static inline u64 calculate_stolen_time(u64 stop_tb) |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 1b2cdc8eec90..bd74fac169be 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -626,12 +626,6 @@ void machine_check_exception(struct pt_regs *regs) | |||
626 | if (recover > 0) | 626 | if (recover > 0) |
627 | return; | 627 | return; |
628 | 628 | ||
629 | if (user_mode(regs)) { | ||
630 | regs->msr |= MSR_RI; | ||
631 | _exception(SIGBUS, regs, BUS_ADRERR, regs->nip); | ||
632 | return; | ||
633 | } | ||
634 | |||
635 | #if defined(CONFIG_8xx) && defined(CONFIG_PCI) | 629 | #if defined(CONFIG_8xx) && defined(CONFIG_PCI) |
636 | /* the qspan pci read routines can cause machine checks -- Cort | 630 | /* the qspan pci read routines can cause machine checks -- Cort |
637 | * | 631 | * |
@@ -643,16 +637,12 @@ void machine_check_exception(struct pt_regs *regs) | |||
643 | return; | 637 | return; |
644 | #endif | 638 | #endif |
645 | 639 | ||
646 | if (debugger_fault_handler(regs)) { | 640 | if (debugger_fault_handler(regs)) |
647 | regs->msr |= MSR_RI; | ||
648 | return; | 641 | return; |
649 | } | ||
650 | 642 | ||
651 | if (check_io_access(regs)) | 643 | if (check_io_access(regs)) |
652 | return; | 644 | return; |
653 | 645 | ||
654 | if (debugger_fault_handler(regs)) | ||
655 | return; | ||
656 | die("Machine check", regs, SIGBUS); | 646 | die("Machine check", regs, SIGBUS); |
657 | 647 | ||
658 | /* Must die if the interrupt is not recoverable */ | 648 | /* Must die if the interrupt is not recoverable */ |
diff --git a/arch/powerpc/lib/feature-fixups-test.S b/arch/powerpc/lib/feature-fixups-test.S index cb737484c5aa..f4613118132e 100644 --- a/arch/powerpc/lib/feature-fixups-test.S +++ b/arch/powerpc/lib/feature-fixups-test.S | |||
@@ -172,6 +172,25 @@ globl(ftr_fixup_test6_expected) | |||
172 | 3: or 3,3,3 | 172 | 3: or 3,3,3 |
173 | 173 | ||
174 | 174 | ||
175 | #if 0 | ||
176 | /* Test that if we have a larger else case the assembler spots it and | ||
177 | * reports an error. #if 0'ed so as not to break the build normally. | ||
178 | */ | ||
179 | ftr_fixup_test7: | ||
180 | or 1,1,1 | ||
181 | BEGIN_FTR_SECTION | ||
182 | or 2,2,2 | ||
183 | or 2,2,2 | ||
184 | or 2,2,2 | ||
185 | FTR_SECTION_ELSE | ||
186 | or 3,3,3 | ||
187 | or 3,3,3 | ||
188 | or 3,3,3 | ||
189 | or 3,3,3 | ||
190 | ALT_FTR_SECTION_END(0, 1) | ||
191 | or 1,1,1 | ||
192 | #endif | ||
193 | |||
175 | #define MAKE_MACRO_TEST(TYPE) \ | 194 | #define MAKE_MACRO_TEST(TYPE) \ |
176 | globl(ftr_fixup_test_ ##TYPE##_macros) \ | 195 | globl(ftr_fixup_test_ ##TYPE##_macros) \ |
177 | or 1,1,1; \ | 196 | or 1,1,1; \ |
diff --git a/arch/powerpc/platforms/83xx/mpc830x_rdb.c b/arch/powerpc/platforms/83xx/mpc830x_rdb.c index 661d354e4ff2..d0c4e15b7794 100644 --- a/arch/powerpc/platforms/83xx/mpc830x_rdb.c +++ b/arch/powerpc/platforms/83xx/mpc830x_rdb.c | |||
@@ -57,12 +57,12 @@ static void __init mpc830x_rdb_init_IRQ(void) | |||
57 | ipic_set_default_priority(); | 57 | ipic_set_default_priority(); |
58 | } | 58 | } |
59 | 59 | ||
60 | struct const char *board[] __initdata = { | 60 | static const char *board[] __initdata = { |
61 | "MPC8308RDB", | 61 | "MPC8308RDB", |
62 | "fsl,mpc8308rdb", | 62 | "fsl,mpc8308rdb", |
63 | "denx,mpc8308_p1m", | 63 | "denx,mpc8308_p1m", |
64 | NULL | 64 | NULL |
65 | } | 65 | }; |
66 | 66 | ||
67 | /* | 67 | /* |
68 | * Called very early, MMU is off, device-tree isn't unflattened | 68 | * Called very early, MMU is off, device-tree isn't unflattened |
diff --git a/arch/powerpc/platforms/83xx/mpc831x_rdb.c b/arch/powerpc/platforms/83xx/mpc831x_rdb.c index b54cd736a895..f859ead49a8d 100644 --- a/arch/powerpc/platforms/83xx/mpc831x_rdb.c +++ b/arch/powerpc/platforms/83xx/mpc831x_rdb.c | |||
@@ -60,11 +60,11 @@ static void __init mpc831x_rdb_init_IRQ(void) | |||
60 | ipic_set_default_priority(); | 60 | ipic_set_default_priority(); |
61 | } | 61 | } |
62 | 62 | ||
63 | struct const char *board[] __initdata = { | 63 | static const char *board[] __initdata = { |
64 | "MPC8313ERDB", | 64 | "MPC8313ERDB", |
65 | "fsl,mpc8315erdb", | 65 | "fsl,mpc8315erdb", |
66 | NULL | 66 | NULL |
67 | } | 67 | }; |
68 | 68 | ||
69 | /* | 69 | /* |
70 | * Called very early, MMU is off, device-tree isn't unflattened | 70 | * Called very early, MMU is off, device-tree isn't unflattened |
diff --git a/arch/powerpc/platforms/83xx/mpc83xx.h b/arch/powerpc/platforms/83xx/mpc83xx.h index 0fea8811d45b..82a434510d83 100644 --- a/arch/powerpc/platforms/83xx/mpc83xx.h +++ b/arch/powerpc/platforms/83xx/mpc83xx.h | |||
@@ -35,6 +35,8 @@ | |||
35 | 35 | ||
36 | /* system i/o configuration register high */ | 36 | /* system i/o configuration register high */ |
37 | #define MPC83XX_SICRH_OFFS 0x118 | 37 | #define MPC83XX_SICRH_OFFS 0x118 |
38 | #define MPC8308_SICRH_USB_MASK 0x000c0000 | ||
39 | #define MPC8308_SICRH_USB_ULPI 0x00040000 | ||
38 | #define MPC834X_SICRH_USB_UTMI 0x00020000 | 40 | #define MPC834X_SICRH_USB_UTMI 0x00020000 |
39 | #define MPC831X_SICRH_USB_MASK 0x000000e0 | 41 | #define MPC831X_SICRH_USB_MASK 0x000000e0 |
40 | #define MPC831X_SICRH_USB_ULPI 0x000000a0 | 42 | #define MPC831X_SICRH_USB_ULPI 0x000000a0 |
diff --git a/arch/powerpc/platforms/83xx/usb.c b/arch/powerpc/platforms/83xx/usb.c index 3ba4bb7d41bb..2c64164722d0 100644 --- a/arch/powerpc/platforms/83xx/usb.c +++ b/arch/powerpc/platforms/83xx/usb.c | |||
@@ -127,7 +127,8 @@ int mpc831x_usb_cfg(void) | |||
127 | 127 | ||
128 | /* Configure clock */ | 128 | /* Configure clock */ |
129 | immr_node = of_get_parent(np); | 129 | immr_node = of_get_parent(np); |
130 | if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) | 130 | if (immr_node && (of_device_is_compatible(immr_node, "fsl,mpc8315-immr") || |
131 | of_device_is_compatible(immr_node, "fsl,mpc8308-immr"))) | ||
131 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, | 132 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, |
132 | MPC8315_SCCR_USB_MASK, | 133 | MPC8315_SCCR_USB_MASK, |
133 | MPC8315_SCCR_USB_DRCM_01); | 134 | MPC8315_SCCR_USB_DRCM_01); |
@@ -138,7 +139,11 @@ int mpc831x_usb_cfg(void) | |||
138 | 139 | ||
139 | /* Configure pin mux for ULPI. There is no pin mux for UTMI */ | 140 | /* Configure pin mux for ULPI. There is no pin mux for UTMI */ |
140 | if (prop && !strcmp(prop, "ulpi")) { | 141 | if (prop && !strcmp(prop, "ulpi")) { |
141 | if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) { | 142 | if (of_device_is_compatible(immr_node, "fsl,mpc8308-immr")) { |
143 | clrsetbits_be32(immap + MPC83XX_SICRH_OFFS, | ||
144 | MPC8308_SICRH_USB_MASK, | ||
145 | MPC8308_SICRH_USB_ULPI); | ||
146 | } else if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) { | ||
142 | clrsetbits_be32(immap + MPC83XX_SICRL_OFFS, | 147 | clrsetbits_be32(immap + MPC83XX_SICRL_OFFS, |
143 | MPC8315_SICRL_USB_MASK, | 148 | MPC8315_SICRL_USB_MASK, |
144 | MPC8315_SICRL_USB_ULPI); | 149 | MPC8315_SICRL_USB_ULPI); |
@@ -173,6 +178,9 @@ int mpc831x_usb_cfg(void) | |||
173 | !strcmp(prop, "utmi"))) { | 178 | !strcmp(prop, "utmi"))) { |
174 | u32 refsel; | 179 | u32 refsel; |
175 | 180 | ||
181 | if (of_device_is_compatible(immr_node, "fsl,mpc8308-immr")) | ||
182 | goto out; | ||
183 | |||
176 | if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) | 184 | if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) |
177 | refsel = CONTROL_REFSEL_24MHZ; | 185 | refsel = CONTROL_REFSEL_24MHZ; |
178 | else | 186 | else |
@@ -186,9 +194,11 @@ int mpc831x_usb_cfg(void) | |||
186 | temp = CONTROL_PHY_CLK_SEL_ULPI; | 194 | temp = CONTROL_PHY_CLK_SEL_ULPI; |
187 | #ifdef CONFIG_USB_OTG | 195 | #ifdef CONFIG_USB_OTG |
188 | /* Set OTG_PORT */ | 196 | /* Set OTG_PORT */ |
189 | dr_mode = of_get_property(np, "dr_mode", NULL); | 197 | if (!of_device_is_compatible(immr_node, "fsl,mpc8308-immr")) { |
190 | if (dr_mode && !strcmp(dr_mode, "otg")) | 198 | dr_mode = of_get_property(np, "dr_mode", NULL); |
191 | temp |= CONTROL_OTG_PORT; | 199 | if (dr_mode && !strcmp(dr_mode, "otg")) |
200 | temp |= CONTROL_OTG_PORT; | ||
201 | } | ||
192 | #endif /* CONFIG_USB_OTG */ | 202 | #endif /* CONFIG_USB_OTG */ |
193 | out_be32(usb_regs + FSL_USB2_CONTROL_OFFS, temp); | 203 | out_be32(usb_regs + FSL_USB2_CONTROL_OFFS, temp); |
194 | } else { | 204 | } else { |
@@ -196,6 +206,7 @@ int mpc831x_usb_cfg(void) | |||
196 | ret = -EINVAL; | 206 | ret = -EINVAL; |
197 | } | 207 | } |
198 | 208 | ||
209 | out: | ||
199 | iounmap(usb_regs); | 210 | iounmap(usb_regs); |
200 | of_node_put(np); | 211 | of_node_put(np); |
201 | return ret; | 212 | return ret; |
diff --git a/arch/powerpc/platforms/cell/cpufreq_spudemand.c b/arch/powerpc/platforms/cell/cpufreq_spudemand.c index 968c1c0b4d5b..d809836bcf5f 100644 --- a/arch/powerpc/platforms/cell/cpufreq_spudemand.c +++ b/arch/powerpc/platforms/cell/cpufreq_spudemand.c | |||
@@ -39,8 +39,6 @@ struct spu_gov_info_struct { | |||
39 | }; | 39 | }; |
40 | static DEFINE_PER_CPU(struct spu_gov_info_struct, spu_gov_info); | 40 | static DEFINE_PER_CPU(struct spu_gov_info_struct, spu_gov_info); |
41 | 41 | ||
42 | static struct workqueue_struct *kspugov_wq; | ||
43 | |||
44 | static int calc_freq(struct spu_gov_info_struct *info) | 42 | static int calc_freq(struct spu_gov_info_struct *info) |
45 | { | 43 | { |
46 | int cpu; | 44 | int cpu; |
@@ -71,14 +69,14 @@ static void spu_gov_work(struct work_struct *work) | |||
71 | __cpufreq_driver_target(info->policy, target_freq, CPUFREQ_RELATION_H); | 69 | __cpufreq_driver_target(info->policy, target_freq, CPUFREQ_RELATION_H); |
72 | 70 | ||
73 | delay = usecs_to_jiffies(info->poll_int); | 71 | delay = usecs_to_jiffies(info->poll_int); |
74 | queue_delayed_work_on(info->policy->cpu, kspugov_wq, &info->work, delay); | 72 | schedule_delayed_work_on(info->policy->cpu, &info->work, delay); |
75 | } | 73 | } |
76 | 74 | ||
77 | static void spu_gov_init_work(struct spu_gov_info_struct *info) | 75 | static void spu_gov_init_work(struct spu_gov_info_struct *info) |
78 | { | 76 | { |
79 | int delay = usecs_to_jiffies(info->poll_int); | 77 | int delay = usecs_to_jiffies(info->poll_int); |
80 | INIT_DELAYED_WORK_DEFERRABLE(&info->work, spu_gov_work); | 78 | INIT_DELAYED_WORK_DEFERRABLE(&info->work, spu_gov_work); |
81 | queue_delayed_work_on(info->policy->cpu, kspugov_wq, &info->work, delay); | 79 | schedule_delayed_work_on(info->policy->cpu, &info->work, delay); |
82 | } | 80 | } |
83 | 81 | ||
84 | static void spu_gov_cancel_work(struct spu_gov_info_struct *info) | 82 | static void spu_gov_cancel_work(struct spu_gov_info_struct *info) |
@@ -152,27 +150,15 @@ static int __init spu_gov_init(void) | |||
152 | { | 150 | { |
153 | int ret; | 151 | int ret; |
154 | 152 | ||
155 | kspugov_wq = create_workqueue("kspugov"); | ||
156 | if (!kspugov_wq) { | ||
157 | printk(KERN_ERR "creation of kspugov failed\n"); | ||
158 | ret = -EFAULT; | ||
159 | goto out; | ||
160 | } | ||
161 | |||
162 | ret = cpufreq_register_governor(&spu_governor); | 153 | ret = cpufreq_register_governor(&spu_governor); |
163 | if (ret) { | 154 | if (ret) |
164 | printk(KERN_ERR "registration of governor failed\n"); | 155 | printk(KERN_ERR "registration of governor failed\n"); |
165 | destroy_workqueue(kspugov_wq); | ||
166 | goto out; | ||
167 | } | ||
168 | out: | ||
169 | return ret; | 156 | return ret; |
170 | } | 157 | } |
171 | 158 | ||
172 | static void __exit spu_gov_exit(void) | 159 | static void __exit spu_gov_exit(void) |
173 | { | 160 | { |
174 | cpufreq_unregister_governor(&spu_governor); | 161 | cpufreq_unregister_governor(&spu_governor); |
175 | destroy_workqueue(kspugov_wq); | ||
176 | } | 162 | } |
177 | 163 | ||
178 | 164 | ||
diff --git a/arch/powerpc/platforms/cell/qpace_setup.c b/arch/powerpc/platforms/cell/qpace_setup.c index 1b5749042756..d31c594cfdf3 100644 --- a/arch/powerpc/platforms/cell/qpace_setup.c +++ b/arch/powerpc/platforms/cell/qpace_setup.c | |||
@@ -145,9 +145,4 @@ define_machine(qpace) { | |||
145 | .calibrate_decr = generic_calibrate_decr, | 145 | .calibrate_decr = generic_calibrate_decr, |
146 | .progress = qpace_progress, | 146 | .progress = qpace_progress, |
147 | .init_IRQ = iic_init_IRQ, | 147 | .init_IRQ = iic_init_IRQ, |
148 | #ifdef CONFIG_KEXEC | ||
149 | .machine_kexec = default_machine_kexec, | ||
150 | .machine_kexec_prepare = default_machine_kexec_prepare, | ||
151 | .machine_crash_shutdown = default_machine_crash_shutdown, | ||
152 | #endif | ||
153 | }; | 148 | }; |
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index 8547e86bfb42..acfaccea5f4f 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <asm/spu_csa.h> | 37 | #include <asm/spu_csa.h> |
38 | #include <asm/xmon.h> | 38 | #include <asm/xmon.h> |
39 | #include <asm/prom.h> | 39 | #include <asm/prom.h> |
40 | #include <asm/kexec.h> | ||
40 | 41 | ||
41 | const struct spu_management_ops *spu_management_ops; | 42 | const struct spu_management_ops *spu_management_ops; |
42 | EXPORT_SYMBOL_GPL(spu_management_ops); | 43 | EXPORT_SYMBOL_GPL(spu_management_ops); |
@@ -727,6 +728,75 @@ static ssize_t spu_stat_show(struct sys_device *sysdev, | |||
727 | 728 | ||
728 | static SYSDEV_ATTR(stat, 0644, spu_stat_show, NULL); | 729 | static SYSDEV_ATTR(stat, 0644, spu_stat_show, NULL); |
729 | 730 | ||
731 | #ifdef CONFIG_KEXEC | ||
732 | |||
733 | struct crash_spu_info { | ||
734 | struct spu *spu; | ||
735 | u32 saved_spu_runcntl_RW; | ||
736 | u32 saved_spu_status_R; | ||
737 | u32 saved_spu_npc_RW; | ||
738 | u64 saved_mfc_sr1_RW; | ||
739 | u64 saved_mfc_dar; | ||
740 | u64 saved_mfc_dsisr; | ||
741 | }; | ||
742 | |||
743 | #define CRASH_NUM_SPUS 16 /* Enough for current hardware */ | ||
744 | static struct crash_spu_info crash_spu_info[CRASH_NUM_SPUS]; | ||
745 | |||
746 | static void crash_kexec_stop_spus(void) | ||
747 | { | ||
748 | struct spu *spu; | ||
749 | int i; | ||
750 | u64 tmp; | ||
751 | |||
752 | for (i = 0; i < CRASH_NUM_SPUS; i++) { | ||
753 | if (!crash_spu_info[i].spu) | ||
754 | continue; | ||
755 | |||
756 | spu = crash_spu_info[i].spu; | ||
757 | |||
758 | crash_spu_info[i].saved_spu_runcntl_RW = | ||
759 | in_be32(&spu->problem->spu_runcntl_RW); | ||
760 | crash_spu_info[i].saved_spu_status_R = | ||
761 | in_be32(&spu->problem->spu_status_R); | ||
762 | crash_spu_info[i].saved_spu_npc_RW = | ||
763 | in_be32(&spu->problem->spu_npc_RW); | ||
764 | |||
765 | crash_spu_info[i].saved_mfc_dar = spu_mfc_dar_get(spu); | ||
766 | crash_spu_info[i].saved_mfc_dsisr = spu_mfc_dsisr_get(spu); | ||
767 | tmp = spu_mfc_sr1_get(spu); | ||
768 | crash_spu_info[i].saved_mfc_sr1_RW = tmp; | ||
769 | |||
770 | tmp &= ~MFC_STATE1_MASTER_RUN_CONTROL_MASK; | ||
771 | spu_mfc_sr1_set(spu, tmp); | ||
772 | |||
773 | __delay(200); | ||
774 | } | ||
775 | } | ||
776 | |||
777 | static void crash_register_spus(struct list_head *list) | ||
778 | { | ||
779 | struct spu *spu; | ||
780 | int ret; | ||
781 | |||
782 | list_for_each_entry(spu, list, full_list) { | ||
783 | if (WARN_ON(spu->number >= CRASH_NUM_SPUS)) | ||
784 | continue; | ||
785 | |||
786 | crash_spu_info[spu->number].spu = spu; | ||
787 | } | ||
788 | |||
789 | ret = crash_shutdown_register(&crash_kexec_stop_spus); | ||
790 | if (ret) | ||
791 | printk(KERN_ERR "Could not register SPU crash handler"); | ||
792 | } | ||
793 | |||
794 | #else | ||
795 | static inline void crash_register_spus(struct list_head *list) | ||
796 | { | ||
797 | } | ||
798 | #endif | ||
799 | |||
730 | static int __init init_spu_base(void) | 800 | static int __init init_spu_base(void) |
731 | { | 801 | { |
732 | int i, ret = 0; | 802 | int i, ret = 0; |
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index 02f7b113a31b..3c7c3f82d842 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -219,24 +219,17 @@ spufs_mem_write(struct file *file, const char __user *buffer, | |||
219 | loff_t pos = *ppos; | 219 | loff_t pos = *ppos; |
220 | int ret; | 220 | int ret; |
221 | 221 | ||
222 | if (pos < 0) | ||
223 | return -EINVAL; | ||
224 | if (pos > LS_SIZE) | 222 | if (pos > LS_SIZE) |
225 | return -EFBIG; | 223 | return -EFBIG; |
226 | if (size > LS_SIZE - pos) | ||
227 | size = LS_SIZE - pos; | ||
228 | 224 | ||
229 | ret = spu_acquire(ctx); | 225 | ret = spu_acquire(ctx); |
230 | if (ret) | 226 | if (ret) |
231 | return ret; | 227 | return ret; |
232 | 228 | ||
233 | local_store = ctx->ops->get_ls(ctx); | 229 | local_store = ctx->ops->get_ls(ctx); |
234 | ret = copy_from_user(local_store + pos, buffer, size); | 230 | size = simple_write_to_buffer(local_store, LS_SIZE, ppos, buffer, size); |
235 | spu_release(ctx); | 231 | spu_release(ctx); |
236 | 232 | ||
237 | if (ret) | ||
238 | return -EFAULT; | ||
239 | *ppos = pos + size; | ||
240 | return size; | 233 | return size; |
241 | } | 234 | } |
242 | 235 | ||
@@ -574,18 +567,15 @@ spufs_regs_write(struct file *file, const char __user *buffer, | |||
574 | if (*pos >= sizeof(lscsa->gprs)) | 567 | if (*pos >= sizeof(lscsa->gprs)) |
575 | return -EFBIG; | 568 | return -EFBIG; |
576 | 569 | ||
577 | size = min_t(ssize_t, sizeof(lscsa->gprs) - *pos, size); | ||
578 | *pos += size; | ||
579 | |||
580 | ret = spu_acquire_saved(ctx); | 570 | ret = spu_acquire_saved(ctx); |
581 | if (ret) | 571 | if (ret) |
582 | return ret; | 572 | return ret; |
583 | 573 | ||
584 | ret = copy_from_user((char *)lscsa->gprs + *pos - size, | 574 | size = simple_write_to_buffer(lscsa->gprs, sizeof(lscsa->gprs), pos, |
585 | buffer, size) ? -EFAULT : size; | 575 | buffer, size); |
586 | 576 | ||
587 | spu_release_saved(ctx); | 577 | spu_release_saved(ctx); |
588 | return ret; | 578 | return size; |
589 | } | 579 | } |
590 | 580 | ||
591 | static const struct file_operations spufs_regs_fops = { | 581 | static const struct file_operations spufs_regs_fops = { |
@@ -630,18 +620,15 @@ spufs_fpcr_write(struct file *file, const char __user * buffer, | |||
630 | if (*pos >= sizeof(lscsa->fpcr)) | 620 | if (*pos >= sizeof(lscsa->fpcr)) |
631 | return -EFBIG; | 621 | return -EFBIG; |
632 | 622 | ||
633 | size = min_t(ssize_t, sizeof(lscsa->fpcr) - *pos, size); | ||
634 | |||
635 | ret = spu_acquire_saved(ctx); | 623 | ret = spu_acquire_saved(ctx); |
636 | if (ret) | 624 | if (ret) |
637 | return ret; | 625 | return ret; |
638 | 626 | ||
639 | *pos += size; | 627 | size = simple_write_to_buffer(&lscsa->fpcr, sizeof(lscsa->fpcr), pos, |
640 | ret = copy_from_user((char *)&lscsa->fpcr + *pos - size, | 628 | buffer, size); |
641 | buffer, size) ? -EFAULT : size; | ||
642 | 629 | ||
643 | spu_release_saved(ctx); | 630 | spu_release_saved(ctx); |
644 | return ret; | 631 | return size; |
645 | } | 632 | } |
646 | 633 | ||
647 | static const struct file_operations spufs_fpcr_fops = { | 634 | static const struct file_operations spufs_fpcr_fops = { |
diff --git a/arch/powerpc/platforms/embedded6xx/gamecube.c b/arch/powerpc/platforms/embedded6xx/gamecube.c index 1106fd99627f..a138e14bad2e 100644 --- a/arch/powerpc/platforms/embedded6xx/gamecube.c +++ b/arch/powerpc/platforms/embedded6xx/gamecube.c | |||
@@ -75,14 +75,6 @@ static void gamecube_shutdown(void) | |||
75 | flipper_quiesce(); | 75 | flipper_quiesce(); |
76 | } | 76 | } |
77 | 77 | ||
78 | #ifdef CONFIG_KEXEC | ||
79 | static int gamecube_kexec_prepare(struct kimage *image) | ||
80 | { | ||
81 | return 0; | ||
82 | } | ||
83 | #endif /* CONFIG_KEXEC */ | ||
84 | |||
85 | |||
86 | define_machine(gamecube) { | 78 | define_machine(gamecube) { |
87 | .name = "gamecube", | 79 | .name = "gamecube", |
88 | .probe = gamecube_probe, | 80 | .probe = gamecube_probe, |
@@ -95,9 +87,6 @@ define_machine(gamecube) { | |||
95 | .calibrate_decr = generic_calibrate_decr, | 87 | .calibrate_decr = generic_calibrate_decr, |
96 | .progress = udbg_progress, | 88 | .progress = udbg_progress, |
97 | .machine_shutdown = gamecube_shutdown, | 89 | .machine_shutdown = gamecube_shutdown, |
98 | #ifdef CONFIG_KEXEC | ||
99 | .machine_kexec_prepare = gamecube_kexec_prepare, | ||
100 | #endif | ||
101 | }; | 90 | }; |
102 | 91 | ||
103 | 92 | ||
diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c index 649473a729b8..1b5dc1a2e145 100644 --- a/arch/powerpc/platforms/embedded6xx/wii.c +++ b/arch/powerpc/platforms/embedded6xx/wii.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/seq_file.h> | 20 | #include <linux/seq_file.h> |
21 | #include <linux/kexec.h> | ||
22 | #include <linux/of_platform.h> | 21 | #include <linux/of_platform.h> |
23 | #include <linux/memblock.h> | 22 | #include <linux/memblock.h> |
24 | #include <mm/mmu_decl.h> | 23 | #include <mm/mmu_decl.h> |
@@ -226,13 +225,6 @@ static void wii_shutdown(void) | |||
226 | flipper_quiesce(); | 225 | flipper_quiesce(); |
227 | } | 226 | } |
228 | 227 | ||
229 | #ifdef CONFIG_KEXEC | ||
230 | static int wii_machine_kexec_prepare(struct kimage *image) | ||
231 | { | ||
232 | return 0; | ||
233 | } | ||
234 | #endif /* CONFIG_KEXEC */ | ||
235 | |||
236 | define_machine(wii) { | 228 | define_machine(wii) { |
237 | .name = "wii", | 229 | .name = "wii", |
238 | .probe = wii_probe, | 230 | .probe = wii_probe, |
@@ -246,9 +238,6 @@ define_machine(wii) { | |||
246 | .calibrate_decr = generic_calibrate_decr, | 238 | .calibrate_decr = generic_calibrate_decr, |
247 | .progress = udbg_progress, | 239 | .progress = udbg_progress, |
248 | .machine_shutdown = wii_shutdown, | 240 | .machine_shutdown = wii_shutdown, |
249 | #ifdef CONFIG_KEXEC | ||
250 | .machine_kexec_prepare = wii_machine_kexec_prepare, | ||
251 | #endif | ||
252 | }; | 241 | }; |
253 | 242 | ||
254 | static struct of_device_id wii_of_bus[] = { | 243 | static struct of_device_id wii_of_bus[] = { |
diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig index 47a20cfb4486..e5bc9f75d474 100644 --- a/arch/powerpc/platforms/iseries/Kconfig +++ b/arch/powerpc/platforms/iseries/Kconfig | |||
@@ -2,7 +2,7 @@ config PPC_ISERIES | |||
2 | bool "IBM Legacy iSeries" | 2 | bool "IBM Legacy iSeries" |
3 | depends on PPC64 && PPC_BOOK3S | 3 | depends on PPC64 && PPC_BOOK3S |
4 | select PPC_INDIRECT_IO | 4 | select PPC_INDIRECT_IO |
5 | select PPC_PCI_CHOICE if EMBEDDED | 5 | select PPC_PCI_CHOICE if EXPERT |
6 | 6 | ||
7 | menu "iSeries device drivers" | 7 | menu "iSeries device drivers" |
8 | depends on PPC_ISERIES | 8 | depends on PPC_ISERIES |
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig index 5d1b743dbe7e..5b3da4b4ea79 100644 --- a/arch/powerpc/platforms/pseries/Kconfig +++ b/arch/powerpc/platforms/pseries/Kconfig | |||
@@ -10,7 +10,7 @@ config PPC_PSERIES | |||
10 | select RTAS_ERROR_LOGGING | 10 | select RTAS_ERROR_LOGGING |
11 | select PPC_UDBG_16550 | 11 | select PPC_UDBG_16550 |
12 | select PPC_NATIVE | 12 | select PPC_NATIVE |
13 | select PPC_PCI_CHOICE if EMBEDDED | 13 | select PPC_PCI_CHOICE if EXPERT |
14 | default y | 14 | default y |
15 | 15 | ||
16 | config PPC_SPLPAR | 16 | config PPC_SPLPAR |
@@ -24,9 +24,9 @@ config PPC_SPLPAR | |||
24 | two or more partitions. | 24 | two or more partitions. |
25 | 25 | ||
26 | config EEH | 26 | config EEH |
27 | bool "PCI Extended Error Handling (EEH)" if EMBEDDED | 27 | bool "PCI Extended Error Handling (EEH)" if EXPERT |
28 | depends on PPC_PSERIES && PCI | 28 | depends on PPC_PSERIES && PCI |
29 | default y if !EMBEDDED | 29 | default y if !EXPERT |
30 | 30 | ||
31 | config PSERIES_MSI | 31 | config PSERIES_MSI |
32 | bool | 32 | bool |
diff --git a/arch/powerpc/platforms/pseries/kexec.c b/arch/powerpc/platforms/pseries/kexec.c index 53cbd53d8740..77d38a5e2ff9 100644 --- a/arch/powerpc/platforms/pseries/kexec.c +++ b/arch/powerpc/platforms/pseries/kexec.c | |||
@@ -61,13 +61,3 @@ void __init setup_kexec_cpu_down_xics(void) | |||
61 | { | 61 | { |
62 | ppc_md.kexec_cpu_down = pseries_kexec_cpu_down_xics; | 62 | ppc_md.kexec_cpu_down = pseries_kexec_cpu_down_xics; |
63 | } | 63 | } |
64 | |||
65 | static int __init pseries_kexec_setup(void) | ||
66 | { | ||
67 | ppc_md.machine_kexec = default_machine_kexec; | ||
68 | ppc_md.machine_kexec_prepare = default_machine_kexec_prepare; | ||
69 | ppc_md.machine_crash_shutdown = default_machine_crash_shutdown; | ||
70 | |||
71 | return 0; | ||
72 | } | ||
73 | machine_device_initcall(pseries, pseries_kexec_setup); | ||
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c index a4fc6da87c2e..c55d7ad9c648 100644 --- a/arch/powerpc/platforms/pseries/ras.c +++ b/arch/powerpc/platforms/pseries/ras.c | |||
@@ -54,7 +54,8 @@ | |||
54 | static unsigned char ras_log_buf[RTAS_ERROR_LOG_MAX]; | 54 | static unsigned char ras_log_buf[RTAS_ERROR_LOG_MAX]; |
55 | static DEFINE_SPINLOCK(ras_log_buf_lock); | 55 | static DEFINE_SPINLOCK(ras_log_buf_lock); |
56 | 56 | ||
57 | static char mce_data_buf[RTAS_ERROR_LOG_MAX]; | 57 | static char global_mce_data_buf[RTAS_ERROR_LOG_MAX]; |
58 | static DEFINE_PER_CPU(__u64, mce_data_buf); | ||
58 | 59 | ||
59 | static int ras_get_sensor_state_token; | 60 | static int ras_get_sensor_state_token; |
60 | static int ras_check_exception_token; | 61 | static int ras_check_exception_token; |
@@ -196,12 +197,24 @@ static irqreturn_t ras_error_interrupt(int irq, void *dev_id) | |||
196 | return IRQ_HANDLED; | 197 | return IRQ_HANDLED; |
197 | } | 198 | } |
198 | 199 | ||
199 | /* Get the error information for errors coming through the | 200 | /* |
201 | * Some versions of FWNMI place the buffer inside the 4kB page starting at | ||
202 | * 0x7000. Other versions place it inside the rtas buffer. We check both. | ||
203 | */ | ||
204 | #define VALID_FWNMI_BUFFER(A) \ | ||
205 | ((((A) >= 0x7000) && ((A) < 0x7ff0)) || \ | ||
206 | (((A) >= rtas.base) && ((A) < (rtas.base + rtas.size - 16)))) | ||
207 | |||
208 | /* | ||
209 | * Get the error information for errors coming through the | ||
200 | * FWNMI vectors. The pt_regs' r3 will be updated to reflect | 210 | * FWNMI vectors. The pt_regs' r3 will be updated to reflect |
201 | * the actual r3 if possible, and a ptr to the error log entry | 211 | * the actual r3 if possible, and a ptr to the error log entry |
202 | * will be returned if found. | 212 | * will be returned if found. |
203 | * | 213 | * |
204 | * The mce_data_buf does not have any locks or protection around it, | 214 | * If the RTAS error is not of the extended type, then we put it in a per |
215 | * cpu 64bit buffer. If it is the extended type we use global_mce_data_buf. | ||
216 | * | ||
217 | * The global_mce_data_buf does not have any locks or protection around it, | ||
205 | * if a second machine check comes in, or a system reset is done | 218 | * if a second machine check comes in, or a system reset is done |
206 | * before we have logged the error, then we will get corruption in the | 219 | * before we have logged the error, then we will get corruption in the |
207 | * error log. This is preferable over holding off on calling | 220 | * error log. This is preferable over holding off on calling |
@@ -210,20 +223,31 @@ static irqreturn_t ras_error_interrupt(int irq, void *dev_id) | |||
210 | */ | 223 | */ |
211 | static struct rtas_error_log *fwnmi_get_errinfo(struct pt_regs *regs) | 224 | static struct rtas_error_log *fwnmi_get_errinfo(struct pt_regs *regs) |
212 | { | 225 | { |
213 | unsigned long errdata = regs->gpr[3]; | ||
214 | struct rtas_error_log *errhdr = NULL; | ||
215 | unsigned long *savep; | 226 | unsigned long *savep; |
227 | struct rtas_error_log *h, *errhdr = NULL; | ||
228 | |||
229 | if (!VALID_FWNMI_BUFFER(regs->gpr[3])) { | ||
230 | printk(KERN_ERR "FWNMI: corrupt r3\n"); | ||
231 | return NULL; | ||
232 | } | ||
216 | 233 | ||
217 | if ((errdata >= 0x7000 && errdata < 0x7fff0) || | 234 | savep = __va(regs->gpr[3]); |
218 | (errdata >= rtas.base && errdata < rtas.base + rtas.size - 16)) { | 235 | regs->gpr[3] = savep[0]; /* restore original r3 */ |
219 | savep = __va(errdata); | 236 | |
220 | regs->gpr[3] = savep[0]; /* restore original r3 */ | 237 | /* If it isn't an extended log we can use the per cpu 64bit buffer */ |
221 | memset(mce_data_buf, 0, RTAS_ERROR_LOG_MAX); | 238 | h = (struct rtas_error_log *)&savep[1]; |
222 | memcpy(mce_data_buf, (char *)(savep + 1), RTAS_ERROR_LOG_MAX); | 239 | if (!h->extended) { |
223 | errhdr = (struct rtas_error_log *)mce_data_buf; | 240 | memcpy(&__get_cpu_var(mce_data_buf), h, sizeof(__u64)); |
241 | errhdr = (struct rtas_error_log *)&__get_cpu_var(mce_data_buf); | ||
224 | } else { | 242 | } else { |
225 | printk("FWNMI: corrupt r3\n"); | 243 | int len; |
244 | |||
245 | len = max_t(int, 8+h->extended_log_length, RTAS_ERROR_LOG_MAX); | ||
246 | memset(global_mce_data_buf, 0, RTAS_ERROR_LOG_MAX); | ||
247 | memcpy(global_mce_data_buf, h, len); | ||
248 | errhdr = (struct rtas_error_log *)global_mce_data_buf; | ||
226 | } | 249 | } |
250 | |||
227 | return errhdr; | 251 | return errhdr; |
228 | } | 252 | } |
229 | 253 | ||
@@ -235,7 +259,7 @@ static void fwnmi_release_errinfo(void) | |||
235 | { | 259 | { |
236 | int ret = rtas_call(rtas_token("ibm,nmi-interlock"), 0, 1, NULL); | 260 | int ret = rtas_call(rtas_token("ibm,nmi-interlock"), 0, 1, NULL); |
237 | if (ret != 0) | 261 | if (ret != 0) |
238 | printk("FWNMI: nmi-interlock failed: %d\n", ret); | 262 | printk(KERN_ERR "FWNMI: nmi-interlock failed: %d\n", ret); |
239 | } | 263 | } |
240 | 264 | ||
241 | int pSeries_system_reset_exception(struct pt_regs *regs) | 265 | int pSeries_system_reset_exception(struct pt_regs *regs) |
@@ -259,31 +283,43 @@ int pSeries_system_reset_exception(struct pt_regs *regs) | |||
259 | * Return 1 if corrected (or delivered a signal). | 283 | * Return 1 if corrected (or delivered a signal). |
260 | * Return 0 if there is nothing we can do. | 284 | * Return 0 if there is nothing we can do. |
261 | */ | 285 | */ |
262 | static int recover_mce(struct pt_regs *regs, struct rtas_error_log * err) | 286 | static int recover_mce(struct pt_regs *regs, struct rtas_error_log *err) |
263 | { | 287 | { |
264 | int nonfatal = 0; | 288 | int recovered = 0; |
265 | 289 | ||
266 | if (err->disposition == RTAS_DISP_FULLY_RECOVERED) { | 290 | if (!(regs->msr & MSR_RI)) { |
291 | /* If MSR_RI isn't set, we cannot recover */ | ||
292 | recovered = 0; | ||
293 | |||
294 | } else if (err->disposition == RTAS_DISP_FULLY_RECOVERED) { | ||
267 | /* Platform corrected itself */ | 295 | /* Platform corrected itself */ |
268 | nonfatal = 1; | 296 | recovered = 1; |
269 | } else if ((regs->msr & MSR_RI) && | 297 | |
270 | user_mode(regs) && | 298 | } else if (err->disposition == RTAS_DISP_LIMITED_RECOVERY) { |
271 | err->severity == RTAS_SEVERITY_ERROR_SYNC && | 299 | /* Platform corrected itself but could be degraded */ |
272 | err->disposition == RTAS_DISP_NOT_RECOVERED && | 300 | printk(KERN_ERR "MCE: limited recovery, system may " |
273 | err->target == RTAS_TARGET_MEMORY && | 301 | "be degraded\n"); |
274 | err->type == RTAS_TYPE_ECC_UNCORR && | 302 | recovered = 1; |
275 | !(current->pid == 0 || is_global_init(current))) { | 303 | |
276 | /* Kill off a user process with an ECC error */ | 304 | } else if (user_mode(regs) && !is_global_init(current) && |
277 | printk(KERN_ERR "MCE: uncorrectable ecc error for pid %d\n", | 305 | err->severity == RTAS_SEVERITY_ERROR_SYNC) { |
278 | current->pid); | 306 | |
279 | /* XXX something better for ECC error? */ | 307 | /* |
280 | _exception(SIGBUS, regs, BUS_ADRERR, regs->nip); | 308 | * If we received a synchronous error when in userspace |
281 | nonfatal = 1; | 309 | * kill the task. Firmware may report details of the fail |
310 | * asynchronously, so we can't rely on the target and type | ||
311 | * fields being valid here. | ||
312 | */ | ||
313 | printk(KERN_ERR "MCE: uncorrectable error, killing task " | ||
314 | "%s:%d\n", current->comm, current->pid); | ||
315 | |||
316 | _exception(SIGBUS, regs, BUS_MCEERR_AR, regs->nip); | ||
317 | recovered = 1; | ||
282 | } | 318 | } |
283 | 319 | ||
284 | log_error((char *)err, ERR_TYPE_RTAS_LOG, !nonfatal); | 320 | log_error((char *)err, ERR_TYPE_RTAS_LOG, 0); |
285 | 321 | ||
286 | return nonfatal; | 322 | return recovered; |
287 | } | 323 | } |
288 | 324 | ||
289 | /* | 325 | /* |
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 9f99bef2adec..8c6cab013278 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -1555,8 +1555,6 @@ int fsl_rio_setup(struct platform_device *dev) | |||
1555 | saved_mcheck_exception = ppc_md.machine_check_exception; | 1555 | saved_mcheck_exception = ppc_md.machine_check_exception; |
1556 | ppc_md.machine_check_exception = fsl_rio_mcheck_exception; | 1556 | ppc_md.machine_check_exception = fsl_rio_mcheck_exception; |
1557 | #endif | 1557 | #endif |
1558 | /* Ensure that RFXE is set */ | ||
1559 | mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x20000)); | ||
1560 | 1558 | ||
1561 | return 0; | 1559 | return 0; |
1562 | err: | 1560 | err: |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 7c1342618a30..b0c8469e5ddd 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -674,7 +674,8 @@ void mpic_unmask_irq(unsigned int irq) | |||
674 | /* make sure mask gets to controller before we return to user */ | 674 | /* make sure mask gets to controller before we return to user */ |
675 | do { | 675 | do { |
676 | if (!loops--) { | 676 | if (!loops--) { |
677 | printk(KERN_ERR "mpic_enable_irq timeout\n"); | 677 | printk(KERN_ERR "%s: timeout on hwirq %u\n", |
678 | __func__, src); | ||
678 | break; | 679 | break; |
679 | } | 680 | } |
680 | } while(mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)) & MPIC_VECPRI_MASK); | 681 | } while(mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)) & MPIC_VECPRI_MASK); |
@@ -695,7 +696,8 @@ void mpic_mask_irq(unsigned int irq) | |||
695 | /* make sure mask gets to controller before we return to user */ | 696 | /* make sure mask gets to controller before we return to user */ |
696 | do { | 697 | do { |
697 | if (!loops--) { | 698 | if (!loops--) { |
698 | printk(KERN_ERR "mpic_enable_irq timeout\n"); | 699 | printk(KERN_ERR "%s: timeout on hwirq %u\n", |
700 | __func__, src); | ||
699 | break; | 701 | break; |
700 | } | 702 | } |
701 | } while(!(mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)) & MPIC_VECPRI_MASK)); | 703 | } while(!(mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)) & MPIC_VECPRI_MASK)); |
diff --git a/arch/score/configs/spct6600_defconfig b/arch/score/configs/spct6600_defconfig index 9883c50e4636..df1edbf507a2 100644 --- a/arch/score/configs/spct6600_defconfig +++ b/arch/score/configs/spct6600_defconfig | |||
@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=12 | |||
9 | CONFIG_SYSFS_DEPRECATED_V2=y | 9 | CONFIG_SYSFS_DEPRECATED_V2=y |
10 | CONFIG_BLK_DEV_INITRD=y | 10 | CONFIG_BLK_DEV_INITRD=y |
11 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 11 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
12 | CONFIG_EMBEDDED=y | 12 | CONFIG_EXPERT=y |
13 | # CONFIG_KALLSYMS is not set | 13 | # CONFIG_KALLSYMS is not set |
14 | # CONFIG_HOTPLUG is not set | 14 | # CONFIG_HOTPLUG is not set |
15 | CONFIG_SLAB=y | 15 | CONFIG_SLAB=y |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index fff252209f63..ae555569823b 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config SUPERH | 1 | config SUPERH |
2 | def_bool y | 2 | def_bool y |
3 | select EMBEDDED | 3 | select EXPERT |
4 | select CLKDEV_LOOKUP | 4 | select CLKDEV_LOOKUP |
5 | select HAVE_IDE if HAS_IOPORT | 5 | select HAVE_IDE if HAS_IOPORT |
6 | select HAVE_MEMBLOCK | 6 | select HAVE_MEMBLOCK |
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index e11b5fcb70eb..4e8b82bca9e5 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig | |||
@@ -220,7 +220,7 @@ config FORCE_MAX_ZONEORDER | |||
220 | 220 | ||
221 | choice | 221 | choice |
222 | depends on !TILEGX | 222 | depends on !TILEGX |
223 | prompt "Memory split" if EMBEDDED | 223 | prompt "Memory split" if EXPERT |
224 | default VMSPLIT_3G | 224 | default VMSPLIT_3G |
225 | ---help--- | 225 | ---help--- |
226 | Select the desired split between kernel and user memory. | 226 | Select the desired split between kernel and user memory. |
diff --git a/arch/tile/Kconfig.debug b/arch/tile/Kconfig.debug index a81f0fbf7e60..9bc161a02c71 100644 --- a/arch/tile/Kconfig.debug +++ b/arch/tile/Kconfig.debug | |||
@@ -3,7 +3,7 @@ menu "Kernel hacking" | |||
3 | source "lib/Kconfig.debug" | 3 | source "lib/Kconfig.debug" |
4 | 4 | ||
5 | config EARLY_PRINTK | 5 | config EARLY_PRINTK |
6 | bool "Early printk" if EMBEDDED && DEBUG_KERNEL | 6 | bool "Early printk" if EXPERT && DEBUG_KERNEL |
7 | default y | 7 | default y |
8 | help | 8 | help |
9 | Write kernel log output directly via the hypervisor console. | 9 | Write kernel log output directly via the hypervisor console. |
diff --git a/arch/tile/configs/tile_defconfig b/arch/tile/configs/tile_defconfig index 919c54afd981..0fe54445fda5 100644 --- a/arch/tile/configs/tile_defconfig +++ b/arch/tile/configs/tile_defconfig | |||
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | |||
3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
4 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
5 | CONFIG_INITRAMFS_SOURCE="usr/contents.txt" | 5 | CONFIG_INITRAMFS_SOURCE="usr/contents.txt" |
6 | CONFIG_EMBEDDED=y | 6 | CONFIG_EXPERT=y |
7 | # CONFIG_COMPAT_BRK is not set | 7 | # CONFIG_COMPAT_BRK is not set |
8 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
9 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
diff --git a/arch/um/defconfig b/arch/um/defconfig index 564f3de65b4a..9f7634f08cf3 100644 --- a/arch/um/defconfig +++ b/arch/um/defconfig | |||
@@ -133,7 +133,7 @@ CONFIG_SYSFS_DEPRECATED=y | |||
133 | # CONFIG_BLK_DEV_INITRD is not set | 133 | # CONFIG_BLK_DEV_INITRD is not set |
134 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 134 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
135 | CONFIG_SYSCTL=y | 135 | CONFIG_SYSCTL=y |
136 | # CONFIG_EMBEDDED is not set | 136 | # CONFIG_EXPERT is not set |
137 | CONFIG_UID16=y | 137 | CONFIG_UID16=y |
138 | CONFIG_SYSCTL_SYSCALL=y | 138 | CONFIG_SYSCTL_SYSCALL=y |
139 | CONFIG_KALLSYMS=y | 139 | CONFIG_KALLSYMS=y |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 3ed5ad92b029..d5ed94d30aad 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -627,11 +627,11 @@ config APB_TIMER | |||
627 | as it is off-chip. APB timers are always running regardless of CPU | 627 | as it is off-chip. APB timers are always running regardless of CPU |
628 | C states, they are used as per CPU clockevent device when possible. | 628 | C states, they are used as per CPU clockevent device when possible. |
629 | 629 | ||
630 | # Mark as embedded because too many people got it wrong. | 630 | # Mark as expert because too many people got it wrong. |
631 | # The code disables itself when not needed. | 631 | # The code disables itself when not needed. |
632 | config DMI | 632 | config DMI |
633 | default y | 633 | default y |
634 | bool "Enable DMI scanning" if EMBEDDED | 634 | bool "Enable DMI scanning" if EXPERT |
635 | ---help--- | 635 | ---help--- |
636 | Enabled scanning of DMI to identify machine quirks. Say Y | 636 | Enabled scanning of DMI to identify machine quirks. Say Y |
637 | here unless you have verified that your setup is not | 637 | here unless you have verified that your setup is not |
@@ -639,7 +639,7 @@ config DMI | |||
639 | BIOS code. | 639 | BIOS code. |
640 | 640 | ||
641 | config GART_IOMMU | 641 | config GART_IOMMU |
642 | bool "GART IOMMU support" if EMBEDDED | 642 | bool "GART IOMMU support" if EXPERT |
643 | default y | 643 | default y |
644 | select SWIOTLB | 644 | select SWIOTLB |
645 | depends on X86_64 && PCI && AMD_NB | 645 | depends on X86_64 && PCI && AMD_NB |
@@ -889,7 +889,7 @@ config X86_THERMAL_VECTOR | |||
889 | depends on X86_MCE_INTEL | 889 | depends on X86_MCE_INTEL |
890 | 890 | ||
891 | config VM86 | 891 | config VM86 |
892 | bool "Enable VM86 support" if EMBEDDED | 892 | bool "Enable VM86 support" if EXPERT |
893 | default y | 893 | default y |
894 | depends on X86_32 | 894 | depends on X86_32 |
895 | ---help--- | 895 | ---help--- |
@@ -1073,7 +1073,7 @@ endchoice | |||
1073 | 1073 | ||
1074 | choice | 1074 | choice |
1075 | depends on EXPERIMENTAL | 1075 | depends on EXPERIMENTAL |
1076 | prompt "Memory split" if EMBEDDED | 1076 | prompt "Memory split" if EXPERT |
1077 | default VMSPLIT_3G | 1077 | default VMSPLIT_3G |
1078 | depends on X86_32 | 1078 | depends on X86_32 |
1079 | ---help--- | 1079 | ---help--- |
@@ -1135,7 +1135,7 @@ config ARCH_DMA_ADDR_T_64BIT | |||
1135 | def_bool X86_64 || HIGHMEM64G | 1135 | def_bool X86_64 || HIGHMEM64G |
1136 | 1136 | ||
1137 | config DIRECT_GBPAGES | 1137 | config DIRECT_GBPAGES |
1138 | bool "Enable 1GB pages for kernel pagetables" if EMBEDDED | 1138 | bool "Enable 1GB pages for kernel pagetables" if EXPERT |
1139 | default y | 1139 | default y |
1140 | depends on X86_64 | 1140 | depends on X86_64 |
1141 | ---help--- | 1141 | ---help--- |
@@ -1369,7 +1369,7 @@ config MATH_EMULATION | |||
1369 | 1369 | ||
1370 | config MTRR | 1370 | config MTRR |
1371 | def_bool y | 1371 | def_bool y |
1372 | prompt "MTRR (Memory Type Range Register) support" if EMBEDDED | 1372 | prompt "MTRR (Memory Type Range Register) support" if EXPERT |
1373 | ---help--- | 1373 | ---help--- |
1374 | On Intel P6 family processors (Pentium Pro, Pentium II and later) | 1374 | On Intel P6 family processors (Pentium Pro, Pentium II and later) |
1375 | the Memory Type Range Registers (MTRRs) may be used to control | 1375 | the Memory Type Range Registers (MTRRs) may be used to control |
@@ -1435,7 +1435,7 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT | |||
1435 | 1435 | ||
1436 | config X86_PAT | 1436 | config X86_PAT |
1437 | def_bool y | 1437 | def_bool y |
1438 | prompt "x86 PAT support" if EMBEDDED | 1438 | prompt "x86 PAT support" if EXPERT |
1439 | depends on MTRR | 1439 | depends on MTRR |
1440 | ---help--- | 1440 | ---help--- |
1441 | Use PAT attributes to setup page level cache control. | 1441 | Use PAT attributes to setup page level cache control. |
@@ -1539,7 +1539,7 @@ config KEXEC_JUMP | |||
1539 | code in physical address mode via KEXEC | 1539 | code in physical address mode via KEXEC |
1540 | 1540 | ||
1541 | config PHYSICAL_START | 1541 | config PHYSICAL_START |
1542 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) | 1542 | hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP) |
1543 | default "0x1000000" | 1543 | default "0x1000000" |
1544 | ---help--- | 1544 | ---help--- |
1545 | This gives the physical address where the kernel is loaded. | 1545 | This gives the physical address where the kernel is loaded. |
@@ -1934,7 +1934,7 @@ config PCI_MMCONFIG | |||
1934 | depends on X86_64 && PCI && ACPI | 1934 | depends on X86_64 && PCI && ACPI |
1935 | 1935 | ||
1936 | config PCI_CNB20LE_QUIRK | 1936 | config PCI_CNB20LE_QUIRK |
1937 | bool "Read CNB20LE Host Bridge Windows" if EMBEDDED | 1937 | bool "Read CNB20LE Host Bridge Windows" if EXPERT |
1938 | default n | 1938 | default n |
1939 | depends on PCI && EXPERIMENTAL | 1939 | depends on PCI && EXPERIMENTAL |
1940 | help | 1940 | help |
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index 15588a0ef466..283c5a6a03a6 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
@@ -424,7 +424,7 @@ config X86_DEBUGCTLMSR | |||
424 | depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386) && !UML | 424 | depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386) && !UML |
425 | 425 | ||
426 | menuconfig PROCESSOR_SELECT | 426 | menuconfig PROCESSOR_SELECT |
427 | bool "Supported processor vendors" if EMBEDDED | 427 | bool "Supported processor vendors" if EXPERT |
428 | ---help--- | 428 | ---help--- |
429 | This lets you choose what x86 vendor support code your kernel | 429 | This lets you choose what x86 vendor support code your kernel |
430 | will include. | 430 | will include. |
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 45143bbcfe5e..615e18810f48 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
@@ -31,7 +31,7 @@ config X86_VERBOSE_BOOTUP | |||
31 | see errors. Disable this if you want silent bootup. | 31 | see errors. Disable this if you want silent bootup. |
32 | 32 | ||
33 | config EARLY_PRINTK | 33 | config EARLY_PRINTK |
34 | bool "Early printk" if EMBEDDED | 34 | bool "Early printk" if EXPERT |
35 | default y | 35 | default y |
36 | ---help--- | 36 | ---help--- |
37 | Write kernel log output directly into the VGA buffer or to a serial | 37 | Write kernel log output directly into the VGA buffer or to a serial |
@@ -138,7 +138,7 @@ config DEBUG_NX_TEST | |||
138 | 138 | ||
139 | config DOUBLEFAULT | 139 | config DOUBLEFAULT |
140 | default y | 140 | default y |
141 | bool "Enable doublefault exception handler" if EMBEDDED | 141 | bool "Enable doublefault exception handler" if EXPERT |
142 | depends on X86_32 | 142 | depends on X86_32 |
143 | ---help--- | 143 | ---help--- |
144 | This option allows trapping of rare doublefault exceptions that | 144 | This option allows trapping of rare doublefault exceptions that |
diff --git a/arch/x86/include/asm/numa_32.h b/arch/x86/include/asm/numa_32.h index a37229011b56..b0ef2b449a9d 100644 --- a/arch/x86/include/asm/numa_32.h +++ b/arch/x86/include/asm/numa_32.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _ASM_X86_NUMA_32_H | 1 | #ifndef _ASM_X86_NUMA_32_H |
2 | #define _ASM_X86_NUMA_32_H | 2 | #define _ASM_X86_NUMA_32_H |
3 | 3 | ||
4 | extern int numa_off; | ||
5 | |||
4 | extern int pxm_to_nid(int pxm); | 6 | extern int pxm_to_nid(int pxm); |
5 | extern void numa_remove_cpu(int cpu); | 7 | extern void numa_remove_cpu(int cpu); |
6 | 8 | ||
diff --git a/arch/x86/include/asm/numa_64.h b/arch/x86/include/asm/numa_64.h index 5ae87285a502..0493be39607c 100644 --- a/arch/x86/include/asm/numa_64.h +++ b/arch/x86/include/asm/numa_64.h | |||
@@ -40,6 +40,7 @@ extern void __cpuinit numa_remove_cpu(int cpu); | |||
40 | #ifdef CONFIG_NUMA_EMU | 40 | #ifdef CONFIG_NUMA_EMU |
41 | #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) | 41 | #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) |
42 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) | 42 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) |
43 | void numa_emu_cmdline(char *); | ||
43 | #endif /* CONFIG_NUMA_EMU */ | 44 | #endif /* CONFIG_NUMA_EMU */ |
44 | #else | 45 | #else |
45 | static inline void init_cpu_to_node(void) { } | 46 | static inline void init_cpu_to_node(void) { } |
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index b34ab80fddd5..bf4700755184 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S | |||
@@ -34,9 +34,11 @@ OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | |||
34 | #ifdef CONFIG_X86_32 | 34 | #ifdef CONFIG_X86_32 |
35 | OUTPUT_ARCH(i386) | 35 | OUTPUT_ARCH(i386) |
36 | ENTRY(phys_startup_32) | 36 | ENTRY(phys_startup_32) |
37 | jiffies = jiffies_64; | ||
37 | #else | 38 | #else |
38 | OUTPUT_ARCH(i386:x86-64) | 39 | OUTPUT_ARCH(i386:x86-64) |
39 | ENTRY(phys_startup_64) | 40 | ENTRY(phys_startup_64) |
41 | jiffies_64 = jiffies; | ||
40 | #endif | 42 | #endif |
41 | 43 | ||
42 | #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) | 44 | #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) |
@@ -140,15 +142,6 @@ SECTIONS | |||
140 | CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) | 142 | CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) |
141 | 143 | ||
142 | DATA_DATA | 144 | DATA_DATA |
143 | /* | ||
144 | * Workaround a binutils (2.20.51.0.12 to 2.21.51.0.3) bug. | ||
145 | * This makes jiffies relocatable in such binutils | ||
146 | */ | ||
147 | #ifdef CONFIG_X86_32 | ||
148 | jiffies = jiffies_64; | ||
149 | #else | ||
150 | jiffies_64 = jiffies; | ||
151 | #endif | ||
152 | CONSTRUCTORS | 145 | CONSTRUCTORS |
153 | 146 | ||
154 | /* rarely changed data like cpu maps */ | 147 | /* rarely changed data like cpu maps */ |
diff --git a/arch/x86/lguest/Kconfig b/arch/x86/lguest/Kconfig index 38718041efc3..6e121a2a49e1 100644 --- a/arch/x86/lguest/Kconfig +++ b/arch/x86/lguest/Kconfig | |||
@@ -2,6 +2,7 @@ config LGUEST_GUEST | |||
2 | bool "Lguest guest support" | 2 | bool "Lguest guest support" |
3 | select PARAVIRT | 3 | select PARAVIRT |
4 | depends on X86_32 | 4 | depends on X86_32 |
5 | select VIRTUALIZATION | ||
5 | select VIRTIO | 6 | select VIRTIO |
6 | select VIRTIO_RING | 7 | select VIRTIO_RING |
7 | select VIRTIO_CONSOLE | 8 | select VIRTIO_CONSOLE |
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 4996cf5f73a0..eba687f0cc0c 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
@@ -824,7 +824,7 @@ static void __init lguest_init_IRQ(void) | |||
824 | 824 | ||
825 | for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) { | 825 | for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) { |
826 | /* Some systems map "vectors" to interrupts weirdly. Not us! */ | 826 | /* Some systems map "vectors" to interrupts weirdly. Not us! */ |
827 | __get_cpu_var(vector_irq)[i] = i - FIRST_EXTERNAL_VECTOR; | 827 | __this_cpu_write(vector_irq[i], i - FIRST_EXTERNAL_VECTOR); |
828 | if (i != SYSCALL_VECTOR) | 828 | if (i != SYSCALL_VECTOR) |
829 | set_intr_gate(i, interrupt[i - FIRST_EXTERNAL_VECTOR]); | 829 | set_intr_gate(i, interrupt[i - FIRST_EXTERNAL_VECTOR]); |
830 | } | 830 | } |
diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c index 787c52ca49c3..ebf6d7887a38 100644 --- a/arch/x86/mm/numa.c +++ b/arch/x86/mm/numa.c | |||
@@ -2,6 +2,28 @@ | |||
2 | #include <linux/topology.h> | 2 | #include <linux/topology.h> |
3 | #include <linux/module.h> | 3 | #include <linux/module.h> |
4 | #include <linux/bootmem.h> | 4 | #include <linux/bootmem.h> |
5 | #include <asm/numa.h> | ||
6 | #include <asm/acpi.h> | ||
7 | |||
8 | int __initdata numa_off; | ||
9 | |||
10 | static __init int numa_setup(char *opt) | ||
11 | { | ||
12 | if (!opt) | ||
13 | return -EINVAL; | ||
14 | if (!strncmp(opt, "off", 3)) | ||
15 | numa_off = 1; | ||
16 | #ifdef CONFIG_NUMA_EMU | ||
17 | if (!strncmp(opt, "fake=", 5)) | ||
18 | numa_emu_cmdline(opt + 5); | ||
19 | #endif | ||
20 | #ifdef CONFIG_ACPI_NUMA | ||
21 | if (!strncmp(opt, "noacpi", 6)) | ||
22 | acpi_numa = -1; | ||
23 | #endif | ||
24 | return 0; | ||
25 | } | ||
26 | early_param("numa", numa_setup); | ||
5 | 27 | ||
6 | /* | 28 | /* |
7 | * Which logical CPUs are on which nodes | 29 | * Which logical CPUs are on which nodes |
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c index 1e72102e80c9..95ea1551eebc 100644 --- a/arch/x86/mm/numa_64.c +++ b/arch/x86/mm/numa_64.c | |||
@@ -30,7 +30,6 @@ s16 apicid_to_node[MAX_LOCAL_APIC] __cpuinitdata = { | |||
30 | [0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE | 30 | [0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE |
31 | }; | 31 | }; |
32 | 32 | ||
33 | int numa_off __initdata; | ||
34 | static unsigned long __initdata nodemap_addr; | 33 | static unsigned long __initdata nodemap_addr; |
35 | static unsigned long __initdata nodemap_size; | 34 | static unsigned long __initdata nodemap_size; |
36 | 35 | ||
@@ -263,6 +262,11 @@ static struct bootnode nodes[MAX_NUMNODES] __initdata; | |||
263 | static struct bootnode physnodes[MAX_NUMNODES] __cpuinitdata; | 262 | static struct bootnode physnodes[MAX_NUMNODES] __cpuinitdata; |
264 | static char *cmdline __initdata; | 263 | static char *cmdline __initdata; |
265 | 264 | ||
265 | void __init numa_emu_cmdline(char *str) | ||
266 | { | ||
267 | cmdline = str; | ||
268 | } | ||
269 | |||
266 | static int __init setup_physnodes(unsigned long start, unsigned long end, | 270 | static int __init setup_physnodes(unsigned long start, unsigned long end, |
267 | int acpi, int amd) | 271 | int acpi, int amd) |
268 | { | 272 | { |
@@ -670,24 +674,6 @@ unsigned long __init numa_free_all_bootmem(void) | |||
670 | return pages; | 674 | return pages; |
671 | } | 675 | } |
672 | 676 | ||
673 | static __init int numa_setup(char *opt) | ||
674 | { | ||
675 | if (!opt) | ||
676 | return -EINVAL; | ||
677 | if (!strncmp(opt, "off", 3)) | ||
678 | numa_off = 1; | ||
679 | #ifdef CONFIG_NUMA_EMU | ||
680 | if (!strncmp(opt, "fake=", 5)) | ||
681 | cmdline = opt + 5; | ||
682 | #endif | ||
683 | #ifdef CONFIG_ACPI_NUMA | ||
684 | if (!strncmp(opt, "noacpi", 6)) | ||
685 | acpi_numa = -1; | ||
686 | #endif | ||
687 | return 0; | ||
688 | } | ||
689 | early_param("numa", numa_setup); | ||
690 | |||
691 | #ifdef CONFIG_NUMA | 677 | #ifdef CONFIG_NUMA |
692 | 678 | ||
693 | static __init int find_near_online_node(int node) | 679 | static __init int find_near_online_node(int node) |
diff --git a/arch/x86/mm/srat_32.c b/arch/x86/mm/srat_32.c index f16434568a51..ae96e7b8051d 100644 --- a/arch/x86/mm/srat_32.c +++ b/arch/x86/mm/srat_32.c | |||
@@ -59,7 +59,6 @@ static struct node_memory_chunk_s __initdata node_memory_chunk[MAXCHUNKS]; | |||
59 | static int __initdata num_memory_chunks; /* total number of memory chunks */ | 59 | static int __initdata num_memory_chunks; /* total number of memory chunks */ |
60 | static u8 __initdata apicid_to_pxm[MAX_APICID]; | 60 | static u8 __initdata apicid_to_pxm[MAX_APICID]; |
61 | 61 | ||
62 | int numa_off __initdata; | ||
63 | int acpi_numa __initdata; | 62 | int acpi_numa __initdata; |
64 | 63 | ||
65 | static __init void bad_srat(void) | 64 | static __init void bad_srat(void) |
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 7e8d3bc80af6..50542efe45fb 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -1194,7 +1194,7 @@ asmlinkage void __init xen_start_kernel(void) | |||
1194 | per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; | 1194 | per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; |
1195 | 1195 | ||
1196 | local_irq_disable(); | 1196 | local_irq_disable(); |
1197 | early_boot_irqs_off(); | 1197 | early_boot_irqs_disabled = true; |
1198 | 1198 | ||
1199 | memblock_init(); | 1199 | memblock_init(); |
1200 | 1200 | ||
diff --git a/arch/xtensa/configs/common_defconfig b/arch/xtensa/configs/common_defconfig index 1d230ee081b4..b90038e40dd3 100644 --- a/arch/xtensa/configs/common_defconfig +++ b/arch/xtensa/configs/common_defconfig | |||
@@ -32,7 +32,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
32 | # CONFIG_HOTPLUG is not set | 32 | # CONFIG_HOTPLUG is not set |
33 | CONFIG_KOBJECT_UEVENT=y | 33 | CONFIG_KOBJECT_UEVENT=y |
34 | # CONFIG_IKCONFIG is not set | 34 | # CONFIG_IKCONFIG is not set |
35 | # CONFIG_EMBEDDED is not set | 35 | # CONFIG_EXPERT is not set |
36 | CONFIG_KALLSYMS=y | 36 | CONFIG_KALLSYMS=y |
37 | # CONFIG_KALLSYMS_ALL is not set | 37 | # CONFIG_KALLSYMS_ALL is not set |
38 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 38 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
diff --git a/arch/xtensa/configs/iss_defconfig b/arch/xtensa/configs/iss_defconfig index 7368164843b9..0234cd198c54 100644 --- a/arch/xtensa/configs/iss_defconfig +++ b/arch/xtensa/configs/iss_defconfig | |||
@@ -55,7 +55,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
55 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 55 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
56 | CONFIG_SYSCTL=y | 56 | CONFIG_SYSCTL=y |
57 | CONFIG_ANON_INODES=y | 57 | CONFIG_ANON_INODES=y |
58 | CONFIG_EMBEDDED=y | 58 | CONFIG_EXPERT=y |
59 | CONFIG_SYSCTL_SYSCALL=y | 59 | CONFIG_SYSCTL_SYSCALL=y |
60 | CONFIG_KALLSYMS=y | 60 | CONFIG_KALLSYMS=y |
61 | # CONFIG_KALLSYMS_ALL is not set | 61 | # CONFIG_KALLSYMS_ALL is not set |
diff --git a/arch/xtensa/configs/s6105_defconfig b/arch/xtensa/configs/s6105_defconfig index bb84fbc9921f..095cd8084164 100644 --- a/arch/xtensa/configs/s6105_defconfig +++ b/arch/xtensa/configs/s6105_defconfig | |||
@@ -55,7 +55,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
55 | CONFIG_INITRAMFS_SOURCE="" | 55 | CONFIG_INITRAMFS_SOURCE="" |
56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
57 | CONFIG_SYSCTL=y | 57 | CONFIG_SYSCTL=y |
58 | CONFIG_EMBEDDED=y | 58 | CONFIG_EXPERT=y |
59 | CONFIG_SYSCTL_SYSCALL=y | 59 | CONFIG_SYSCTL_SYSCALL=y |
60 | CONFIG_KALLSYMS=y | 60 | CONFIG_KALLSYMS=y |
61 | # CONFIG_KALLSYMS_ALL is not set | 61 | # CONFIG_KALLSYMS_ALL is not set |
diff --git a/block/Kconfig b/block/Kconfig index 6c9213ef15a1..60be1e0455da 100644 --- a/block/Kconfig +++ b/block/Kconfig | |||
@@ -2,7 +2,7 @@ | |||
2 | # Block layer core configuration | 2 | # Block layer core configuration |
3 | # | 3 | # |
4 | menuconfig BLOCK | 4 | menuconfig BLOCK |
5 | bool "Enable the block layer" if EMBEDDED | 5 | bool "Enable the block layer" if EXPERT |
6 | default y | 6 | default y |
7 | help | 7 | help |
8 | Provide block layer support for the kernel. | 8 | Provide block layer support for the kernel. |
diff --git a/drivers/Makefile b/drivers/Makefile index 7eb35f479461..b423bb16c3a8 100644 --- a/drivers/Makefile +++ b/drivers/Makefile | |||
@@ -24,7 +24,7 @@ obj-$(CONFIG_XEN) += xen/ | |||
24 | # regulators early, since some subsystems rely on them to initialize | 24 | # regulators early, since some subsystems rely on them to initialize |
25 | obj-$(CONFIG_REGULATOR) += regulator/ | 25 | obj-$(CONFIG_REGULATOR) += regulator/ |
26 | 26 | ||
27 | # char/ comes before serial/ etc so that the VT console is the boot-time | 27 | # tty/ comes before char/ so that the VT console is the boot-time |
28 | # default. | 28 | # default. |
29 | obj-y += tty/ | 29 | obj-y += tty/ |
30 | obj-y += char/ | 30 | obj-y += char/ |
@@ -38,7 +38,6 @@ obj-$(CONFIG_CONNECTOR) += connector/ | |||
38 | obj-$(CONFIG_FB_I810) += video/i810/ | 38 | obj-$(CONFIG_FB_I810) += video/i810/ |
39 | obj-$(CONFIG_FB_INTEL) += video/intelfb/ | 39 | obj-$(CONFIG_FB_INTEL) += video/intelfb/ |
40 | 40 | ||
41 | obj-y += serial/ | ||
42 | obj-$(CONFIG_PARPORT) += parport/ | 41 | obj-$(CONFIG_PARPORT) += parport/ |
43 | obj-y += base/ block/ misc/ mfd/ nfc/ | 42 | obj-y += base/ block/ misc/ mfd/ nfc/ |
44 | obj-$(CONFIG_NUBUS) += nubus/ | 43 | obj-$(CONFIG_NUBUS) += nubus/ |
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 10c7ad59c0e1..2aa042a5da6d 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -318,7 +318,7 @@ config ACPI_PCI_SLOT | |||
318 | the module will be called pci_slot. | 318 | the module will be called pci_slot. |
319 | 319 | ||
320 | config X86_PM_TIMER | 320 | config X86_PM_TIMER |
321 | bool "Power Management Timer Support" if EMBEDDED | 321 | bool "Power Management Timer Support" if EXPERT |
322 | depends on X86 | 322 | depends on X86 |
323 | default y | 323 | default y |
324 | help | 324 | help |
diff --git a/drivers/acpi/acpica/accommon.h b/drivers/acpi/acpica/accommon.h index 3e50c74ed4a1..e0ba17f0a7c8 100644 --- a/drivers/acpi/acpica/accommon.h +++ b/drivers/acpi/acpica/accommon.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acconfig.h b/drivers/acpi/acpica/acconfig.h index b17d8de9f6ff..ab87396c2c07 100644 --- a/drivers/acpi/acpica/acconfig.h +++ b/drivers/acpi/acpica/acconfig.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acdebug.h b/drivers/acpi/acpica/acdebug.h index 72e9d5eb083c..eb0b1f8dee6d 100644 --- a/drivers/acpi/acpica/acdebug.h +++ b/drivers/acpi/acpica/acdebug.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acdispat.h b/drivers/acpi/acpica/acdispat.h index 894a0ff2a946..666271b65418 100644 --- a/drivers/acpi/acpica/acdispat.h +++ b/drivers/acpi/acpica/acdispat.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h index 70e0b28801aa..41d247daf461 100644 --- a/drivers/acpi/acpica/acevents.h +++ b/drivers/acpi/acpica/acevents.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index 0e4dba0d0325..82a1bd283db8 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/achware.h b/drivers/acpi/acpica/achware.h index 258d628793ea..e7213beaafc7 100644 --- a/drivers/acpi/acpica/achware.h +++ b/drivers/acpi/acpica/achware.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acinterp.h b/drivers/acpi/acpica/acinterp.h index 049e203bd621..3731e1c34b83 100644 --- a/drivers/acpi/acpica/acinterp.h +++ b/drivers/acpi/acpica/acinterp.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h index 74000f5b7dab..54784bb42cec 100644 --- a/drivers/acpi/acpica/aclocal.h +++ b/drivers/acpi/acpica/aclocal.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acmacros.h b/drivers/acpi/acpica/acmacros.h index 8d5c9e0a495f..b7491ee1fba6 100644 --- a/drivers/acpi/acpica/acmacros.h +++ b/drivers/acpi/acpica/acmacros.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acnamesp.h b/drivers/acpi/acpica/acnamesp.h index d44d3bc5b847..79a598c67fe3 100644 --- a/drivers/acpi/acpica/acnamesp.h +++ b/drivers/acpi/acpica/acnamesp.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acobject.h b/drivers/acpi/acpica/acobject.h index 962a3ccff6fd..1055769f2f01 100644 --- a/drivers/acpi/acpica/acobject.h +++ b/drivers/acpi/acpica/acobject.h | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
@@ -97,8 +97,6 @@ | |||
97 | #define AOPOBJ_OBJECT_INITIALIZED 0x08 /* Region is initialized, _REG was run */ | 97 | #define AOPOBJ_OBJECT_INITIALIZED 0x08 /* Region is initialized, _REG was run */ |
98 | #define AOPOBJ_SETUP_COMPLETE 0x10 /* Region setup is complete */ | 98 | #define AOPOBJ_SETUP_COMPLETE 0x10 /* Region setup is complete */ |
99 | #define AOPOBJ_INVALID 0x20 /* Host OS won't allow a Region address */ | 99 | #define AOPOBJ_INVALID 0x20 /* Host OS won't allow a Region address */ |
100 | #define AOPOBJ_MODULE_LEVEL 0x40 /* Method is actually module-level code */ | ||
101 | #define AOPOBJ_MODIFIED_NAMESPACE 0x80 /* Method modified the namespace */ | ||
102 | 100 | ||
103 | /****************************************************************************** | 101 | /****************************************************************************** |
104 | * | 102 | * |
@@ -175,7 +173,7 @@ struct acpi_object_region { | |||
175 | }; | 173 | }; |
176 | 174 | ||
177 | struct acpi_object_method { | 175 | struct acpi_object_method { |
178 | ACPI_OBJECT_COMMON_HEADER u8 method_flags; | 176 | ACPI_OBJECT_COMMON_HEADER u8 info_flags; |
179 | u8 param_count; | 177 | u8 param_count; |
180 | u8 sync_level; | 178 | u8 sync_level; |
181 | union acpi_operand_object *mutex; | 179 | union acpi_operand_object *mutex; |
@@ -183,13 +181,21 @@ struct acpi_object_method { | |||
183 | union { | 181 | union { |
184 | ACPI_INTERNAL_METHOD implementation; | 182 | ACPI_INTERNAL_METHOD implementation; |
185 | union acpi_operand_object *handler; | 183 | union acpi_operand_object *handler; |
186 | } extra; | 184 | } dispatch; |
187 | 185 | ||
188 | u32 aml_length; | 186 | u32 aml_length; |
189 | u8 thread_count; | 187 | u8 thread_count; |
190 | acpi_owner_id owner_id; | 188 | acpi_owner_id owner_id; |
191 | }; | 189 | }; |
192 | 190 | ||
191 | /* Flags for info_flags field above */ | ||
192 | |||
193 | #define ACPI_METHOD_MODULE_LEVEL 0x01 /* Method is actually module-level code */ | ||
194 | #define ACPI_METHOD_INTERNAL_ONLY 0x02 /* Method is implemented internally (_OSI) */ | ||
195 | #define ACPI_METHOD_SERIALIZED 0x04 /* Method is serialized */ | ||
196 | #define ACPI_METHOD_SERIALIZED_PENDING 0x08 /* Method is to be marked serialized */ | ||
197 | #define ACPI_METHOD_MODIFIED_NAMESPACE 0x10 /* Method modified the namespace */ | ||
198 | |||
193 | /****************************************************************************** | 199 | /****************************************************************************** |
194 | * | 200 | * |
195 | * Objects that can be notified. All share a common notify_info area. | 201 | * Objects that can be notified. All share a common notify_info area. |
diff --git a/drivers/acpi/acpica/acopcode.h b/drivers/acpi/acpica/acopcode.h index 8c15ff43f42b..bb2ccfad7376 100644 --- a/drivers/acpi/acpica/acopcode.h +++ b/drivers/acpi/acpica/acopcode.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acparser.h b/drivers/acpi/acpica/acparser.h index d0bb0fd3e57a..5ea1e06afa20 100644 --- a/drivers/acpi/acpica/acparser.h +++ b/drivers/acpi/acpica/acparser.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acpredef.h b/drivers/acpi/acpica/acpredef.h index 10998d369ad0..94e73c97cf85 100644 --- a/drivers/acpi/acpica/acpredef.h +++ b/drivers/acpi/acpica/acpredef.h | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acresrc.h b/drivers/acpi/acpica/acresrc.h index 528bcbaf4ce7..f08b55b7f3a0 100644 --- a/drivers/acpi/acpica/acresrc.h +++ b/drivers/acpi/acpica/acresrc.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acstruct.h b/drivers/acpi/acpica/acstruct.h index 6e5dd97949fe..1623b245dde2 100644 --- a/drivers/acpi/acpica/acstruct.h +++ b/drivers/acpi/acpica/acstruct.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/actables.h b/drivers/acpi/acpica/actables.h index 62a576e34361..967f08124eba 100644 --- a/drivers/acpi/acpica/actables.h +++ b/drivers/acpi/acpica/actables.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h index 72e4183c1937..99c140d8e348 100644 --- a/drivers/acpi/acpica/acutils.h +++ b/drivers/acpi/acpica/acutils.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/amlcode.h b/drivers/acpi/acpica/amlcode.h index 1f484ba228fc..f4f0998d3967 100644 --- a/drivers/acpi/acpica/amlcode.h +++ b/drivers/acpi/acpica/amlcode.h | |||
@@ -7,7 +7,7 @@ | |||
7 | *****************************************************************************/ | 7 | *****************************************************************************/ |
8 | 8 | ||
9 | /* | 9 | /* |
10 | * Copyright (C) 2000 - 2010, Intel Corp. | 10 | * Copyright (C) 2000 - 2011, Intel Corp. |
11 | * All rights reserved. | 11 | * All rights reserved. |
12 | * | 12 | * |
13 | * Redistribution and use in source and binary forms, with or without | 13 | * Redistribution and use in source and binary forms, with or without |
@@ -480,16 +480,10 @@ typedef enum { | |||
480 | AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D | 480 | AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D |
481 | } AML_ACCESS_ATTRIBUTE; | 481 | } AML_ACCESS_ATTRIBUTE; |
482 | 482 | ||
483 | /* Bit fields in method_flags byte */ | 483 | /* Bit fields in the AML method_flags byte */ |
484 | 484 | ||
485 | #define AML_METHOD_ARG_COUNT 0x07 | 485 | #define AML_METHOD_ARG_COUNT 0x07 |
486 | #define AML_METHOD_SERIALIZED 0x08 | 486 | #define AML_METHOD_SERIALIZED 0x08 |
487 | #define AML_METHOD_SYNC_LEVEL 0xF0 | 487 | #define AML_METHOD_SYNC_LEVEL 0xF0 |
488 | 488 | ||
489 | /* METHOD_FLAGS_ARG_COUNT is not used internally, define additional flags */ | ||
490 | |||
491 | #define AML_METHOD_INTERNAL_ONLY 0x01 | ||
492 | #define AML_METHOD_RESERVED1 0x02 | ||
493 | #define AML_METHOD_RESERVED2 0x04 | ||
494 | |||
495 | #endif /* __AMLCODE_H__ */ | 489 | #endif /* __AMLCODE_H__ */ |
diff --git a/drivers/acpi/acpica/amlresrc.h b/drivers/acpi/acpica/amlresrc.h index 0e5798fcbb19..59122cde247c 100644 --- a/drivers/acpi/acpica/amlresrc.h +++ b/drivers/acpi/acpica/amlresrc.h | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsfield.c b/drivers/acpi/acpica/dsfield.c index 347bee1726f1..34be60c0e448 100644 --- a/drivers/acpi/acpica/dsfield.c +++ b/drivers/acpi/acpica/dsfield.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsinit.c b/drivers/acpi/acpica/dsinit.c index cc4a38c57558..a7718bf2b9a1 100644 --- a/drivers/acpi/acpica/dsinit.c +++ b/drivers/acpi/acpica/dsinit.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsmethod.c b/drivers/acpi/acpica/dsmethod.c index d94dd8974b55..5d797751e205 100644 --- a/drivers/acpi/acpica/dsmethod.c +++ b/drivers/acpi/acpica/dsmethod.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -43,7 +43,6 @@ | |||
43 | 43 | ||
44 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
45 | #include "accommon.h" | 45 | #include "accommon.h" |
46 | #include "amlcode.h" | ||
47 | #include "acdispat.h" | 46 | #include "acdispat.h" |
48 | #include "acinterp.h" | 47 | #include "acinterp.h" |
49 | #include "acnamesp.h" | 48 | #include "acnamesp.h" |
@@ -201,7 +200,7 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node, | |||
201 | /* | 200 | /* |
202 | * If this method is serialized, we need to acquire the method mutex. | 201 | * If this method is serialized, we need to acquire the method mutex. |
203 | */ | 202 | */ |
204 | if (obj_desc->method.method_flags & AML_METHOD_SERIALIZED) { | 203 | if (obj_desc->method.info_flags & ACPI_METHOD_SERIALIZED) { |
205 | /* | 204 | /* |
206 | * Create a mutex for the method if it is defined to be Serialized | 205 | * Create a mutex for the method if it is defined to be Serialized |
207 | * and a mutex has not already been created. We defer the mutex creation | 206 | * and a mutex has not already been created. We defer the mutex creation |
@@ -413,8 +412,9 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
413 | 412 | ||
414 | /* Invoke an internal method if necessary */ | 413 | /* Invoke an internal method if necessary */ |
415 | 414 | ||
416 | if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) { | 415 | if (obj_desc->method.info_flags & ACPI_METHOD_INTERNAL_ONLY) { |
417 | status = obj_desc->method.extra.implementation(next_walk_state); | 416 | status = |
417 | obj_desc->method.dispatch.implementation(next_walk_state); | ||
418 | if (status == AE_OK) { | 418 | if (status == AE_OK) { |
419 | status = AE_CTRL_TERMINATE; | 419 | status = AE_CTRL_TERMINATE; |
420 | } | 420 | } |
@@ -579,11 +579,14 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
579 | 579 | ||
580 | /* | 580 | /* |
581 | * Delete any namespace objects created anywhere within the | 581 | * Delete any namespace objects created anywhere within the |
582 | * namespace by the execution of this method. Unless this method | 582 | * namespace by the execution of this method. Unless: |
583 | * is a module-level executable code method, in which case we | 583 | * 1) This method is a module-level executable code method, in which |
584 | * want make the objects permanent. | 584 | * case we want make the objects permanent. |
585 | * 2) There are other threads executing the method, in which case we | ||
586 | * will wait until the last thread has completed. | ||
585 | */ | 587 | */ |
586 | if (!(method_desc->method.flags & AOPOBJ_MODULE_LEVEL)) { | 588 | if (!(method_desc->method.info_flags & ACPI_METHOD_MODULE_LEVEL) |
589 | && (method_desc->method.thread_count == 1)) { | ||
587 | 590 | ||
588 | /* Delete any direct children of (created by) this method */ | 591 | /* Delete any direct children of (created by) this method */ |
589 | 592 | ||
@@ -593,12 +596,17 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
593 | /* | 596 | /* |
594 | * Delete any objects that were created by this method | 597 | * Delete any objects that were created by this method |
595 | * elsewhere in the namespace (if any were created). | 598 | * elsewhere in the namespace (if any were created). |
599 | * Use of the ACPI_METHOD_MODIFIED_NAMESPACE optimizes the | ||
600 | * deletion such that we don't have to perform an entire | ||
601 | * namespace walk for every control method execution. | ||
596 | */ | 602 | */ |
597 | if (method_desc->method. | 603 | if (method_desc->method. |
598 | flags & AOPOBJ_MODIFIED_NAMESPACE) { | 604 | info_flags & ACPI_METHOD_MODIFIED_NAMESPACE) { |
599 | acpi_ns_delete_namespace_by_owner(method_desc-> | 605 | acpi_ns_delete_namespace_by_owner(method_desc-> |
600 | method. | 606 | method. |
601 | owner_id); | 607 | owner_id); |
608 | method_desc->method.info_flags &= | ||
609 | ~ACPI_METHOD_MODIFIED_NAMESPACE; | ||
602 | } | 610 | } |
603 | } | 611 | } |
604 | } | 612 | } |
@@ -629,19 +637,43 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
629 | * Serialized if it appears that the method is incorrectly written and | 637 | * Serialized if it appears that the method is incorrectly written and |
630 | * does not support multiple thread execution. The best example of this | 638 | * does not support multiple thread execution. The best example of this |
631 | * is if such a method creates namespace objects and blocks. A second | 639 | * is if such a method creates namespace objects and blocks. A second |
632 | * thread will fail with an AE_ALREADY_EXISTS exception | 640 | * thread will fail with an AE_ALREADY_EXISTS exception. |
633 | * | 641 | * |
634 | * This code is here because we must wait until the last thread exits | 642 | * This code is here because we must wait until the last thread exits |
635 | * before creating the synchronization semaphore. | 643 | * before marking the method as serialized. |
636 | */ | 644 | */ |
637 | if ((method_desc->method.method_flags & AML_METHOD_SERIALIZED) | 645 | if (method_desc->method. |
638 | && (!method_desc->method.mutex)) { | 646 | info_flags & ACPI_METHOD_SERIALIZED_PENDING) { |
639 | (void)acpi_ds_create_method_mutex(method_desc); | 647 | if (walk_state) { |
648 | ACPI_INFO((AE_INFO, | ||
649 | "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error", | ||
650 | walk_state->method_node->name. | ||
651 | ascii)); | ||
652 | } | ||
653 | |||
654 | /* | ||
655 | * Method tried to create an object twice and was marked as | ||
656 | * "pending serialized". The probable cause is that the method | ||
657 | * cannot handle reentrancy. | ||
658 | * | ||
659 | * The method was created as not_serialized, but it tried to create | ||
660 | * a named object and then blocked, causing the second thread | ||
661 | * entrance to begin and then fail. Workaround this problem by | ||
662 | * marking the method permanently as Serialized when the last | ||
663 | * thread exits here. | ||
664 | */ | ||
665 | method_desc->method.info_flags &= | ||
666 | ~ACPI_METHOD_SERIALIZED_PENDING; | ||
667 | method_desc->method.info_flags |= | ||
668 | ACPI_METHOD_SERIALIZED; | ||
669 | method_desc->method.sync_level = 0; | ||
640 | } | 670 | } |
641 | 671 | ||
642 | /* No more threads, we can free the owner_id */ | 672 | /* No more threads, we can free the owner_id */ |
643 | 673 | ||
644 | if (!(method_desc->method.flags & AOPOBJ_MODULE_LEVEL)) { | 674 | if (! |
675 | (method_desc->method. | ||
676 | info_flags & ACPI_METHOD_MODULE_LEVEL)) { | ||
645 | acpi_ut_release_owner_id(&method_desc->method.owner_id); | 677 | acpi_ut_release_owner_id(&method_desc->method.owner_id); |
646 | } | 678 | } |
647 | } | 679 | } |
diff --git a/drivers/acpi/acpica/dsmthdat.c b/drivers/acpi/acpica/dsmthdat.c index 8095306fcd8c..905ce29a92e1 100644 --- a/drivers/acpi/acpica/dsmthdat.c +++ b/drivers/acpi/acpica/dsmthdat.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsobject.c b/drivers/acpi/acpica/dsobject.c index 8e85f54a8e0e..f42e17e5c252 100644 --- a/drivers/acpi/acpica/dsobject.c +++ b/drivers/acpi/acpica/dsobject.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsopcode.c b/drivers/acpi/acpica/dsopcode.c index 7c0e74227171..bbecf293aeeb 100644 --- a/drivers/acpi/acpica/dsopcode.c +++ b/drivers/acpi/acpica/dsopcode.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dsutils.c b/drivers/acpi/acpica/dsutils.c index 15135c25aa9b..2c477ce172fa 100644 --- a/drivers/acpi/acpica/dsutils.c +++ b/drivers/acpi/acpica/dsutils.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c index 6b0b5d08d97a..fe40e4c6554f 100644 --- a/drivers/acpi/acpica/dswexec.c +++ b/drivers/acpi/acpica/dswexec.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c index 140a9d002959..52566ff5e903 100644 --- a/drivers/acpi/acpica/dswload.c +++ b/drivers/acpi/acpica/dswload.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dswscope.c b/drivers/acpi/acpica/dswscope.c index d1e701709dac..76a661fc1e09 100644 --- a/drivers/acpi/acpica/dswscope.c +++ b/drivers/acpi/acpica/dswscope.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/dswstate.c b/drivers/acpi/acpica/dswstate.c index 83155dd8671e..a6c374ef9914 100644 --- a/drivers/acpi/acpica/dswstate.c +++ b/drivers/acpi/acpica/dswstate.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evevent.c b/drivers/acpi/acpica/evevent.c index e5e313c663a5..d458b041e651 100644 --- a/drivers/acpi/acpica/evevent.c +++ b/drivers/acpi/acpica/evevent.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c index 7c339d34ab42..14988a86066f 100644 --- a/drivers/acpi/acpica/evgpe.c +++ b/drivers/acpi/acpica/evgpe.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -471,6 +471,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context) | |||
471 | 471 | ||
472 | status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS); | 472 | status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS); |
473 | if (ACPI_FAILURE(status)) { | 473 | if (ACPI_FAILURE(status)) { |
474 | ACPI_FREE(local_gpe_event_info); | ||
474 | return_VOID; | 475 | return_VOID; |
475 | } | 476 | } |
476 | 477 | ||
@@ -478,6 +479,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context) | |||
478 | 479 | ||
479 | if (!acpi_ev_valid_gpe_event(gpe_event_info)) { | 480 | if (!acpi_ev_valid_gpe_event(gpe_event_info)) { |
480 | status = acpi_ut_release_mutex(ACPI_MTX_EVENTS); | 481 | status = acpi_ut_release_mutex(ACPI_MTX_EVENTS); |
482 | ACPI_FREE(local_gpe_event_info); | ||
481 | return_VOID; | 483 | return_VOID; |
482 | } | 484 | } |
483 | 485 | ||
diff --git a/drivers/acpi/acpica/evgpeblk.c b/drivers/acpi/acpica/evgpeblk.c index 9acb86958c09..ca2c41a53311 100644 --- a/drivers/acpi/acpica/evgpeblk.c +++ b/drivers/acpi/acpica/evgpeblk.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evgpeinit.c b/drivers/acpi/acpica/evgpeinit.c index c59dc2340593..ce9aa9f9a972 100644 --- a/drivers/acpi/acpica/evgpeinit.c +++ b/drivers/acpi/acpica/evgpeinit.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evgpeutil.c b/drivers/acpi/acpica/evgpeutil.c index 10e477494dcf..80a81d0c4a80 100644 --- a/drivers/acpi/acpica/evgpeutil.c +++ b/drivers/acpi/acpica/evgpeutil.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evmisc.c b/drivers/acpi/acpica/evmisc.c index 38bba66fcce5..7dc80946f7bd 100644 --- a/drivers/acpi/acpica/evmisc.c +++ b/drivers/acpi/acpica/evmisc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evregion.c b/drivers/acpi/acpica/evregion.c index 98fd210e87b2..785a5ee64585 100644 --- a/drivers/acpi/acpica/evregion.c +++ b/drivers/acpi/acpica/evregion.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evrgnini.c b/drivers/acpi/acpica/evrgnini.c index 0b47a6dc9290..9659cee6093e 100644 --- a/drivers/acpi/acpica/evrgnini.c +++ b/drivers/acpi/acpica/evrgnini.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -590,9 +590,9 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj, | |||
590 | * See acpi_ns_exec_module_code | 590 | * See acpi_ns_exec_module_code |
591 | */ | 591 | */ |
592 | if (obj_desc->method. | 592 | if (obj_desc->method. |
593 | flags & AOPOBJ_MODULE_LEVEL) { | 593 | info_flags & ACPI_METHOD_MODULE_LEVEL) { |
594 | handler_obj = | 594 | handler_obj = |
595 | obj_desc->method.extra.handler; | 595 | obj_desc->method.dispatch.handler; |
596 | } | 596 | } |
597 | break; | 597 | break; |
598 | 598 | ||
diff --git a/drivers/acpi/acpica/evsci.c b/drivers/acpi/acpica/evsci.c index 8dfbaa96e422..2ebd40e1a3ef 100644 --- a/drivers/acpi/acpica/evsci.c +++ b/drivers/acpi/acpica/evsci.c | |||
@@ -6,7 +6,7 @@ | |||
6 | ******************************************************************************/ | 6 | ******************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evxface.c b/drivers/acpi/acpica/evxface.c index 1226689bdb1b..e1141402dbed 100644 --- a/drivers/acpi/acpica/evxface.c +++ b/drivers/acpi/acpica/evxface.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evxfevnt.c b/drivers/acpi/acpica/evxfevnt.c index 90488c1e0f3d..c57b5c707a77 100644 --- a/drivers/acpi/acpica/evxfevnt.c +++ b/drivers/acpi/acpica/evxfevnt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evxfgpe.c b/drivers/acpi/acpica/evxfgpe.c index 416845bc9c1f..e9562a7cb2f9 100644 --- a/drivers/acpi/acpica/evxfgpe.c +++ b/drivers/acpi/acpica/evxfgpe.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/evxfregn.c b/drivers/acpi/acpica/evxfregn.c index ce9314f79451..eb7386763712 100644 --- a/drivers/acpi/acpica/evxfregn.c +++ b/drivers/acpi/acpica/evxfregn.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exconfig.c b/drivers/acpi/acpica/exconfig.c index 18832205b631..745a42b401f5 100644 --- a/drivers/acpi/acpica/exconfig.c +++ b/drivers/acpi/acpica/exconfig.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exconvrt.c b/drivers/acpi/acpica/exconvrt.c index b73bc50c5b76..74162a11817d 100644 --- a/drivers/acpi/acpica/exconvrt.c +++ b/drivers/acpi/acpica/exconvrt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/excreate.c b/drivers/acpi/acpica/excreate.c index 3c61b48c73f5..e7b372d17667 100644 --- a/drivers/acpi/acpica/excreate.c +++ b/drivers/acpi/acpica/excreate.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -482,13 +482,11 @@ acpi_ex_create_method(u8 * aml_start, | |||
482 | obj_desc->method.aml_length = aml_length; | 482 | obj_desc->method.aml_length = aml_length; |
483 | 483 | ||
484 | /* | 484 | /* |
485 | * Disassemble the method flags. Split off the Arg Count | 485 | * Disassemble the method flags. Split off the arg_count, Serialized |
486 | * for efficiency | 486 | * flag, and sync_level for efficiency. |
487 | */ | 487 | */ |
488 | method_flags = (u8) operand[1]->integer.value; | 488 | method_flags = (u8) operand[1]->integer.value; |
489 | 489 | ||
490 | obj_desc->method.method_flags = | ||
491 | (u8) (method_flags & ~AML_METHOD_ARG_COUNT); | ||
492 | obj_desc->method.param_count = | 490 | obj_desc->method.param_count = |
493 | (u8) (method_flags & AML_METHOD_ARG_COUNT); | 491 | (u8) (method_flags & AML_METHOD_ARG_COUNT); |
494 | 492 | ||
@@ -497,6 +495,8 @@ acpi_ex_create_method(u8 * aml_start, | |||
497 | * created for this method when it is parsed. | 495 | * created for this method when it is parsed. |
498 | */ | 496 | */ |
499 | if (method_flags & AML_METHOD_SERIALIZED) { | 497 | if (method_flags & AML_METHOD_SERIALIZED) { |
498 | obj_desc->method.info_flags = ACPI_METHOD_SERIALIZED; | ||
499 | |||
500 | /* | 500 | /* |
501 | * ACPI 1.0: sync_level = 0 | 501 | * ACPI 1.0: sync_level = 0 |
502 | * ACPI 2.0: sync_level = sync_level in method declaration | 502 | * ACPI 2.0: sync_level = sync_level in method declaration |
diff --git a/drivers/acpi/acpica/exdebug.c b/drivers/acpi/acpica/exdebug.c index be8c98b480d7..c7a2f1edd282 100644 --- a/drivers/acpi/acpica/exdebug.c +++ b/drivers/acpi/acpica/exdebug.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exdump.c b/drivers/acpi/acpica/exdump.c index f067bbb0d961..61b8c0e8b74d 100644 --- a/drivers/acpi/acpica/exdump.c +++ b/drivers/acpi/acpica/exdump.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -122,7 +122,7 @@ static struct acpi_exdump_info acpi_ex_dump_event[2] = { | |||
122 | 122 | ||
123 | static struct acpi_exdump_info acpi_ex_dump_method[9] = { | 123 | static struct acpi_exdump_info acpi_ex_dump_method[9] = { |
124 | {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_method), NULL}, | 124 | {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_method), NULL}, |
125 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.method_flags), "Method Flags"}, | 125 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.info_flags), "Info Flags"}, |
126 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.param_count), | 126 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.param_count), |
127 | "Parameter Count"}, | 127 | "Parameter Count"}, |
128 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.sync_level), "Sync Level"}, | 128 | {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.sync_level), "Sync Level"}, |
diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c index f17d2ff0031b..0bde2230c028 100644 --- a/drivers/acpi/acpica/exfield.c +++ b/drivers/acpi/acpica/exfield.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c index 38293fd3e088..6c79c29f082d 100644 --- a/drivers/acpi/acpica/exfldio.c +++ b/drivers/acpi/acpica/exfldio.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exmisc.c b/drivers/acpi/acpica/exmisc.c index 95db4be0877b..703d88ed0b3d 100644 --- a/drivers/acpi/acpica/exmisc.c +++ b/drivers/acpi/acpica/exmisc.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exmutex.c b/drivers/acpi/acpica/exmutex.c index 6af14e43f839..be1c56ead653 100644 --- a/drivers/acpi/acpica/exmutex.c +++ b/drivers/acpi/acpica/exmutex.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exnames.c b/drivers/acpi/acpica/exnames.c index d11e539ef763..49ec049c157e 100644 --- a/drivers/acpi/acpica/exnames.c +++ b/drivers/acpi/acpica/exnames.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exoparg1.c b/drivers/acpi/acpica/exoparg1.c index 84e4d185aa25..236ead14b7f7 100644 --- a/drivers/acpi/acpica/exoparg1.c +++ b/drivers/acpi/acpica/exoparg1.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exoparg2.c b/drivers/acpi/acpica/exoparg2.c index 10e104cf0fb9..2571b4a310f4 100644 --- a/drivers/acpi/acpica/exoparg2.c +++ b/drivers/acpi/acpica/exoparg2.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exoparg3.c b/drivers/acpi/acpica/exoparg3.c index 7a08d23befcd..1b48d9d28c9a 100644 --- a/drivers/acpi/acpica/exoparg3.c +++ b/drivers/acpi/acpica/exoparg3.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exoparg6.c b/drivers/acpi/acpica/exoparg6.c index 4b50730cf9a0..f4a2787e8e92 100644 --- a/drivers/acpi/acpica/exoparg6.c +++ b/drivers/acpi/acpica/exoparg6.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exprep.c b/drivers/acpi/acpica/exprep.c index 7aae29f73d3f..cc95e2000406 100644 --- a/drivers/acpi/acpica/exprep.c +++ b/drivers/acpi/acpica/exprep.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exregion.c b/drivers/acpi/acpica/exregion.c index de17e10da0ed..f0d5e14f1f2c 100644 --- a/drivers/acpi/acpica/exregion.c +++ b/drivers/acpi/acpica/exregion.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exresnte.c b/drivers/acpi/acpica/exresnte.c index 1fa4289a687e..55997e46948b 100644 --- a/drivers/acpi/acpica/exresnte.c +++ b/drivers/acpi/acpica/exresnte.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exresolv.c b/drivers/acpi/acpica/exresolv.c index 7ca35ea8acea..db502cd7d934 100644 --- a/drivers/acpi/acpica/exresolv.c +++ b/drivers/acpi/acpica/exresolv.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exresop.c b/drivers/acpi/acpica/exresop.c index 8c97cfd6a0fd..e3bb00ccdff5 100644 --- a/drivers/acpi/acpica/exresop.c +++ b/drivers/acpi/acpica/exresop.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exstore.c b/drivers/acpi/acpica/exstore.c index 1624436ba4c5..c0c8842dd344 100644 --- a/drivers/acpi/acpica/exstore.c +++ b/drivers/acpi/acpica/exstore.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exstoren.c b/drivers/acpi/acpica/exstoren.c index d4af684620ca..a979017d56b8 100644 --- a/drivers/acpi/acpica/exstoren.c +++ b/drivers/acpi/acpica/exstoren.c | |||
@@ -7,7 +7,7 @@ | |||
7 | *****************************************************************************/ | 7 | *****************************************************************************/ |
8 | 8 | ||
9 | /* | 9 | /* |
10 | * Copyright (C) 2000 - 2010, Intel Corp. | 10 | * Copyright (C) 2000 - 2011, Intel Corp. |
11 | * All rights reserved. | 11 | * All rights reserved. |
12 | * | 12 | * |
13 | * Redistribution and use in source and binary forms, with or without | 13 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exstorob.c b/drivers/acpi/acpica/exstorob.c index e972b667b09b..dc665cc554de 100644 --- a/drivers/acpi/acpica/exstorob.c +++ b/drivers/acpi/acpica/exstorob.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exsystem.c b/drivers/acpi/acpica/exsystem.c index 675aaa91a770..df66e7b686be 100644 --- a/drivers/acpi/acpica/exsystem.c +++ b/drivers/acpi/acpica/exsystem.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/exutils.c b/drivers/acpi/acpica/exutils.c index 4093522eed45..8ad93146dd32 100644 --- a/drivers/acpi/acpica/exutils.c +++ b/drivers/acpi/acpica/exutils.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwacpi.c b/drivers/acpi/acpica/hwacpi.c index b44274a0b62c..fc380d3d45ab 100644 --- a/drivers/acpi/acpica/hwacpi.c +++ b/drivers/acpi/acpica/hwacpi.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c index 85c3cbd4304d..f610d88a66be 100644 --- a/drivers/acpi/acpica/hwgpe.c +++ b/drivers/acpi/acpica/hwgpe.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwpci.c b/drivers/acpi/acpica/hwpci.c index ad21c7d8bf4f..050fd227951b 100644 --- a/drivers/acpi/acpica/hwpci.c +++ b/drivers/acpi/acpica/hwpci.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwregs.c b/drivers/acpi/acpica/hwregs.c index 5d1273b660ae..55accb7018bb 100644 --- a/drivers/acpi/acpica/hwregs.c +++ b/drivers/acpi/acpica/hwregs.c | |||
@@ -7,7 +7,7 @@ | |||
7 | ******************************************************************************/ | 7 | ******************************************************************************/ |
8 | 8 | ||
9 | /* | 9 | /* |
10 | * Copyright (C) 2000 - 2010, Intel Corp. | 10 | * Copyright (C) 2000 - 2011, Intel Corp. |
11 | * All rights reserved. | 11 | * All rights reserved. |
12 | * | 12 | * |
13 | * Redistribution and use in source and binary forms, with or without | 13 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c index 3796811276ac..2ac28bbe8827 100644 --- a/drivers/acpi/acpica/hwsleep.c +++ b/drivers/acpi/acpica/hwsleep.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwtimer.c b/drivers/acpi/acpica/hwtimer.c index 1ef8e0bb250b..9c8eb71a12fb 100644 --- a/drivers/acpi/acpica/hwtimer.c +++ b/drivers/acpi/acpica/hwtimer.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwvalid.c b/drivers/acpi/acpica/hwvalid.c index e1d9c777b213..5f1605874655 100644 --- a/drivers/acpi/acpica/hwvalid.c +++ b/drivers/acpi/acpica/hwvalid.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/hwxface.c b/drivers/acpi/acpica/hwxface.c index 50cc3be77724..6f98d210e71c 100644 --- a/drivers/acpi/acpica/hwxface.c +++ b/drivers/acpi/acpica/hwxface.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsaccess.c b/drivers/acpi/acpica/nsaccess.c index 0cd925be5fc1..d93172fd15a8 100644 --- a/drivers/acpi/acpica/nsaccess.c +++ b/drivers/acpi/acpica/nsaccess.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -163,9 +163,9 @@ acpi_status acpi_ns_root_initialize(void) | |||
163 | #else | 163 | #else |
164 | /* Mark this as a very SPECIAL method */ | 164 | /* Mark this as a very SPECIAL method */ |
165 | 165 | ||
166 | obj_desc->method.method_flags = | 166 | obj_desc->method.info_flags = |
167 | AML_METHOD_INTERNAL_ONLY; | 167 | ACPI_METHOD_INTERNAL_ONLY; |
168 | obj_desc->method.extra.implementation = | 168 | obj_desc->method.dispatch.implementation = |
169 | acpi_ut_osi_implementation; | 169 | acpi_ut_osi_implementation; |
170 | #endif | 170 | #endif |
171 | break; | 171 | break; |
diff --git a/drivers/acpi/acpica/nsalloc.c b/drivers/acpi/acpica/nsalloc.c index 1e5ff803d9ad..1d0ef15d158f 100644 --- a/drivers/acpi/acpica/nsalloc.c +++ b/drivers/acpi/acpica/nsalloc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -234,8 +234,8 @@ void acpi_ns_install_node(struct acpi_walk_state *walk_state, struct acpi_namesp | |||
234 | * modified the namespace. This is used for cleanup when the | 234 | * modified the namespace. This is used for cleanup when the |
235 | * method exits. | 235 | * method exits. |
236 | */ | 236 | */ |
237 | walk_state->method_desc->method.flags |= | 237 | walk_state->method_desc->method.info_flags |= |
238 | AOPOBJ_MODIFIED_NAMESPACE; | 238 | ACPI_METHOD_MODIFIED_NAMESPACE; |
239 | } | 239 | } |
240 | } | 240 | } |
241 | 241 | ||
@@ -341,6 +341,7 @@ void acpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_node) | |||
341 | { | 341 | { |
342 | struct acpi_namespace_node *child_node = NULL; | 342 | struct acpi_namespace_node *child_node = NULL; |
343 | u32 level = 1; | 343 | u32 level = 1; |
344 | acpi_status status; | ||
344 | 345 | ||
345 | ACPI_FUNCTION_TRACE(ns_delete_namespace_subtree); | 346 | ACPI_FUNCTION_TRACE(ns_delete_namespace_subtree); |
346 | 347 | ||
@@ -348,6 +349,13 @@ void acpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_node) | |||
348 | return_VOID; | 349 | return_VOID; |
349 | } | 350 | } |
350 | 351 | ||
352 | /* Lock namespace for possible update */ | ||
353 | |||
354 | status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); | ||
355 | if (ACPI_FAILURE(status)) { | ||
356 | return_VOID; | ||
357 | } | ||
358 | |||
351 | /* | 359 | /* |
352 | * Traverse the tree of objects until we bubble back up | 360 | * Traverse the tree of objects until we bubble back up |
353 | * to where we started. | 361 | * to where we started. |
@@ -397,6 +405,7 @@ void acpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_node) | |||
397 | } | 405 | } |
398 | } | 406 | } |
399 | 407 | ||
408 | (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); | ||
400 | return_VOID; | 409 | return_VOID; |
401 | } | 410 | } |
402 | 411 | ||
diff --git a/drivers/acpi/acpica/nsdump.c b/drivers/acpi/acpica/nsdump.c index a54dc39e304b..b683cc2ff9d3 100644 --- a/drivers/acpi/acpica/nsdump.c +++ b/drivers/acpi/acpica/nsdump.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -624,9 +624,22 @@ acpi_ns_dump_objects(acpi_object_type type, | |||
624 | acpi_owner_id owner_id, acpi_handle start_handle) | 624 | acpi_owner_id owner_id, acpi_handle start_handle) |
625 | { | 625 | { |
626 | struct acpi_walk_info info; | 626 | struct acpi_walk_info info; |
627 | acpi_status status; | ||
627 | 628 | ||
628 | ACPI_FUNCTION_ENTRY(); | 629 | ACPI_FUNCTION_ENTRY(); |
629 | 630 | ||
631 | /* | ||
632 | * Just lock the entire namespace for the duration of the dump. | ||
633 | * We don't want any changes to the namespace during this time, | ||
634 | * especially the temporary nodes since we are going to display | ||
635 | * them also. | ||
636 | */ | ||
637 | status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); | ||
638 | if (ACPI_FAILURE(status)) { | ||
639 | acpi_os_printf("Could not acquire namespace mutex\n"); | ||
640 | return; | ||
641 | } | ||
642 | |||
630 | info.debug_level = ACPI_LV_TABLES; | 643 | info.debug_level = ACPI_LV_TABLES; |
631 | info.owner_id = owner_id; | 644 | info.owner_id = owner_id; |
632 | info.display_type = display_type; | 645 | info.display_type = display_type; |
@@ -636,6 +649,8 @@ acpi_ns_dump_objects(acpi_object_type type, | |||
636 | ACPI_NS_WALK_TEMP_NODES, | 649 | ACPI_NS_WALK_TEMP_NODES, |
637 | acpi_ns_dump_one_object, NULL, | 650 | acpi_ns_dump_one_object, NULL, |
638 | (void *)&info, NULL); | 651 | (void *)&info, NULL); |
652 | |||
653 | (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); | ||
639 | } | 654 | } |
640 | #endif /* ACPI_FUTURE_USAGE */ | 655 | #endif /* ACPI_FUTURE_USAGE */ |
641 | 656 | ||
diff --git a/drivers/acpi/acpica/nsdumpdv.c b/drivers/acpi/acpica/nsdumpdv.c index d2a97921e249..2ed294b7a4db 100644 --- a/drivers/acpi/acpica/nsdumpdv.c +++ b/drivers/acpi/acpica/nsdumpdv.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nseval.c b/drivers/acpi/acpica/nseval.c index f52829cc294b..c1bd02b1a058 100644 --- a/drivers/acpi/acpica/nseval.c +++ b/drivers/acpi/acpica/nseval.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -389,7 +389,7 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj, | |||
389 | * acpi_gbl_root_node->Object is NULL at PASS1. | 389 | * acpi_gbl_root_node->Object is NULL at PASS1. |
390 | */ | 390 | */ |
391 | if ((type == ACPI_TYPE_DEVICE) && parent_node->object) { | 391 | if ((type == ACPI_TYPE_DEVICE) && parent_node->object) { |
392 | method_obj->method.extra.handler = | 392 | method_obj->method.dispatch.handler = |
393 | parent_node->object->device.handler; | 393 | parent_node->object->device.handler; |
394 | } | 394 | } |
395 | 395 | ||
diff --git a/drivers/acpi/acpica/nsinit.c b/drivers/acpi/acpica/nsinit.c index 0cac7ec0d2ec..fd7c6380e294 100644 --- a/drivers/acpi/acpica/nsinit.c +++ b/drivers/acpi/acpica/nsinit.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsload.c b/drivers/acpi/acpica/nsload.c index df18be94fefe..5f7dc691c183 100644 --- a/drivers/acpi/acpica/nsload.c +++ b/drivers/acpi/acpica/nsload.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsnames.c b/drivers/acpi/acpica/nsnames.c index d3104af57e13..d5fa520c3de5 100644 --- a/drivers/acpi/acpica/nsnames.c +++ b/drivers/acpi/acpica/nsnames.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsobject.c b/drivers/acpi/acpica/nsobject.c index 41a9213dd5af..3bb8bf105ea2 100644 --- a/drivers/acpi/acpica/nsobject.c +++ b/drivers/acpi/acpica/nsobject.c | |||
@@ -6,7 +6,7 @@ | |||
6 | ******************************************************************************/ | 6 | ******************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsparse.c b/drivers/acpi/acpica/nsparse.c index 5808c89e9fac..b3234fa795b8 100644 --- a/drivers/acpi/acpica/nsparse.c +++ b/drivers/acpi/acpica/nsparse.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nspredef.c b/drivers/acpi/acpica/nspredef.c index 7096bcda0c72..9fb03fa8ffde 100644 --- a/drivers/acpi/acpica/nspredef.c +++ b/drivers/acpi/acpica/nspredef.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsrepair.c b/drivers/acpi/acpica/nsrepair.c index d1c136692667..1d76ac85b5e7 100644 --- a/drivers/acpi/acpica/nsrepair.c +++ b/drivers/acpi/acpica/nsrepair.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsrepair2.c b/drivers/acpi/acpica/nsrepair2.c index 4ef9f43ea926..973883babee1 100644 --- a/drivers/acpi/acpica/nsrepair2.c +++ b/drivers/acpi/acpica/nsrepair2.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nssearch.c b/drivers/acpi/acpica/nssearch.c index 41102a84272f..28b0d7a62b99 100644 --- a/drivers/acpi/acpica/nssearch.c +++ b/drivers/acpi/acpica/nssearch.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsutils.c b/drivers/acpi/acpica/nsutils.c index a7d6ad9c111b..cb1b104a69a2 100644 --- a/drivers/acpi/acpica/nsutils.c +++ b/drivers/acpi/acpica/nsutils.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nswalk.c b/drivers/acpi/acpica/nswalk.c index 2cd5be8fe10f..345f0c3c6ad2 100644 --- a/drivers/acpi/acpica/nswalk.c +++ b/drivers/acpi/acpica/nswalk.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsxfeval.c b/drivers/acpi/acpica/nsxfeval.c index ebef8a7fd707..c53f0040e490 100644 --- a/drivers/acpi/acpica/nsxfeval.c +++ b/drivers/acpi/acpica/nsxfeval.c | |||
@@ -6,7 +6,7 @@ | |||
6 | ******************************************************************************/ | 6 | ******************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/nsxfname.c b/drivers/acpi/acpica/nsxfname.c index b01e45a415e3..3fd4526f3dba 100644 --- a/drivers/acpi/acpica/nsxfname.c +++ b/drivers/acpi/acpica/nsxfname.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
@@ -603,10 +603,9 @@ acpi_status acpi_install_method(u8 *buffer) | |||
603 | method_obj->method.param_count = (u8) | 603 | method_obj->method.param_count = (u8) |
604 | (method_flags & AML_METHOD_ARG_COUNT); | 604 | (method_flags & AML_METHOD_ARG_COUNT); |
605 | 605 | ||
606 | method_obj->method.method_flags = (u8) | ||
607 | (method_flags & ~AML_METHOD_ARG_COUNT); | ||
608 | |||
609 | if (method_flags & AML_METHOD_SERIALIZED) { | 606 | if (method_flags & AML_METHOD_SERIALIZED) { |
607 | method_obj->method.info_flags = ACPI_METHOD_SERIALIZED; | ||
608 | |||
610 | method_obj->method.sync_level = (u8) | 609 | method_obj->method.sync_level = (u8) |
611 | ((method_flags & AML_METHOD_SYNC_LEVEL) >> 4); | 610 | ((method_flags & AML_METHOD_SYNC_LEVEL) >> 4); |
612 | } | 611 | } |
diff --git a/drivers/acpi/acpica/nsxfobj.c b/drivers/acpi/acpica/nsxfobj.c index a1f04e9b8030..db7660f8b869 100644 --- a/drivers/acpi/acpica/nsxfobj.c +++ b/drivers/acpi/acpica/nsxfobj.c | |||
@@ -6,7 +6,7 @@ | |||
6 | ******************************************************************************/ | 6 | ******************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/psargs.c b/drivers/acpi/acpica/psargs.c index 7df1a4c95274..e1fad0ee0136 100644 --- a/drivers/acpi/acpica/psargs.c +++ b/drivers/acpi/acpica/psargs.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/psloop.c b/drivers/acpi/acpica/psloop.c index 2f2e7760938c..01dd70d1de51 100644 --- a/drivers/acpi/acpica/psloop.c +++ b/drivers/acpi/acpica/psloop.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -655,7 +655,7 @@ acpi_ps_link_module_code(union acpi_parse_object *parent_op, | |||
655 | method_obj->method.aml_start = aml_start; | 655 | method_obj->method.aml_start = aml_start; |
656 | method_obj->method.aml_length = aml_length; | 656 | method_obj->method.aml_length = aml_length; |
657 | method_obj->method.owner_id = owner_id; | 657 | method_obj->method.owner_id = owner_id; |
658 | method_obj->method.flags |= AOPOBJ_MODULE_LEVEL; | 658 | method_obj->method.info_flags |= ACPI_METHOD_MODULE_LEVEL; |
659 | 659 | ||
660 | /* | 660 | /* |
661 | * Save the parent node in next_object. This is cheating, but we | 661 | * Save the parent node in next_object. This is cheating, but we |
diff --git a/drivers/acpi/acpica/psopcode.c b/drivers/acpi/acpica/psopcode.c index 2b0c3be2b1b8..bed08de7528c 100644 --- a/drivers/acpi/acpica/psopcode.c +++ b/drivers/acpi/acpica/psopcode.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/psparse.c b/drivers/acpi/acpica/psparse.c index 8d81542194d4..9bb0cbd37b5e 100644 --- a/drivers/acpi/acpica/psparse.c +++ b/drivers/acpi/acpica/psparse.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -55,7 +55,6 @@ | |||
55 | #include "acparser.h" | 55 | #include "acparser.h" |
56 | #include "acdispat.h" | 56 | #include "acdispat.h" |
57 | #include "amlcode.h" | 57 | #include "amlcode.h" |
58 | #include "acnamesp.h" | ||
59 | #include "acinterp.h" | 58 | #include "acinterp.h" |
60 | 59 | ||
61 | #define _COMPONENT ACPI_PARSER | 60 | #define _COMPONENT ACPI_PARSER |
@@ -539,24 +538,16 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
539 | /* Check for possible multi-thread reentrancy problem */ | 538 | /* Check for possible multi-thread reentrancy problem */ |
540 | 539 | ||
541 | if ((status == AE_ALREADY_EXISTS) && | 540 | if ((status == AE_ALREADY_EXISTS) && |
542 | (!walk_state->method_desc->method.mutex)) { | 541 | (!(walk_state->method_desc->method. |
543 | ACPI_INFO((AE_INFO, | 542 | info_flags & ACPI_METHOD_SERIALIZED))) { |
544 | "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error", | ||
545 | walk_state->method_node->name. | ||
546 | ascii)); | ||
547 | |||
548 | /* | 543 | /* |
549 | * Method tried to create an object twice. The probable cause is | 544 | * Method is not serialized and tried to create an object |
550 | * that the method cannot handle reentrancy. | 545 | * twice. The probable cause is that the method cannot |
551 | * | 546 | * handle reentrancy. Mark as "pending serialized" now, and |
552 | * The method is marked not_serialized, but it tried to create | 547 | * then mark "serialized" when the last thread exits. |
553 | * a named object, causing the second thread entrance to fail. | ||
554 | * Workaround this problem by marking the method permanently | ||
555 | * as Serialized. | ||
556 | */ | 548 | */ |
557 | walk_state->method_desc->method.method_flags |= | 549 | walk_state->method_desc->method.info_flags |= |
558 | AML_METHOD_SERIALIZED; | 550 | ACPI_METHOD_SERIALIZED_PENDING; |
559 | walk_state->method_desc->method.sync_level = 0; | ||
560 | } | 551 | } |
561 | } | 552 | } |
562 | 553 | ||
diff --git a/drivers/acpi/acpica/psscope.c b/drivers/acpi/acpica/psscope.c index 40e2b279ea12..a5faa1323a02 100644 --- a/drivers/acpi/acpica/psscope.c +++ b/drivers/acpi/acpica/psscope.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/pstree.c b/drivers/acpi/acpica/pstree.c index d4b970c3630b..f1464c03aa42 100644 --- a/drivers/acpi/acpica/pstree.c +++ b/drivers/acpi/acpica/pstree.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/psutils.c b/drivers/acpi/acpica/psutils.c index fe29eee5adb1..7eda78503422 100644 --- a/drivers/acpi/acpica/psutils.c +++ b/drivers/acpi/acpica/psutils.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/pswalk.c b/drivers/acpi/acpica/pswalk.c index 8abb9629443d..3312d6368bf1 100644 --- a/drivers/acpi/acpica/pswalk.c +++ b/drivers/acpi/acpica/pswalk.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/psxface.c b/drivers/acpi/acpica/psxface.c index c42f067cff9d..8086805d4494 100644 --- a/drivers/acpi/acpica/psxface.c +++ b/drivers/acpi/acpica/psxface.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -47,7 +47,6 @@ | |||
47 | #include "acdispat.h" | 47 | #include "acdispat.h" |
48 | #include "acinterp.h" | 48 | #include "acinterp.h" |
49 | #include "actables.h" | 49 | #include "actables.h" |
50 | #include "amlcode.h" | ||
51 | 50 | ||
52 | #define _COMPONENT ACPI_PARSER | 51 | #define _COMPONENT ACPI_PARSER |
53 | ACPI_MODULE_NAME("psxface") | 52 | ACPI_MODULE_NAME("psxface") |
@@ -285,15 +284,15 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info) | |||
285 | goto cleanup; | 284 | goto cleanup; |
286 | } | 285 | } |
287 | 286 | ||
288 | if (info->obj_desc->method.flags & AOPOBJ_MODULE_LEVEL) { | 287 | if (info->obj_desc->method.info_flags & ACPI_METHOD_MODULE_LEVEL) { |
289 | walk_state->parse_flags |= ACPI_PARSE_MODULE_LEVEL; | 288 | walk_state->parse_flags |= ACPI_PARSE_MODULE_LEVEL; |
290 | } | 289 | } |
291 | 290 | ||
292 | /* Invoke an internal method if necessary */ | 291 | /* Invoke an internal method if necessary */ |
293 | 292 | ||
294 | if (info->obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) { | 293 | if (info->obj_desc->method.info_flags & ACPI_METHOD_INTERNAL_ONLY) { |
295 | status = | 294 | status = |
296 | info->obj_desc->method.extra.implementation(walk_state); | 295 | info->obj_desc->method.dispatch.implementation(walk_state); |
297 | info->return_object = walk_state->return_desc; | 296 | info->return_object = walk_state->return_desc; |
298 | 297 | ||
299 | /* Cleanup states */ | 298 | /* Cleanup states */ |
diff --git a/drivers/acpi/acpica/rsaddr.c b/drivers/acpi/acpica/rsaddr.c index 226c806ae986..9e66f9078426 100644 --- a/drivers/acpi/acpica/rsaddr.c +++ b/drivers/acpi/acpica/rsaddr.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rscalc.c b/drivers/acpi/acpica/rscalc.c index d6ebf7ec622d..3a8a89ec2ca4 100644 --- a/drivers/acpi/acpica/rscalc.c +++ b/drivers/acpi/acpica/rscalc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c index c80a2eea3a01..4ce6e1147e80 100644 --- a/drivers/acpi/acpica/rscreate.c +++ b/drivers/acpi/acpica/rscreate.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsdump.c b/drivers/acpi/acpica/rsdump.c index f859b0386fe4..33db7520c74b 100644 --- a/drivers/acpi/acpica/rsdump.c +++ b/drivers/acpi/acpica/rsdump.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsinfo.c b/drivers/acpi/acpica/rsinfo.c index 1fd868b964fd..f9ea60872aa4 100644 --- a/drivers/acpi/acpica/rsinfo.c +++ b/drivers/acpi/acpica/rsinfo.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsio.c b/drivers/acpi/acpica/rsio.c index 33bff17c0bbc..0c7efef008be 100644 --- a/drivers/acpi/acpica/rsio.c +++ b/drivers/acpi/acpica/rsio.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsirq.c b/drivers/acpi/acpica/rsirq.c index 545da40d7fa7..50b8ad211167 100644 --- a/drivers/acpi/acpica/rsirq.c +++ b/drivers/acpi/acpica/rsirq.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rslist.c b/drivers/acpi/acpica/rslist.c index 7335f22aac20..1bfcef736c50 100644 --- a/drivers/acpi/acpica/rslist.c +++ b/drivers/acpi/acpica/rslist.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsmemory.c b/drivers/acpi/acpica/rsmemory.c index 887b8ba8c432..7cc6d8625f1e 100644 --- a/drivers/acpi/acpica/rsmemory.c +++ b/drivers/acpi/acpica/rsmemory.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsmisc.c b/drivers/acpi/acpica/rsmisc.c index f8cd9e87d987..410264b22a29 100644 --- a/drivers/acpi/acpica/rsmisc.c +++ b/drivers/acpi/acpica/rsmisc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsutils.c b/drivers/acpi/acpica/rsutils.c index 491191e6cf69..231811e56939 100644 --- a/drivers/acpi/acpica/rsutils.c +++ b/drivers/acpi/acpica/rsutils.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/rsxface.c b/drivers/acpi/acpica/rsxface.c index 9f6a6e7e1c8e..2ff657a28f26 100644 --- a/drivers/acpi/acpica/rsxface.c +++ b/drivers/acpi/acpica/rsxface.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c index d2ff4325c427..428d44e2d162 100644 --- a/drivers/acpi/acpica/tbfadt.c +++ b/drivers/acpi/acpica/tbfadt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbfind.c b/drivers/acpi/acpica/tbfind.c index 989d5c867864..a55cb2bb5abb 100644 --- a/drivers/acpi/acpica/tbfind.c +++ b/drivers/acpi/acpica/tbfind.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c index 83d7af8d0905..48db0944ce4a 100644 --- a/drivers/acpi/acpica/tbinstal.c +++ b/drivers/acpi/acpica/tbinstal.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c index 34f9c2bc5e1f..0f2d395feaba 100644 --- a/drivers/acpi/acpica/tbutils.c +++ b/drivers/acpi/acpica/tbutils.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbxface.c b/drivers/acpi/acpica/tbxface.c index 4a8b9e6ea57a..4b7085dfc683 100644 --- a/drivers/acpi/acpica/tbxface.c +++ b/drivers/acpi/acpica/tbxface.c | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/tbxfroot.c b/drivers/acpi/acpica/tbxfroot.c index fd2c07d1d3ac..7eb6c6cc1edf 100644 --- a/drivers/acpi/acpica/tbxfroot.c +++ b/drivers/acpi/acpica/tbxfroot.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utalloc.c b/drivers/acpi/acpica/utalloc.c index 8f0896281567..0a697351cf69 100644 --- a/drivers/acpi/acpica/utalloc.c +++ b/drivers/acpi/acpica/utalloc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utcopy.c b/drivers/acpi/acpica/utcopy.c index 6fef83f04bcd..aded299a2fa8 100644 --- a/drivers/acpi/acpica/utcopy.c +++ b/drivers/acpi/acpica/utcopy.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utdebug.c b/drivers/acpi/acpica/utdebug.c index f21c486929a5..a9bcd816dc29 100644 --- a/drivers/acpi/acpica/utdebug.c +++ b/drivers/acpi/acpica/utdebug.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c index ed794cd033ea..31f5a7832ef1 100644 --- a/drivers/acpi/acpica/utdelete.c +++ b/drivers/acpi/acpica/utdelete.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/uteval.c b/drivers/acpi/acpica/uteval.c index 22f59ef604e0..18f73c9d10bc 100644 --- a/drivers/acpi/acpica/uteval.c +++ b/drivers/acpi/acpica/uteval.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utglobal.c b/drivers/acpi/acpica/utglobal.c index 508537f884ac..97dd9bbf055a 100644 --- a/drivers/acpi/acpica/utglobal.c +++ b/drivers/acpi/acpica/utglobal.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utids.c b/drivers/acpi/acpica/utids.c index d2906328535d..b679ea693545 100644 --- a/drivers/acpi/acpica/utids.c +++ b/drivers/acpi/acpica/utids.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utinit.c b/drivers/acpi/acpica/utinit.c index c1b1c803ea9b..191b6828cce9 100644 --- a/drivers/acpi/acpica/utinit.c +++ b/drivers/acpi/acpica/utinit.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utlock.c b/drivers/acpi/acpica/utlock.c index b081cd46a15f..f6bb75c6faf5 100644 --- a/drivers/acpi/acpica/utlock.c +++ b/drivers/acpi/acpica/utlock.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utmath.c b/drivers/acpi/acpica/utmath.c index 49cf7b7fd816..ce481da9bb45 100644 --- a/drivers/acpi/acpica/utmath.c +++ b/drivers/acpi/acpica/utmath.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utmisc.c b/drivers/acpi/acpica/utmisc.c index c7d0e05ef5a4..c33a852d4f42 100644 --- a/drivers/acpi/acpica/utmisc.c +++ b/drivers/acpi/acpica/utmisc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utmutex.c b/drivers/acpi/acpica/utmutex.c index 199528ff7f1d..a946c689f03b 100644 --- a/drivers/acpi/acpica/utmutex.c +++ b/drivers/acpi/acpica/utmutex.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utobject.c b/drivers/acpi/acpica/utobject.c index fd1fa2749ea5..188340a017b4 100644 --- a/drivers/acpi/acpica/utobject.c +++ b/drivers/acpi/acpica/utobject.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utosi.c b/drivers/acpi/acpica/utosi.c index 18c59a85fdca..1fb10cb8f11d 100644 --- a/drivers/acpi/acpica/utosi.c +++ b/drivers/acpi/acpica/utosi.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utresrc.c b/drivers/acpi/acpica/utresrc.c index 7965919000b1..84e051844247 100644 --- a/drivers/acpi/acpica/utresrc.c +++ b/drivers/acpi/acpica/utresrc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utstate.c b/drivers/acpi/acpica/utstate.c index d35d109b8da2..30c21e1a9360 100644 --- a/drivers/acpi/acpica/utstate.c +++ b/drivers/acpi/acpica/utstate.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utxface.c b/drivers/acpi/acpica/utxface.c index 1f484c9a6888..98ad125e14ff 100644 --- a/drivers/acpi/acpica/utxface.c +++ b/drivers/acpi/acpica/utxface.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/acpica/utxferror.c b/drivers/acpi/acpica/utxferror.c index 6f12e314fbae..916ae097c43c 100644 --- a/drivers/acpi/acpica/utxferror.c +++ b/drivers/acpi/acpica/utxferror.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 68bc227e7c4c..ac1a599f5147 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -998,7 +998,6 @@ static int acpi_battery_resume(struct acpi_device *device) | |||
998 | if (!device) | 998 | if (!device) |
999 | return -EINVAL; | 999 | return -EINVAL; |
1000 | battery = acpi_driver_data(device); | 1000 | battery = acpi_driver_data(device); |
1001 | acpi_battery_refresh(battery); | ||
1002 | battery->update_time = 0; | 1001 | battery->update_time = 0; |
1003 | acpi_battery_update(battery); | 1002 | acpi_battery_update(battery); |
1004 | return 0; | 1003 | return 0; |
diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c index 54b6ab8040a6..fa5a1df42b79 100644 --- a/drivers/acpi/nvs.c +++ b/drivers/acpi/nvs.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include <linux/acpi.h> | 14 | #include <linux/acpi.h> |
15 | #include <linux/acpi_io.h> | ||
15 | #include <acpi/acpiosxf.h> | 16 | #include <acpi/acpiosxf.h> |
16 | 17 | ||
17 | /* | 18 | /* |
@@ -80,7 +81,7 @@ void suspend_nvs_free(void) | |||
80 | free_page((unsigned long)entry->data); | 81 | free_page((unsigned long)entry->data); |
81 | entry->data = NULL; | 82 | entry->data = NULL; |
82 | if (entry->kaddr) { | 83 | if (entry->kaddr) { |
83 | acpi_os_unmap_memory(entry->kaddr, entry->size); | 84 | iounmap(entry->kaddr); |
84 | entry->kaddr = NULL; | 85 | entry->kaddr = NULL; |
85 | } | 86 | } |
86 | } | 87 | } |
@@ -114,8 +115,8 @@ int suspend_nvs_save(void) | |||
114 | 115 | ||
115 | list_for_each_entry(entry, &nvs_list, node) | 116 | list_for_each_entry(entry, &nvs_list, node) |
116 | if (entry->data) { | 117 | if (entry->data) { |
117 | entry->kaddr = acpi_os_map_memory(entry->phys_start, | 118 | entry->kaddr = acpi_os_ioremap(entry->phys_start, |
118 | entry->size); | 119 | entry->size); |
119 | if (!entry->kaddr) { | 120 | if (!entry->kaddr) { |
120 | suspend_nvs_free(); | 121 | suspend_nvs_free(); |
121 | return -ENOMEM; | 122 | return -ENOMEM; |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index e2dd6de5d50c..b0931818cf98 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/workqueue.h> | 38 | #include <linux/workqueue.h> |
39 | #include <linux/nmi.h> | 39 | #include <linux/nmi.h> |
40 | #include <linux/acpi.h> | 40 | #include <linux/acpi.h> |
41 | #include <linux/acpi_io.h> | ||
41 | #include <linux/efi.h> | 42 | #include <linux/efi.h> |
42 | #include <linux/ioport.h> | 43 | #include <linux/ioport.h> |
43 | #include <linux/list.h> | 44 | #include <linux/list.h> |
@@ -302,9 +303,10 @@ void __iomem *__init_refok | |||
302 | acpi_os_map_memory(acpi_physical_address phys, acpi_size size) | 303 | acpi_os_map_memory(acpi_physical_address phys, acpi_size size) |
303 | { | 304 | { |
304 | struct acpi_ioremap *map, *tmp_map; | 305 | struct acpi_ioremap *map, *tmp_map; |
305 | unsigned long flags, pg_sz; | 306 | unsigned long flags; |
306 | void __iomem *virt; | 307 | void __iomem *virt; |
307 | phys_addr_t pg_off; | 308 | acpi_physical_address pg_off; |
309 | acpi_size pg_sz; | ||
308 | 310 | ||
309 | if (phys > ULONG_MAX) { | 311 | if (phys > ULONG_MAX) { |
310 | printk(KERN_ERR PREFIX "Cannot map memory that high\n"); | 312 | printk(KERN_ERR PREFIX "Cannot map memory that high\n"); |
@@ -320,7 +322,7 @@ acpi_os_map_memory(acpi_physical_address phys, acpi_size size) | |||
320 | 322 | ||
321 | pg_off = round_down(phys, PAGE_SIZE); | 323 | pg_off = round_down(phys, PAGE_SIZE); |
322 | pg_sz = round_up(phys + size, PAGE_SIZE) - pg_off; | 324 | pg_sz = round_up(phys + size, PAGE_SIZE) - pg_off; |
323 | virt = ioremap_cache(pg_off, pg_sz); | 325 | virt = acpi_os_ioremap(pg_off, pg_sz); |
324 | if (!virt) { | 326 | if (!virt) { |
325 | kfree(map); | 327 | kfree(map); |
326 | return NULL; | 328 | return NULL; |
@@ -642,7 +644,7 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u32 * value, u32 width) | |||
642 | virt_addr = acpi_map_vaddr_lookup(phys_addr, size); | 644 | virt_addr = acpi_map_vaddr_lookup(phys_addr, size); |
643 | rcu_read_unlock(); | 645 | rcu_read_unlock(); |
644 | if (!virt_addr) { | 646 | if (!virt_addr) { |
645 | virt_addr = ioremap_cache(phys_addr, size); | 647 | virt_addr = acpi_os_ioremap(phys_addr, size); |
646 | unmap = 1; | 648 | unmap = 1; |
647 | } | 649 | } |
648 | if (!value) | 650 | if (!value) |
@@ -678,7 +680,7 @@ acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width) | |||
678 | virt_addr = acpi_map_vaddr_lookup(phys_addr, size); | 680 | virt_addr = acpi_map_vaddr_lookup(phys_addr, size); |
679 | rcu_read_unlock(); | 681 | rcu_read_unlock(); |
680 | if (!virt_addr) { | 682 | if (!virt_addr) { |
681 | virt_addr = ioremap_cache(phys_addr, size); | 683 | virt_addr = acpi_os_ioremap(phys_addr, size); |
682 | unmap = 1; | 684 | unmap = 1; |
683 | } | 685 | } |
684 | 686 | ||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index fdd3aeeb6def..d6a8cd14de2e 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -166,6 +166,7 @@ static void acpi_pm_finish(void) | |||
166 | u32 acpi_state = acpi_target_sleep_state; | 166 | u32 acpi_state = acpi_target_sleep_state; |
167 | 167 | ||
168 | acpi_ec_unblock_transactions(); | 168 | acpi_ec_unblock_transactions(); |
169 | suspend_nvs_free(); | ||
169 | 170 | ||
170 | if (acpi_state == ACPI_STATE_S0) | 171 | if (acpi_state == ACPI_STATE_S0) |
171 | return; | 172 | return; |
@@ -186,7 +187,6 @@ static void acpi_pm_finish(void) | |||
186 | */ | 187 | */ |
187 | static void acpi_pm_end(void) | 188 | static void acpi_pm_end(void) |
188 | { | 189 | { |
189 | suspend_nvs_free(); | ||
190 | /* | 190 | /* |
191 | * This is necessary in case acpi_pm_finish() is not called during a | 191 | * This is necessary in case acpi_pm_finish() is not called during a |
192 | * failing transition to a sleep state. | 192 | * failing transition to a sleep state. |
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index c6b298d4c136..c2328aed0836 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
@@ -783,7 +783,7 @@ config PATA_PCMCIA | |||
783 | 783 | ||
784 | config PATA_PLATFORM | 784 | config PATA_PLATFORM |
785 | tristate "Generic platform device PATA support" | 785 | tristate "Generic platform device PATA support" |
786 | depends on EMBEDDED || PPC || HAVE_PATA_PLATFORM | 786 | depends on EXPERT || PPC || HAVE_PATA_PLATFORM |
787 | help | 787 | help |
788 | This option enables support for generic directly connected ATA | 788 | This option enables support for generic directly connected ATA |
789 | devices commonly found on embedded systems. | 789 | devices commonly found on embedded systems. |
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index fd96345bc35c..d57e8d0fb823 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig | |||
@@ -70,7 +70,7 @@ config PREVENT_FIRMWARE_BUILD | |||
70 | If unsure say Y here. | 70 | If unsure say Y here. |
71 | 71 | ||
72 | config FW_LOADER | 72 | config FW_LOADER |
73 | tristate "Userspace firmware loading support" if EMBEDDED | 73 | tristate "Userspace firmware loading support" if EXPERT |
74 | default y | 74 | default y |
75 | ---help--- | 75 | ---help--- |
76 | This option is provided for the case where no in-kernel-tree modules | 76 | This option is provided for the case where no in-kernel-tree modules |
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 0f175a866ef0..b7980a83ce2d 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | menu "Character devices" | 5 | menu "Character devices" |
6 | 6 | ||
7 | config VT | 7 | config VT |
8 | bool "Virtual terminal" if EMBEDDED | 8 | bool "Virtual terminal" if EXPERT |
9 | depends on !S390 | 9 | depends on !S390 |
10 | select INPUT | 10 | select INPUT |
11 | default y | 11 | default y |
@@ -39,13 +39,13 @@ config VT | |||
39 | config CONSOLE_TRANSLATIONS | 39 | config CONSOLE_TRANSLATIONS |
40 | depends on VT | 40 | depends on VT |
41 | default y | 41 | default y |
42 | bool "Enable character translations in console" if EMBEDDED | 42 | bool "Enable character translations in console" if EXPERT |
43 | ---help--- | 43 | ---help--- |
44 | This enables support for font mapping and Unicode translation | 44 | This enables support for font mapping and Unicode translation |
45 | on virtual consoles. | 45 | on virtual consoles. |
46 | 46 | ||
47 | config VT_CONSOLE | 47 | config VT_CONSOLE |
48 | bool "Support for console on virtual terminal" if EMBEDDED | 48 | bool "Support for console on virtual terminal" if EXPERT |
49 | depends on VT | 49 | depends on VT |
50 | default y | 50 | default y |
51 | ---help--- | 51 | ---help--- |
@@ -426,10 +426,10 @@ config SGI_MBCS | |||
426 | If you have an SGI Altix with an attached SABrick | 426 | If you have an SGI Altix with an attached SABrick |
427 | say Y or M here, otherwise say N. | 427 | say Y or M here, otherwise say N. |
428 | 428 | ||
429 | source "drivers/serial/Kconfig" | 429 | source "drivers/tty/serial/Kconfig" |
430 | 430 | ||
431 | config UNIX98_PTYS | 431 | config UNIX98_PTYS |
432 | bool "Unix98 PTY support" if EMBEDDED | 432 | bool "Unix98 PTY support" if EXPERT |
433 | default y | 433 | default y |
434 | ---help--- | 434 | ---help--- |
435 | A pseudo terminal (PTY) is a software device consisting of two | 435 | A pseudo terminal (PTY) is a software device consisting of two |
@@ -495,7 +495,7 @@ config LEGACY_PTY_COUNT | |||
495 | 495 | ||
496 | config TTY_PRINTK | 496 | config TTY_PRINTK |
497 | bool "TTY driver to output user messages via printk" | 497 | bool "TTY driver to output user messages via printk" |
498 | depends on EMBEDDED | 498 | depends on EXPERT |
499 | default n | 499 | default n |
500 | ---help--- | 500 | ---help--- |
501 | If you say Y here, the support for writing user messages (i.e. | 501 | If you say Y here, the support for writing user messages (i.e. |
diff --git a/drivers/char/Makefile b/drivers/char/Makefile index 1e9dffb33778..5bc765d4c3ca 100644 --- a/drivers/char/Makefile +++ b/drivers/char/Makefile | |||
@@ -30,25 +30,12 @@ obj-$(CONFIG_SYNCLINK_GT) += synclink_gt.o | |||
30 | obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o | 30 | obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o |
31 | obj-$(CONFIG_SX) += sx.o generic_serial.o | 31 | obj-$(CONFIG_SX) += sx.o generic_serial.o |
32 | obj-$(CONFIG_RIO) += rio/ generic_serial.o | 32 | obj-$(CONFIG_RIO) += rio/ generic_serial.o |
33 | obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o | ||
34 | obj-$(CONFIG_HVC_ISERIES) += hvc_iseries.o | ||
35 | obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o | ||
36 | obj-$(CONFIG_HVC_TILE) += hvc_tile.o | ||
37 | obj-$(CONFIG_HVC_DCC) += hvc_dcc.o | ||
38 | obj-$(CONFIG_HVC_BEAT) += hvc_beat.o | ||
39 | obj-$(CONFIG_HVC_DRIVER) += hvc_console.o | ||
40 | obj-$(CONFIG_HVC_IRQ) += hvc_irq.o | ||
41 | obj-$(CONFIG_HVC_XEN) += hvc_xen.o | ||
42 | obj-$(CONFIG_HVC_IUCV) += hvc_iucv.o | ||
43 | obj-$(CONFIG_HVC_UDBG) += hvc_udbg.o | ||
44 | obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o | ||
45 | obj-$(CONFIG_RAW_DRIVER) += raw.o | 33 | obj-$(CONFIG_RAW_DRIVER) += raw.o |
46 | obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o | 34 | obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o |
47 | obj-$(CONFIG_MSPEC) += mspec.o | 35 | obj-$(CONFIG_MSPEC) += mspec.o |
48 | obj-$(CONFIG_MMTIMER) += mmtimer.o | 36 | obj-$(CONFIG_MMTIMER) += mmtimer.o |
49 | obj-$(CONFIG_UV_MMTIMER) += uv_mmtimer.o | 37 | obj-$(CONFIG_UV_MMTIMER) += uv_mmtimer.o |
50 | obj-$(CONFIG_VIOTAPE) += viotape.o | 38 | obj-$(CONFIG_VIOTAPE) += viotape.o |
51 | obj-$(CONFIG_HVCS) += hvcs.o | ||
52 | obj-$(CONFIG_IBM_BSR) += bsr.o | 39 | obj-$(CONFIG_IBM_BSR) += bsr.o |
53 | obj-$(CONFIG_SGI_MBCS) += mbcs.o | 40 | obj-$(CONFIG_SGI_MBCS) += mbcs.o |
54 | obj-$(CONFIG_BRIQ_PANEL) += briq_panel.o | 41 | obj-$(CONFIG_BRIQ_PANEL) += briq_panel.o |
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index a8c8d9c19d74..ca8ee8093d6c 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig | |||
@@ -71,7 +71,7 @@ config CPU_FREQ_DEFAULT_GOV_PERFORMANCE | |||
71 | 71 | ||
72 | config CPU_FREQ_DEFAULT_GOV_POWERSAVE | 72 | config CPU_FREQ_DEFAULT_GOV_POWERSAVE |
73 | bool "powersave" | 73 | bool "powersave" |
74 | depends on EMBEDDED | 74 | depends on EXPERT |
75 | select CPU_FREQ_GOV_POWERSAVE | 75 | select CPU_FREQ_GOV_POWERSAVE |
76 | help | 76 | help |
77 | Use the CPUFreq governor 'powersave' as default. This sets | 77 | Use the CPUFreq governor 'powersave' as default. This sets |
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index be0492398ef9..24ff35511e2b 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c | |||
@@ -75,6 +75,8 @@ static size_t config_rom_length = 1 + 4 + 1 + 1; | |||
75 | #define BIB_IRMC ((1) << 31) | 75 | #define BIB_IRMC ((1) << 31) |
76 | #define NODE_CAPABILITIES 0x0c0083c0 /* per IEEE 1394 clause 8.3.2.6.5.2 */ | 76 | #define NODE_CAPABILITIES 0x0c0083c0 /* per IEEE 1394 clause 8.3.2.6.5.2 */ |
77 | 77 | ||
78 | #define CANON_OUI 0x000085 | ||
79 | |||
78 | static void generate_config_rom(struct fw_card *card, __be32 *config_rom) | 80 | static void generate_config_rom(struct fw_card *card, __be32 *config_rom) |
79 | { | 81 | { |
80 | struct fw_descriptor *desc; | 82 | struct fw_descriptor *desc; |
@@ -284,6 +286,7 @@ static void bm_work(struct work_struct *work) | |||
284 | bool root_device_is_running; | 286 | bool root_device_is_running; |
285 | bool root_device_is_cmc; | 287 | bool root_device_is_cmc; |
286 | bool irm_is_1394_1995_only; | 288 | bool irm_is_1394_1995_only; |
289 | bool keep_this_irm; | ||
287 | 290 | ||
288 | spin_lock_irq(&card->lock); | 291 | spin_lock_irq(&card->lock); |
289 | 292 | ||
@@ -305,6 +308,10 @@ static void bm_work(struct work_struct *work) | |||
305 | irm_is_1394_1995_only = irm_device && irm_device->config_rom && | 308 | irm_is_1394_1995_only = irm_device && irm_device->config_rom && |
306 | (irm_device->config_rom[2] & 0x000000f0) == 0; | 309 | (irm_device->config_rom[2] & 0x000000f0) == 0; |
307 | 310 | ||
311 | /* Canon MV5i works unreliably if it is not root node. */ | ||
312 | keep_this_irm = irm_device && irm_device->config_rom && | ||
313 | irm_device->config_rom[3] >> 8 == CANON_OUI; | ||
314 | |||
308 | root_id = root_node->node_id; | 315 | root_id = root_node->node_id; |
309 | irm_id = card->irm_node->node_id; | 316 | irm_id = card->irm_node->node_id; |
310 | local_id = card->local_node->node_id; | 317 | local_id = card->local_node->node_id; |
@@ -333,7 +340,7 @@ static void bm_work(struct work_struct *work) | |||
333 | goto pick_me; | 340 | goto pick_me; |
334 | } | 341 | } |
335 | 342 | ||
336 | if (irm_is_1394_1995_only) { | 343 | if (irm_is_1394_1995_only && !keep_this_irm) { |
337 | new_root_id = local_id; | 344 | new_root_id = local_id; |
338 | fw_notify("%s, making local node (%02x) root.\n", | 345 | fw_notify("%s, making local node (%02x) root.\n", |
339 | "IRM is not 1394a compliant", new_root_id); | 346 | "IRM is not 1394a compliant", new_root_id); |
@@ -382,7 +389,7 @@ static void bm_work(struct work_struct *work) | |||
382 | 389 | ||
383 | spin_lock_irq(&card->lock); | 390 | spin_lock_irq(&card->lock); |
384 | 391 | ||
385 | if (rcode != RCODE_COMPLETE) { | 392 | if (rcode != RCODE_COMPLETE && !keep_this_irm) { |
386 | /* | 393 | /* |
387 | * The lock request failed, maybe the IRM | 394 | * The lock request failed, maybe the IRM |
388 | * isn't really IRM capable after all. Let's | 395 | * isn't really IRM capable after all. Let's |
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index e8b6a13515bd..e710424b59ea 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig | |||
@@ -27,7 +27,7 @@ config EDD_OFF | |||
27 | using the kernel parameter 'edd={on|skipmbr|off}'. | 27 | using the kernel parameter 'edd={on|skipmbr|off}'. |
28 | 28 | ||
29 | config FIRMWARE_MEMMAP | 29 | config FIRMWARE_MEMMAP |
30 | bool "Add firmware-provided memory map to sysfs" if EMBEDDED | 30 | bool "Add firmware-provided memory map to sysfs" if EXPERT |
31 | default X86 | 31 | default X86 |
32 | help | 32 | help |
33 | Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. | 33 | Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. |
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 64828a7db77b..bea966f8ac84 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig | |||
@@ -23,7 +23,7 @@ config DRM_KMS_HELPER | |||
23 | tristate | 23 | tristate |
24 | depends on DRM | 24 | depends on DRM |
25 | select FB | 25 | select FB |
26 | select FRAMEBUFFER_CONSOLE if !EMBEDDED | 26 | select FRAMEBUFFER_CONSOLE if !EXPERT |
27 | help | 27 | help |
28 | FB and CRTC helpers for KMS drivers. | 28 | FB and CRTC helpers for KMS drivers. |
29 | 29 | ||
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 5c4f9b9ecdc0..6977a1ce9d98 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
@@ -1533,11 +1533,11 @@ bool drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper) | |||
1533 | } | 1533 | } |
1534 | EXPORT_SYMBOL(drm_fb_helper_hotplug_event); | 1534 | EXPORT_SYMBOL(drm_fb_helper_hotplug_event); |
1535 | 1535 | ||
1536 | /* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EMBEDDED) | 1536 | /* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT) |
1537 | * but the module doesn't depend on any fb console symbols. At least | 1537 | * but the module doesn't depend on any fb console symbols. At least |
1538 | * attempt to load fbcon to avoid leaving the system without a usable console. | 1538 | * attempt to load fbcon to avoid leaving the system without a usable console. |
1539 | */ | 1539 | */ |
1540 | #if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EMBEDDED) | 1540 | #if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT) |
1541 | static int __init drm_fb_helper_modinit(void) | 1541 | static int __init drm_fb_helper_modinit(void) |
1542 | { | 1542 | { |
1543 | const char *name = "fbcon"; | 1543 | const char *name = "fbcon"; |
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 03e337072517..f6b9baa6a63d 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -928,6 +928,7 @@ static int intel_wrap_ring_buffer(struct intel_ring_buffer *ring) | |||
928 | 928 | ||
929 | int intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n) | 929 | int intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n) |
930 | { | 930 | { |
931 | int reread = 0; | ||
931 | struct drm_device *dev = ring->dev; | 932 | struct drm_device *dev = ring->dev; |
932 | struct drm_i915_private *dev_priv = dev->dev_private; | 933 | struct drm_i915_private *dev_priv = dev->dev_private; |
933 | unsigned long end; | 934 | unsigned long end; |
@@ -940,9 +941,8 @@ int intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n) | |||
940 | * fallback to the slow and accurate path. | 941 | * fallback to the slow and accurate path. |
941 | */ | 942 | */ |
942 | head = intel_read_status_page(ring, 4); | 943 | head = intel_read_status_page(ring, 4); |
943 | if (head < ring->actual_head) | 944 | if (reread) |
944 | head = I915_READ_HEAD(ring); | 945 | head = I915_READ_HEAD(ring); |
945 | ring->actual_head = head; | ||
946 | ring->head = head & HEAD_ADDR; | 946 | ring->head = head & HEAD_ADDR; |
947 | ring->space = ring->head - (ring->tail + 8); | 947 | ring->space = ring->head - (ring->tail + 8); |
948 | if (ring->space < 0) | 948 | if (ring->space < 0) |
@@ -961,6 +961,7 @@ int intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n) | |||
961 | msleep(1); | 961 | msleep(1); |
962 | if (atomic_read(&dev_priv->mm.wedged)) | 962 | if (atomic_read(&dev_priv->mm.wedged)) |
963 | return -EAGAIN; | 963 | return -EAGAIN; |
964 | reread = 1; | ||
964 | } while (!time_after(jiffies, end)); | 965 | } while (!time_after(jiffies, end)); |
965 | trace_i915_ring_wait_end (dev); | 966 | trace_i915_ring_wait_end (dev); |
966 | return -EBUSY; | 967 | return -EBUSY; |
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index be9087e4c9be..5b0abfa881fc 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h | |||
@@ -47,7 +47,6 @@ struct intel_ring_buffer { | |||
47 | struct drm_device *dev; | 47 | struct drm_device *dev; |
48 | struct drm_i915_gem_object *obj; | 48 | struct drm_i915_gem_object *obj; |
49 | 49 | ||
50 | u32 actual_head; | ||
51 | u32 head; | 50 | u32 head; |
52 | u32 tail; | 51 | u32 tail; |
53 | int space; | 52 | int space; |
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig index 21d6c29c2d21..de70959b9ed5 100644 --- a/drivers/gpu/drm/nouveau/Kconfig +++ b/drivers/gpu/drm/nouveau/Kconfig | |||
@@ -8,7 +8,7 @@ config DRM_NOUVEAU | |||
8 | select FB_CFB_COPYAREA | 8 | select FB_CFB_COPYAREA |
9 | select FB_CFB_IMAGEBLIT | 9 | select FB_CFB_IMAGEBLIT |
10 | select FB | 10 | select FB |
11 | select FRAMEBUFFER_CONSOLE if !EMBEDDED | 11 | select FRAMEBUFFER_CONSOLE if !EXPERT |
12 | select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT | 12 | select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT |
13 | select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL && INPUT | 13 | select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL && INPUT |
14 | help | 14 | help |
diff --git a/drivers/gpu/vga/Kconfig b/drivers/gpu/vga/Kconfig index 8d0e31a22027..96c83a9a76bb 100644 --- a/drivers/gpu/vga/Kconfig +++ b/drivers/gpu/vga/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | config VGA_ARB | 1 | config VGA_ARB |
2 | bool "VGA Arbitration" if EMBEDDED | 2 | bool "VGA Arbitration" if EXPERT |
3 | default y | 3 | default y |
4 | depends on PCI | 4 | depends on PCI |
5 | help | 5 | help |
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 24cca2f69dfc..2560f01c1a63 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig | |||
@@ -62,9 +62,9 @@ config HID_3M_PCT | |||
62 | Support for 3M PCT touch screens. | 62 | Support for 3M PCT touch screens. |
63 | 63 | ||
64 | config HID_A4TECH | 64 | config HID_A4TECH |
65 | tristate "A4 tech mice" if EMBEDDED | 65 | tristate "A4 tech mice" if EXPERT |
66 | depends on USB_HID | 66 | depends on USB_HID |
67 | default !EMBEDDED | 67 | default !EXPERT |
68 | ---help--- | 68 | ---help--- |
69 | Support for A4 tech X5 and WOP-35 / Trust 450L mice. | 69 | Support for A4 tech X5 and WOP-35 / Trust 450L mice. |
70 | 70 | ||
@@ -77,9 +77,9 @@ config HID_ACRUX_FF | |||
77 | game controllers. | 77 | game controllers. |
78 | 78 | ||
79 | config HID_APPLE | 79 | config HID_APPLE |
80 | tristate "Apple {i,Power,Mac}Books" if EMBEDDED | 80 | tristate "Apple {i,Power,Mac}Books" if EXPERT |
81 | depends on (USB_HID || BT_HIDP) | 81 | depends on (USB_HID || BT_HIDP) |
82 | default !EMBEDDED | 82 | default !EXPERT |
83 | ---help--- | 83 | ---help--- |
84 | Support for some Apple devices which less or more break | 84 | Support for some Apple devices which less or more break |
85 | HID specification. | 85 | HID specification. |
@@ -88,9 +88,9 @@ config HID_APPLE | |||
88 | MacBooks, MacBook Pros and Apple Aluminum. | 88 | MacBooks, MacBook Pros and Apple Aluminum. |
89 | 89 | ||
90 | config HID_BELKIN | 90 | config HID_BELKIN |
91 | tristate "Belkin Flip KVM and Wireless keyboard" if EMBEDDED | 91 | tristate "Belkin Flip KVM and Wireless keyboard" if EXPERT |
92 | depends on USB_HID | 92 | depends on USB_HID |
93 | default !EMBEDDED | 93 | default !EXPERT |
94 | ---help--- | 94 | ---help--- |
95 | Support for Belkin Flip KVM and Wireless keyboard. | 95 | Support for Belkin Flip KVM and Wireless keyboard. |
96 | 96 | ||
@@ -101,16 +101,16 @@ config HID_CANDO | |||
101 | Support for Cando dual touch panel. | 101 | Support for Cando dual touch panel. |
102 | 102 | ||
103 | config HID_CHERRY | 103 | config HID_CHERRY |
104 | tristate "Cherry Cymotion keyboard" if EMBEDDED | 104 | tristate "Cherry Cymotion keyboard" if EXPERT |
105 | depends on USB_HID | 105 | depends on USB_HID |
106 | default !EMBEDDED | 106 | default !EXPERT |
107 | ---help--- | 107 | ---help--- |
108 | Support for Cherry Cymotion keyboard. | 108 | Support for Cherry Cymotion keyboard. |
109 | 109 | ||
110 | config HID_CHICONY | 110 | config HID_CHICONY |
111 | tristate "Chicony Tactical pad" if EMBEDDED | 111 | tristate "Chicony Tactical pad" if EXPERT |
112 | depends on USB_HID | 112 | depends on USB_HID |
113 | default !EMBEDDED | 113 | default !EXPERT |
114 | ---help--- | 114 | ---help--- |
115 | Support for Chicony Tactical pad. | 115 | Support for Chicony Tactical pad. |
116 | 116 | ||
@@ -130,9 +130,9 @@ config HID_PRODIKEYS | |||
130 | and some additional multimedia keys. | 130 | and some additional multimedia keys. |
131 | 131 | ||
132 | config HID_CYPRESS | 132 | config HID_CYPRESS |
133 | tristate "Cypress mouse and barcode readers" if EMBEDDED | 133 | tristate "Cypress mouse and barcode readers" if EXPERT |
134 | depends on USB_HID | 134 | depends on USB_HID |
135 | default !EMBEDDED | 135 | default !EXPERT |
136 | ---help--- | 136 | ---help--- |
137 | Support for cypress mouse and barcode readers. | 137 | Support for cypress mouse and barcode readers. |
138 | 138 | ||
@@ -174,16 +174,16 @@ config HID_ELECOM | |||
174 | Support for the ELECOM BM084 (bluetooth mouse). | 174 | Support for the ELECOM BM084 (bluetooth mouse). |
175 | 175 | ||
176 | config HID_EZKEY | 176 | config HID_EZKEY |
177 | tristate "Ezkey BTC 8193 keyboard" if EMBEDDED | 177 | tristate "Ezkey BTC 8193 keyboard" if EXPERT |
178 | depends on USB_HID | 178 | depends on USB_HID |
179 | default !EMBEDDED | 179 | default !EXPERT |
180 | ---help--- | 180 | ---help--- |
181 | Support for Ezkey BTC 8193 keyboard. | 181 | Support for Ezkey BTC 8193 keyboard. |
182 | 182 | ||
183 | config HID_KYE | 183 | config HID_KYE |
184 | tristate "Kye/Genius Ergo Mouse" if EMBEDDED | 184 | tristate "Kye/Genius Ergo Mouse" if EXPERT |
185 | depends on USB_HID | 185 | depends on USB_HID |
186 | default !EMBEDDED | 186 | default !EXPERT |
187 | ---help--- | 187 | ---help--- |
188 | Support for Kye/Genius Ergo Mouse. | 188 | Support for Kye/Genius Ergo Mouse. |
189 | 189 | ||
@@ -212,16 +212,16 @@ config HID_TWINHAN | |||
212 | Support for Twinhan IR remote control. | 212 | Support for Twinhan IR remote control. |
213 | 213 | ||
214 | config HID_KENSINGTON | 214 | config HID_KENSINGTON |
215 | tristate "Kensington Slimblade Trackball" if EMBEDDED | 215 | tristate "Kensington Slimblade Trackball" if EXPERT |
216 | depends on USB_HID | 216 | depends on USB_HID |
217 | default !EMBEDDED | 217 | default !EXPERT |
218 | ---help--- | 218 | ---help--- |
219 | Support for Kensington Slimblade Trackball. | 219 | Support for Kensington Slimblade Trackball. |
220 | 220 | ||
221 | config HID_LOGITECH | 221 | config HID_LOGITECH |
222 | tristate "Logitech devices" if EMBEDDED | 222 | tristate "Logitech devices" if EXPERT |
223 | depends on USB_HID | 223 | depends on USB_HID |
224 | default !EMBEDDED | 224 | default !EXPERT |
225 | ---help--- | 225 | ---help--- |
226 | Support for Logitech devices that are not fully compliant with HID standard. | 226 | Support for Logitech devices that are not fully compliant with HID standard. |
227 | 227 | ||
@@ -276,9 +276,9 @@ config HID_MAGICMOUSE | |||
276 | Apple Wireless "Magic" Mouse. | 276 | Apple Wireless "Magic" Mouse. |
277 | 277 | ||
278 | config HID_MICROSOFT | 278 | config HID_MICROSOFT |
279 | tristate "Microsoft non-fully HID-compliant devices" if EMBEDDED | 279 | tristate "Microsoft non-fully HID-compliant devices" if EXPERT |
280 | depends on USB_HID | 280 | depends on USB_HID |
281 | default !EMBEDDED | 281 | default !EXPERT |
282 | ---help--- | 282 | ---help--- |
283 | Support for Microsoft devices that are not fully compliant with HID standard. | 283 | Support for Microsoft devices that are not fully compliant with HID standard. |
284 | 284 | ||
@@ -289,9 +289,9 @@ config HID_MOSART | |||
289 | Support for MosArt dual-touch panels. | 289 | Support for MosArt dual-touch panels. |
290 | 290 | ||
291 | config HID_MONTEREY | 291 | config HID_MONTEREY |
292 | tristate "Monterey Genius KB29E keyboard" if EMBEDDED | 292 | tristate "Monterey Genius KB29E keyboard" if EXPERT |
293 | depends on USB_HID | 293 | depends on USB_HID |
294 | default !EMBEDDED | 294 | default !EXPERT |
295 | ---help--- | 295 | ---help--- |
296 | Support for Monterey Genius KB29E. | 296 | Support for Monterey Genius KB29E. |
297 | 297 | ||
@@ -365,8 +365,8 @@ config HID_PICOLCD | |||
365 | - IR | 365 | - IR |
366 | 366 | ||
367 | config HID_PICOLCD_FB | 367 | config HID_PICOLCD_FB |
368 | bool "Framebuffer support" if EMBEDDED | 368 | bool "Framebuffer support" if EXPERT |
369 | default !EMBEDDED | 369 | default !EXPERT |
370 | depends on HID_PICOLCD | 370 | depends on HID_PICOLCD |
371 | depends on HID_PICOLCD=FB || FB=y | 371 | depends on HID_PICOLCD=FB || FB=y |
372 | select FB_DEFERRED_IO | 372 | select FB_DEFERRED_IO |
@@ -379,8 +379,8 @@ config HID_PICOLCD_FB | |||
379 | frambuffer device. | 379 | frambuffer device. |
380 | 380 | ||
381 | config HID_PICOLCD_BACKLIGHT | 381 | config HID_PICOLCD_BACKLIGHT |
382 | bool "Backlight control" if EMBEDDED | 382 | bool "Backlight control" if EXPERT |
383 | default !EMBEDDED | 383 | default !EXPERT |
384 | depends on HID_PICOLCD | 384 | depends on HID_PICOLCD |
385 | depends on HID_PICOLCD=BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=y | 385 | depends on HID_PICOLCD=BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=y |
386 | ---help--- | 386 | ---help--- |
@@ -388,16 +388,16 @@ config HID_PICOLCD_BACKLIGHT | |||
388 | class. | 388 | class. |
389 | 389 | ||
390 | config HID_PICOLCD_LCD | 390 | config HID_PICOLCD_LCD |
391 | bool "Contrast control" if EMBEDDED | 391 | bool "Contrast control" if EXPERT |
392 | default !EMBEDDED | 392 | default !EXPERT |
393 | depends on HID_PICOLCD | 393 | depends on HID_PICOLCD |
394 | depends on HID_PICOLCD=LCD_CLASS_DEVICE || LCD_CLASS_DEVICE=y | 394 | depends on HID_PICOLCD=LCD_CLASS_DEVICE || LCD_CLASS_DEVICE=y |
395 | ---help--- | 395 | ---help--- |
396 | Provide access to PicoLCD's LCD contrast via lcd class. | 396 | Provide access to PicoLCD's LCD contrast via lcd class. |
397 | 397 | ||
398 | config HID_PICOLCD_LEDS | 398 | config HID_PICOLCD_LEDS |
399 | bool "GPO via leds class" if EMBEDDED | 399 | bool "GPO via leds class" if EXPERT |
400 | default !EMBEDDED | 400 | default !EXPERT |
401 | depends on HID_PICOLCD | 401 | depends on HID_PICOLCD |
402 | depends on HID_PICOLCD=LEDS_CLASS || LEDS_CLASS=y | 402 | depends on HID_PICOLCD=LEDS_CLASS || LEDS_CLASS=y |
403 | ---help--- | 403 | ---help--- |
diff --git a/drivers/hid/usbhid/Kconfig b/drivers/hid/usbhid/Kconfig index 4edb3bef94a6..0f20fd17cf06 100644 --- a/drivers/hid/usbhid/Kconfig +++ b/drivers/hid/usbhid/Kconfig | |||
@@ -45,7 +45,7 @@ config USB_HIDDEV | |||
45 | If unsure, say Y. | 45 | If unsure, say Y. |
46 | 46 | ||
47 | menu "USB HID Boot Protocol drivers" | 47 | menu "USB HID Boot Protocol drivers" |
48 | depends on USB!=n && USB_HID!=y && EMBEDDED | 48 | depends on USB!=n && USB_HID!=y && EXPERT |
49 | 49 | ||
50 | config USB_KBD | 50 | config USB_KBD |
51 | tristate "USB HIDBP Keyboard (simple Boot) support" | 51 | tristate "USB HIDBP Keyboard (simple Boot) support" |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 98ccfeb3f5aa..9827c5e686cb 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -134,7 +134,7 @@ config BLK_DEV_IDECD | |||
134 | module will be called ide-cd. | 134 | module will be called ide-cd. |
135 | 135 | ||
136 | config BLK_DEV_IDECD_VERBOSE_ERRORS | 136 | config BLK_DEV_IDECD_VERBOSE_ERRORS |
137 | bool "Verbose error logging for IDE/ATAPI CDROM driver" if EMBEDDED | 137 | bool "Verbose error logging for IDE/ATAPI CDROM driver" if EXPERT |
138 | depends on BLK_DEV_IDECD | 138 | depends on BLK_DEV_IDECD |
139 | default y | 139 | default y |
140 | help | 140 | help |
diff --git a/drivers/infiniband/hw/mthca/Kconfig b/drivers/infiniband/hw/mthca/Kconfig index 03efc074967e..da314c3fec23 100644 --- a/drivers/infiniband/hw/mthca/Kconfig +++ b/drivers/infiniband/hw/mthca/Kconfig | |||
@@ -7,7 +7,7 @@ config INFINIBAND_MTHCA | |||
7 | ("Tavor") and the MT25208 PCI Express HCA ("Arbel"). | 7 | ("Tavor") and the MT25208 PCI Express HCA ("Arbel"). |
8 | 8 | ||
9 | config INFINIBAND_MTHCA_DEBUG | 9 | config INFINIBAND_MTHCA_DEBUG |
10 | bool "Verbose debugging output" if EMBEDDED | 10 | bool "Verbose debugging output" if EXPERT |
11 | depends on INFINIBAND_MTHCA | 11 | depends on INFINIBAND_MTHCA |
12 | default y | 12 | default y |
13 | ---help--- | 13 | ---help--- |
diff --git a/drivers/infiniband/ulp/ipoib/Kconfig b/drivers/infiniband/ulp/ipoib/Kconfig index 55855eeabae7..cda8eac55fff 100644 --- a/drivers/infiniband/ulp/ipoib/Kconfig +++ b/drivers/infiniband/ulp/ipoib/Kconfig | |||
@@ -24,7 +24,7 @@ config INFINIBAND_IPOIB_CM | |||
24 | unless you limit mtu for these destinations to 2044. | 24 | unless you limit mtu for these destinations to 2044. |
25 | 25 | ||
26 | config INFINIBAND_IPOIB_DEBUG | 26 | config INFINIBAND_IPOIB_DEBUG |
27 | bool "IP-over-InfiniBand debugging" if EMBEDDED | 27 | bool "IP-over-InfiniBand debugging" if EXPERT |
28 | depends on INFINIBAND_IPOIB | 28 | depends on INFINIBAND_IPOIB |
29 | default y | 29 | default y |
30 | ---help--- | 30 | ---help--- |
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig index 07c2cd43109c..1903c0f5b925 100644 --- a/drivers/input/Kconfig +++ b/drivers/input/Kconfig | |||
@@ -6,7 +6,7 @@ menu "Input device support" | |||
6 | depends on !S390 | 6 | depends on !S390 |
7 | 7 | ||
8 | config INPUT | 8 | config INPUT |
9 | tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED | 9 | tristate "Generic input layer (needed for keyboard, mouse, ...)" if EXPERT |
10 | default y | 10 | default y |
11 | help | 11 | help |
12 | Say Y here if you have any input device (mouse, keyboard, tablet, | 12 | Say Y here if you have any input device (mouse, keyboard, tablet, |
@@ -67,7 +67,7 @@ config INPUT_SPARSEKMAP | |||
67 | comment "Userland interfaces" | 67 | comment "Userland interfaces" |
68 | 68 | ||
69 | config INPUT_MOUSEDEV | 69 | config INPUT_MOUSEDEV |
70 | tristate "Mouse interface" if EMBEDDED | 70 | tristate "Mouse interface" if EXPERT |
71 | default y | 71 | default y |
72 | help | 72 | help |
73 | Say Y here if you want your mouse to be accessible as char devices | 73 | Say Y here if you want your mouse to be accessible as char devices |
@@ -150,7 +150,7 @@ config INPUT_EVBUG | |||
150 | module will be called evbug. | 150 | module will be called evbug. |
151 | 151 | ||
152 | config INPUT_APMPOWER | 152 | config INPUT_APMPOWER |
153 | tristate "Input Power Event -> APM Bridge" if EMBEDDED | 153 | tristate "Input Power Event -> APM Bridge" if EXPERT |
154 | depends on INPUT && APM_EMULATION | 154 | depends on INPUT && APM_EMULATION |
155 | help | 155 | help |
156 | Say Y here if you want suspend key events to trigger a user | 156 | Say Y here if you want suspend key events to trigger a user |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 7b3c0b8fa432..417507348bab 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
@@ -2,7 +2,7 @@ | |||
2 | # Input core configuration | 2 | # Input core configuration |
3 | # | 3 | # |
4 | menuconfig INPUT_KEYBOARD | 4 | menuconfig INPUT_KEYBOARD |
5 | bool "Keyboards" if EMBEDDED || !X86 | 5 | bool "Keyboards" if EXPERT || !X86 |
6 | default y | 6 | default y |
7 | help | 7 | help |
8 | Say Y here, and a list of supported keyboards will be displayed. | 8 | Say Y here, and a list of supported keyboards will be displayed. |
@@ -57,7 +57,7 @@ config KEYBOARD_ATARI | |||
57 | module will be called atakbd. | 57 | module will be called atakbd. |
58 | 58 | ||
59 | config KEYBOARD_ATKBD | 59 | config KEYBOARD_ATKBD |
60 | tristate "AT keyboard" if EMBEDDED || !X86 | 60 | tristate "AT keyboard" if EXPERT || !X86 |
61 | default y | 61 | default y |
62 | select SERIO | 62 | select SERIO |
63 | select SERIO_LIBPS2 | 63 | select SERIO_LIBPS2 |
diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig index bf5fd7f6a313..9c1e6ee83531 100644 --- a/drivers/input/mouse/Kconfig +++ b/drivers/input/mouse/Kconfig | |||
@@ -39,7 +39,7 @@ config MOUSE_PS2 | |||
39 | module will be called psmouse. | 39 | module will be called psmouse. |
40 | 40 | ||
41 | config MOUSE_PS2_ALPS | 41 | config MOUSE_PS2_ALPS |
42 | bool "ALPS PS/2 mouse protocol extension" if EMBEDDED | 42 | bool "ALPS PS/2 mouse protocol extension" if EXPERT |
43 | default y | 43 | default y |
44 | depends on MOUSE_PS2 | 44 | depends on MOUSE_PS2 |
45 | help | 45 | help |
@@ -49,7 +49,7 @@ config MOUSE_PS2_ALPS | |||
49 | If unsure, say Y. | 49 | If unsure, say Y. |
50 | 50 | ||
51 | config MOUSE_PS2_LOGIPS2PP | 51 | config MOUSE_PS2_LOGIPS2PP |
52 | bool "Logitech PS/2++ mouse protocol extension" if EMBEDDED | 52 | bool "Logitech PS/2++ mouse protocol extension" if EXPERT |
53 | default y | 53 | default y |
54 | depends on MOUSE_PS2 | 54 | depends on MOUSE_PS2 |
55 | help | 55 | help |
@@ -59,7 +59,7 @@ config MOUSE_PS2_LOGIPS2PP | |||
59 | If unsure, say Y. | 59 | If unsure, say Y. |
60 | 60 | ||
61 | config MOUSE_PS2_SYNAPTICS | 61 | config MOUSE_PS2_SYNAPTICS |
62 | bool "Synaptics PS/2 mouse protocol extension" if EMBEDDED | 62 | bool "Synaptics PS/2 mouse protocol extension" if EXPERT |
63 | default y | 63 | default y |
64 | depends on MOUSE_PS2 | 64 | depends on MOUSE_PS2 |
65 | help | 65 | help |
@@ -69,7 +69,7 @@ config MOUSE_PS2_SYNAPTICS | |||
69 | If unsure, say Y. | 69 | If unsure, say Y. |
70 | 70 | ||
71 | config MOUSE_PS2_LIFEBOOK | 71 | config MOUSE_PS2_LIFEBOOK |
72 | bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED | 72 | bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EXPERT |
73 | default y | 73 | default y |
74 | depends on MOUSE_PS2 && X86 && DMI | 74 | depends on MOUSE_PS2 && X86 && DMI |
75 | help | 75 | help |
@@ -79,7 +79,7 @@ config MOUSE_PS2_LIFEBOOK | |||
79 | If unsure, say Y. | 79 | If unsure, say Y. |
80 | 80 | ||
81 | config MOUSE_PS2_TRACKPOINT | 81 | config MOUSE_PS2_TRACKPOINT |
82 | bool "IBM Trackpoint PS/2 mouse protocol extension" if EMBEDDED | 82 | bool "IBM Trackpoint PS/2 mouse protocol extension" if EXPERT |
83 | default y | 83 | default y |
84 | depends on MOUSE_PS2 | 84 | depends on MOUSE_PS2 |
85 | help | 85 | help |
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index 307eef77a172..55f2c2293ec6 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig | |||
@@ -2,7 +2,7 @@ | |||
2 | # Input core configuration | 2 | # Input core configuration |
3 | # | 3 | # |
4 | config SERIO | 4 | config SERIO |
5 | tristate "Serial I/O support" if EMBEDDED || !X86 | 5 | tristate "Serial I/O support" if EXPERT || !X86 |
6 | default y | 6 | default y |
7 | help | 7 | help |
8 | Say Yes here if you have any input device that uses serial I/O to | 8 | Say Yes here if you have any input device that uses serial I/O to |
@@ -19,7 +19,7 @@ config SERIO | |||
19 | if SERIO | 19 | if SERIO |
20 | 20 | ||
21 | config SERIO_I8042 | 21 | config SERIO_I8042 |
22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 | 22 | tristate "i8042 PC Keyboard controller" if EXPERT || !X86 |
23 | default y | 23 | default y |
24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ | 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ |
25 | (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN | 25 | (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN |
@@ -168,7 +168,7 @@ config SERIO_MACEPS2 | |||
168 | module will be called maceps2. | 168 | module will be called maceps2. |
169 | 169 | ||
170 | config SERIO_LIBPS2 | 170 | config SERIO_LIBPS2 |
171 | tristate "PS/2 driver library" if EMBEDDED | 171 | tristate "PS/2 driver library" if EXPERT |
172 | depends on SERIO_I8042 || SERIO_I8042=n | 172 | depends on SERIO_I8042 || SERIO_I8042=n |
173 | help | 173 | help |
174 | Say Y here if you are using a driver for device connected | 174 | Say Y here if you are using a driver for device connected |
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 0c9f4b158ff0..61834ae282e1 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig | |||
@@ -540,62 +540,62 @@ config TOUCHSCREEN_MC13783 | |||
540 | 540 | ||
541 | config TOUCHSCREEN_USB_EGALAX | 541 | config TOUCHSCREEN_USB_EGALAX |
542 | default y | 542 | default y |
543 | bool "eGalax, eTurboTouch CT-410/510/700 device support" if EMBEDDED | 543 | bool "eGalax, eTurboTouch CT-410/510/700 device support" if EXPERT |
544 | depends on TOUCHSCREEN_USB_COMPOSITE | 544 | depends on TOUCHSCREEN_USB_COMPOSITE |
545 | 545 | ||
546 | config TOUCHSCREEN_USB_PANJIT | 546 | config TOUCHSCREEN_USB_PANJIT |
547 | default y | 547 | default y |
548 | bool "PanJit device support" if EMBEDDED | 548 | bool "PanJit device support" if EXPERT |
549 | depends on TOUCHSCREEN_USB_COMPOSITE | 549 | depends on TOUCHSCREEN_USB_COMPOSITE |
550 | 550 | ||
551 | config TOUCHSCREEN_USB_3M | 551 | config TOUCHSCREEN_USB_3M |
552 | default y | 552 | default y |
553 | bool "3M/Microtouch EX II series device support" if EMBEDDED | 553 | bool "3M/Microtouch EX II series device support" if EXPERT |
554 | depends on TOUCHSCREEN_USB_COMPOSITE | 554 | depends on TOUCHSCREEN_USB_COMPOSITE |
555 | 555 | ||
556 | config TOUCHSCREEN_USB_ITM | 556 | config TOUCHSCREEN_USB_ITM |
557 | default y | 557 | default y |
558 | bool "ITM device support" if EMBEDDED | 558 | bool "ITM device support" if EXPERT |
559 | depends on TOUCHSCREEN_USB_COMPOSITE | 559 | depends on TOUCHSCREEN_USB_COMPOSITE |
560 | 560 | ||
561 | config TOUCHSCREEN_USB_ETURBO | 561 | config TOUCHSCREEN_USB_ETURBO |
562 | default y | 562 | default y |
563 | bool "eTurboTouch (non-eGalax compatible) device support" if EMBEDDED | 563 | bool "eTurboTouch (non-eGalax compatible) device support" if EXPERT |
564 | depends on TOUCHSCREEN_USB_COMPOSITE | 564 | depends on TOUCHSCREEN_USB_COMPOSITE |
565 | 565 | ||
566 | config TOUCHSCREEN_USB_GUNZE | 566 | config TOUCHSCREEN_USB_GUNZE |
567 | default y | 567 | default y |
568 | bool "Gunze AHL61 device support" if EMBEDDED | 568 | bool "Gunze AHL61 device support" if EXPERT |
569 | depends on TOUCHSCREEN_USB_COMPOSITE | 569 | depends on TOUCHSCREEN_USB_COMPOSITE |
570 | 570 | ||
571 | config TOUCHSCREEN_USB_DMC_TSC10 | 571 | config TOUCHSCREEN_USB_DMC_TSC10 |
572 | default y | 572 | default y |
573 | bool "DMC TSC-10/25 device support" if EMBEDDED | 573 | bool "DMC TSC-10/25 device support" if EXPERT |
574 | depends on TOUCHSCREEN_USB_COMPOSITE | 574 | depends on TOUCHSCREEN_USB_COMPOSITE |
575 | 575 | ||
576 | config TOUCHSCREEN_USB_IRTOUCH | 576 | config TOUCHSCREEN_USB_IRTOUCH |
577 | default y | 577 | default y |
578 | bool "IRTOUCHSYSTEMS/UNITOP device support" if EMBEDDED | 578 | bool "IRTOUCHSYSTEMS/UNITOP device support" if EXPERT |
579 | depends on TOUCHSCREEN_USB_COMPOSITE | 579 | depends on TOUCHSCREEN_USB_COMPOSITE |
580 | 580 | ||
581 | config TOUCHSCREEN_USB_IDEALTEK | 581 | config TOUCHSCREEN_USB_IDEALTEK |
582 | default y | 582 | default y |
583 | bool "IdealTEK URTC1000 device support" if EMBEDDED | 583 | bool "IdealTEK URTC1000 device support" if EXPERT |
584 | depends on TOUCHSCREEN_USB_COMPOSITE | 584 | depends on TOUCHSCREEN_USB_COMPOSITE |
585 | 585 | ||
586 | config TOUCHSCREEN_USB_GENERAL_TOUCH | 586 | config TOUCHSCREEN_USB_GENERAL_TOUCH |
587 | default y | 587 | default y |
588 | bool "GeneralTouch Touchscreen device support" if EMBEDDED | 588 | bool "GeneralTouch Touchscreen device support" if EXPERT |
589 | depends on TOUCHSCREEN_USB_COMPOSITE | 589 | depends on TOUCHSCREEN_USB_COMPOSITE |
590 | 590 | ||
591 | config TOUCHSCREEN_USB_GOTOP | 591 | config TOUCHSCREEN_USB_GOTOP |
592 | default y | 592 | default y |
593 | bool "GoTop Super_Q2/GogoPen/PenPower tablet device support" if EMBEDDED | 593 | bool "GoTop Super_Q2/GogoPen/PenPower tablet device support" if EXPERT |
594 | depends on TOUCHSCREEN_USB_COMPOSITE | 594 | depends on TOUCHSCREEN_USB_COMPOSITE |
595 | 595 | ||
596 | config TOUCHSCREEN_USB_JASTEC | 596 | config TOUCHSCREEN_USB_JASTEC |
597 | default y | 597 | default y |
598 | bool "JASTEC/DigiTech DTR-02U USB touch controller device support" if EMBEDDED | 598 | bool "JASTEC/DigiTech DTR-02U USB touch controller device support" if EXPERT |
599 | depends on TOUCHSCREEN_USB_COMPOSITE | 599 | depends on TOUCHSCREEN_USB_COMPOSITE |
600 | 600 | ||
601 | config TOUCHSCREEN_USB_E2I | 601 | config TOUCHSCREEN_USB_E2I |
@@ -605,17 +605,17 @@ config TOUCHSCREEN_USB_E2I | |||
605 | 605 | ||
606 | config TOUCHSCREEN_USB_ZYTRONIC | 606 | config TOUCHSCREEN_USB_ZYTRONIC |
607 | default y | 607 | default y |
608 | bool "Zytronic controller" if EMBEDDED | 608 | bool "Zytronic controller" if EXPERT |
609 | depends on TOUCHSCREEN_USB_COMPOSITE | 609 | depends on TOUCHSCREEN_USB_COMPOSITE |
610 | 610 | ||
611 | config TOUCHSCREEN_USB_ETT_TC45USB | 611 | config TOUCHSCREEN_USB_ETT_TC45USB |
612 | default y | 612 | default y |
613 | bool "ET&T USB series TC4UM/TC5UH touchscreen controller support" if EMBEDDED | 613 | bool "ET&T USB series TC4UM/TC5UH touchscreen controller support" if EXPERT |
614 | depends on TOUCHSCREEN_USB_COMPOSITE | 614 | depends on TOUCHSCREEN_USB_COMPOSITE |
615 | 615 | ||
616 | config TOUCHSCREEN_USB_NEXIO | 616 | config TOUCHSCREEN_USB_NEXIO |
617 | default y | 617 | default y |
618 | bool "NEXIO/iNexio device support" if EMBEDDED | 618 | bool "NEXIO/iNexio device support" if EXPERT |
619 | depends on TOUCHSCREEN_USB_COMPOSITE | 619 | depends on TOUCHSCREEN_USB_COMPOSITE |
620 | 620 | ||
621 | config TOUCHSCREEN_TOUCHIT213 | 621 | config TOUCHSCREEN_TOUCHIT213 |
diff --git a/drivers/leds/ledtrig-gpio.c b/drivers/leds/ledtrig-gpio.c index 991d93be0f44..ecc4bf3f37a9 100644 --- a/drivers/leds/ledtrig-gpio.c +++ b/drivers/leds/ledtrig-gpio.c | |||
@@ -99,7 +99,7 @@ static ssize_t gpio_trig_inverted_show(struct device *dev, | |||
99 | struct led_classdev *led = dev_get_drvdata(dev); | 99 | struct led_classdev *led = dev_get_drvdata(dev); |
100 | struct gpio_trig_data *gpio_data = led->trigger_data; | 100 | struct gpio_trig_data *gpio_data = led->trigger_data; |
101 | 101 | ||
102 | return sprintf(buf, "%s\n", gpio_data->inverted ? "yes" : "no"); | 102 | return sprintf(buf, "%u\n", gpio_data->inverted); |
103 | } | 103 | } |
104 | 104 | ||
105 | static ssize_t gpio_trig_inverted_store(struct device *dev, | 105 | static ssize_t gpio_trig_inverted_store(struct device *dev, |
@@ -107,16 +107,17 @@ static ssize_t gpio_trig_inverted_store(struct device *dev, | |||
107 | { | 107 | { |
108 | struct led_classdev *led = dev_get_drvdata(dev); | 108 | struct led_classdev *led = dev_get_drvdata(dev); |
109 | struct gpio_trig_data *gpio_data = led->trigger_data; | 109 | struct gpio_trig_data *gpio_data = led->trigger_data; |
110 | unsigned inverted; | 110 | unsigned long inverted; |
111 | int ret; | 111 | int ret; |
112 | 112 | ||
113 | ret = sscanf(buf, "%u", &inverted); | 113 | ret = strict_strtoul(buf, 10, &inverted); |
114 | if (ret < 1) { | 114 | if (ret < 0) |
115 | dev_err(dev, "invalid value\n"); | 115 | return ret; |
116 | |||
117 | if (inverted > 1) | ||
116 | return -EINVAL; | 118 | return -EINVAL; |
117 | } | ||
118 | 119 | ||
119 | gpio_data->inverted = !!inverted; | 120 | gpio_data->inverted = inverted; |
120 | 121 | ||
121 | /* After inverting, we need to update the LED. */ | 122 | /* After inverting, we need to update the LED. */ |
122 | schedule_work(&gpio_data->work); | 123 | schedule_work(&gpio_data->work); |
diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c index 04b22128a474..d21578ee95de 100644 --- a/drivers/lguest/page_tables.c +++ b/drivers/lguest/page_tables.c | |||
@@ -1137,7 +1137,7 @@ void free_guest_pagetable(struct lguest *lg) | |||
1137 | */ | 1137 | */ |
1138 | void map_switcher_in_guest(struct lg_cpu *cpu, struct lguest_pages *pages) | 1138 | void map_switcher_in_guest(struct lg_cpu *cpu, struct lguest_pages *pages) |
1139 | { | 1139 | { |
1140 | pte_t *switcher_pte_page = __get_cpu_var(switcher_pte_pages); | 1140 | pte_t *switcher_pte_page = __this_cpu_read(switcher_pte_pages); |
1141 | pte_t regs_pte; | 1141 | pte_t regs_pte; |
1142 | 1142 | ||
1143 | #ifdef CONFIG_X86_PAE | 1143 | #ifdef CONFIG_X86_PAE |
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c index b4eb675a807e..9f1659c3d1f3 100644 --- a/drivers/lguest/x86/core.c +++ b/drivers/lguest/x86/core.c | |||
@@ -90,8 +90,8 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages) | |||
90 | * meanwhile). If that's not the case, we pretend everything in the | 90 | * meanwhile). If that's not the case, we pretend everything in the |
91 | * Guest has changed. | 91 | * Guest has changed. |
92 | */ | 92 | */ |
93 | if (__get_cpu_var(lg_last_cpu) != cpu || cpu->last_pages != pages) { | 93 | if (__this_cpu_read(lg_last_cpu) != cpu || cpu->last_pages != pages) { |
94 | __get_cpu_var(lg_last_cpu) = cpu; | 94 | __this_cpu_write(lg_last_cpu, cpu); |
95 | cpu->last_pages = pages; | 95 | cpu->last_pages = pages; |
96 | cpu->changed = CHANGED_ALL; | 96 | cpu->changed = CHANGED_ALL; |
97 | } | 97 | } |
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c index 2e041fd0a00c..f3a29f264db9 100644 --- a/drivers/macintosh/therm_pm72.c +++ b/drivers/macintosh/therm_pm72.c | |||
@@ -443,7 +443,7 @@ static int fan_read_reg(int reg, unsigned char *buf, int nb) | |||
443 | tries = 0; | 443 | tries = 0; |
444 | for (;;) { | 444 | for (;;) { |
445 | nr = i2c_master_recv(fcu, buf, nb); | 445 | nr = i2c_master_recv(fcu, buf, nb); |
446 | if (nr > 0 || (nr < 0 && nr != ENODEV) || tries >= 100) | 446 | if (nr > 0 || (nr < 0 && nr != -ENODEV) || tries >= 100) |
447 | break; | 447 | break; |
448 | msleep(10); | 448 | msleep(10); |
449 | ++tries; | 449 | ++tries; |
@@ -464,7 +464,7 @@ static int fan_write_reg(int reg, const unsigned char *ptr, int nb) | |||
464 | tries = 0; | 464 | tries = 0; |
465 | for (;;) { | 465 | for (;;) { |
466 | nw = i2c_master_send(fcu, buf, nb); | 466 | nw = i2c_master_send(fcu, buf, nb); |
467 | if (nw > 0 || (nw < 0 && nw != EIO) || tries >= 100) | 467 | if (nw > 0 || (nw < 0 && nw != -EIO) || tries >= 100) |
468 | break; | 468 | break; |
469 | msleep(10); | 469 | msleep(10); |
470 | ++tries; | 470 | ++tries; |
diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig index 78b089526e02..6fc79f15dcbc 100644 --- a/drivers/media/common/tuners/Kconfig +++ b/drivers/media/common/tuners/Kconfig | |||
@@ -34,7 +34,7 @@ config MEDIA_TUNER | |||
34 | config MEDIA_TUNER_CUSTOMISE | 34 | config MEDIA_TUNER_CUSTOMISE |
35 | bool "Customize analog and hybrid tuner modules to build" | 35 | bool "Customize analog and hybrid tuner modules to build" |
36 | depends on MEDIA_TUNER | 36 | depends on MEDIA_TUNER |
37 | default y if EMBEDDED | 37 | default y if EXPERT |
38 | help | 38 | help |
39 | This allows the user to deselect tuner drivers unnecessary | 39 | This allows the user to deselect tuner drivers unnecessary |
40 | for their hardware from the build. Use this option with care | 40 | for their hardware from the build. Use this option with care |
diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig index ef3e43a03199..b8519ba511e5 100644 --- a/drivers/media/dvb/frontends/Kconfig +++ b/drivers/media/dvb/frontends/Kconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | config DVB_FE_CUSTOMISE | 1 | config DVB_FE_CUSTOMISE |
2 | bool "Customise the frontend modules to build" | 2 | bool "Customise the frontend modules to build" |
3 | depends on DVB_CORE | 3 | depends on DVB_CORE |
4 | default y if EMBEDDED | 4 | default y if EXPERT |
5 | help | 5 | help |
6 | This allows the user to select/deselect frontend drivers for their | 6 | This allows the user to select/deselect frontend drivers for their |
7 | hardware from the build. | 7 | hardware from the build. |
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index eb875af05e79..34e7abadceaa 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig | |||
@@ -78,7 +78,7 @@ config VIDEO_FIXED_MINOR_RANGES | |||
78 | 78 | ||
79 | config VIDEO_HELPER_CHIPS_AUTO | 79 | config VIDEO_HELPER_CHIPS_AUTO |
80 | bool "Autoselect pertinent encoders/decoders and other helper chips" | 80 | bool "Autoselect pertinent encoders/decoders and other helper chips" |
81 | default y if !EMBEDDED | 81 | default y if !EXPERT |
82 | ---help--- | 82 | ---help--- |
83 | Most video cards may require additional modules to encode or | 83 | Most video cards may require additional modules to encode or |
84 | decode audio/video standards. This option will autoselect | 84 | decode audio/video standards. This option will autoselect |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 16fe4f9b719b..03823327db25 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -2864,7 +2864,7 @@ config MLX4_CORE | |||
2864 | default n | 2864 | default n |
2865 | 2865 | ||
2866 | config MLX4_DEBUG | 2866 | config MLX4_DEBUG |
2867 | bool "Verbose debugging output" if (MLX4_CORE && EMBEDDED) | 2867 | bool "Verbose debugging output" if (MLX4_CORE && EXPERT) |
2868 | depends on MLX4_CORE | 2868 | depends on MLX4_CORE |
2869 | default y | 2869 | default y |
2870 | ---help--- | 2870 | ---help--- |
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h index a6cd335c9436..8e4183717d91 100644 --- a/drivers/net/bnx2x/bnx2x.h +++ b/drivers/net/bnx2x/bnx2x.h | |||
@@ -22,8 +22,8 @@ | |||
22 | * (you will need to reboot afterwards) */ | 22 | * (you will need to reboot afterwards) */ |
23 | /* #define BNX2X_STOP_ON_ERROR */ | 23 | /* #define BNX2X_STOP_ON_ERROR */ |
24 | 24 | ||
25 | #define DRV_MODULE_VERSION "1.62.00-3" | 25 | #define DRV_MODULE_VERSION "1.62.00-4" |
26 | #define DRV_MODULE_RELDATE "2010/12/21" | 26 | #define DRV_MODULE_RELDATE "2011/01/18" |
27 | #define BNX2X_BC_VER 0x040200 | 27 | #define BNX2X_BC_VER 0x040200 |
28 | 28 | ||
29 | #define BNX2X_MULTI_QUEUE | 29 | #define BNX2X_MULTI_QUEUE |
diff --git a/drivers/net/bnx2x/bnx2x_hsi.h b/drivers/net/bnx2x/bnx2x_hsi.h index 6238d4f63989..548f5631c0dc 100644 --- a/drivers/net/bnx2x/bnx2x_hsi.h +++ b/drivers/net/bnx2x/bnx2x_hsi.h | |||
@@ -352,6 +352,10 @@ struct port_hw_cfg { /* port 0: 0x12c port 1: 0x2bc */ | |||
352 | #define PORT_HW_CFG_LANE_SWAP_CFG_31203120 0x0000d8d8 | 352 | #define PORT_HW_CFG_LANE_SWAP_CFG_31203120 0x0000d8d8 |
353 | /* forced only */ | 353 | /* forced only */ |
354 | #define PORT_HW_CFG_LANE_SWAP_CFG_32103210 0x0000e4e4 | 354 | #define PORT_HW_CFG_LANE_SWAP_CFG_32103210 0x0000e4e4 |
355 | /* Indicate whether to swap the external phy polarity */ | ||
356 | #define PORT_HW_CFG_SWAP_PHY_POLARITY_MASK 0x00010000 | ||
357 | #define PORT_HW_CFG_SWAP_PHY_POLARITY_DISABLED 0x00000000 | ||
358 | #define PORT_HW_CFG_SWAP_PHY_POLARITY_ENABLED 0x00010000 | ||
355 | 359 | ||
356 | u32 external_phy_config; | 360 | u32 external_phy_config; |
357 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_MASK 0xff000000 | 361 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_MASK 0xff000000 |
diff --git a/drivers/net/bnx2x/bnx2x_link.c b/drivers/net/bnx2x/bnx2x_link.c index 43b0de24f391..7160ec51093e 100644 --- a/drivers/net/bnx2x/bnx2x_link.c +++ b/drivers/net/bnx2x/bnx2x_link.c | |||
@@ -1573,7 +1573,7 @@ static void bnx2x_set_aer_mmd_xgxs(struct link_params *params, | |||
1573 | 1573 | ||
1574 | offset = phy->addr + ser_lane; | 1574 | offset = phy->addr + ser_lane; |
1575 | if (CHIP_IS_E2(bp)) | 1575 | if (CHIP_IS_E2(bp)) |
1576 | aer_val = 0x2800 + offset - 1; | 1576 | aer_val = 0x3800 + offset - 1; |
1577 | else | 1577 | else |
1578 | aer_val = 0x3800 + offset; | 1578 | aer_val = 0x3800 + offset; |
1579 | CL45_WR_OVER_CL22(bp, phy, | 1579 | CL45_WR_OVER_CL22(bp, phy, |
@@ -3166,7 +3166,23 @@ u8 bnx2x_set_led(struct link_params *params, | |||
3166 | if (!vars->link_up) | 3166 | if (!vars->link_up) |
3167 | break; | 3167 | break; |
3168 | case LED_MODE_ON: | 3168 | case LED_MODE_ON: |
3169 | if (SINGLE_MEDIA_DIRECT(params)) { | 3169 | if (params->phy[EXT_PHY1].type == |
3170 | PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8727 && | ||
3171 | CHIP_IS_E2(bp) && params->num_phys == 2) { | ||
3172 | /** | ||
3173 | * This is a work-around for E2+8727 Configurations | ||
3174 | */ | ||
3175 | if (mode == LED_MODE_ON || | ||
3176 | speed == SPEED_10000){ | ||
3177 | REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, 0); | ||
3178 | REG_WR(bp, NIG_REG_LED_10G_P0 + port*4, 1); | ||
3179 | |||
3180 | tmp = EMAC_RD(bp, EMAC_REG_EMAC_LED); | ||
3181 | EMAC_WR(bp, EMAC_REG_EMAC_LED, | ||
3182 | (tmp | EMAC_LED_OVERRIDE)); | ||
3183 | return rc; | ||
3184 | } | ||
3185 | } else if (SINGLE_MEDIA_DIRECT(params)) { | ||
3170 | /** | 3186 | /** |
3171 | * This is a work-around for HW issue found when link | 3187 | * This is a work-around for HW issue found when link |
3172 | * is up in CL73 | 3188 | * is up in CL73 |
@@ -3854,11 +3870,14 @@ static void bnx2x_8073_resolve_fc(struct bnx2x_phy *phy, | |||
3854 | pause_result); | 3870 | pause_result); |
3855 | } | 3871 | } |
3856 | } | 3872 | } |
3857 | 3873 | static u8 bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp, | |
3858 | static void bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp, | ||
3859 | struct bnx2x_phy *phy, | 3874 | struct bnx2x_phy *phy, |
3860 | u8 port) | 3875 | u8 port) |
3861 | { | 3876 | { |
3877 | u32 count = 0; | ||
3878 | u16 fw_ver1, fw_msgout; | ||
3879 | u8 rc = 0; | ||
3880 | |||
3862 | /* Boot port from external ROM */ | 3881 | /* Boot port from external ROM */ |
3863 | /* EDC grst */ | 3882 | /* EDC grst */ |
3864 | bnx2x_cl45_write(bp, phy, | 3883 | bnx2x_cl45_write(bp, phy, |
@@ -3888,14 +3907,45 @@ static void bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp, | |||
3888 | MDIO_PMA_REG_GEN_CTRL, | 3907 | MDIO_PMA_REG_GEN_CTRL, |
3889 | MDIO_PMA_REG_GEN_CTRL_ROM_RESET_INTERNAL_MP); | 3908 | MDIO_PMA_REG_GEN_CTRL_ROM_RESET_INTERNAL_MP); |
3890 | 3909 | ||
3891 | /* wait for 120ms for code download via SPI port */ | 3910 | /* Delay 100ms per the PHY specifications */ |
3892 | msleep(120); | 3911 | msleep(100); |
3912 | |||
3913 | /* 8073 sometimes taking longer to download */ | ||
3914 | do { | ||
3915 | count++; | ||
3916 | if (count > 300) { | ||
3917 | DP(NETIF_MSG_LINK, | ||
3918 | "bnx2x_8073_8727_external_rom_boot port %x:" | ||
3919 | "Download failed. fw version = 0x%x\n", | ||
3920 | port, fw_ver1); | ||
3921 | rc = -EINVAL; | ||
3922 | break; | ||
3923 | } | ||
3924 | |||
3925 | bnx2x_cl45_read(bp, phy, | ||
3926 | MDIO_PMA_DEVAD, | ||
3927 | MDIO_PMA_REG_ROM_VER1, &fw_ver1); | ||
3928 | bnx2x_cl45_read(bp, phy, | ||
3929 | MDIO_PMA_DEVAD, | ||
3930 | MDIO_PMA_REG_M8051_MSGOUT_REG, &fw_msgout); | ||
3931 | |||
3932 | msleep(1); | ||
3933 | } while (fw_ver1 == 0 || fw_ver1 == 0x4321 || | ||
3934 | ((fw_msgout & 0xff) != 0x03 && (phy->type == | ||
3935 | PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8073))); | ||
3893 | 3936 | ||
3894 | /* Clear ser_boot_ctl bit */ | 3937 | /* Clear ser_boot_ctl bit */ |
3895 | bnx2x_cl45_write(bp, phy, | 3938 | bnx2x_cl45_write(bp, phy, |
3896 | MDIO_PMA_DEVAD, | 3939 | MDIO_PMA_DEVAD, |
3897 | MDIO_PMA_REG_MISC_CTRL1, 0x0000); | 3940 | MDIO_PMA_REG_MISC_CTRL1, 0x0000); |
3898 | bnx2x_save_bcm_spirom_ver(bp, phy, port); | 3941 | bnx2x_save_bcm_spirom_ver(bp, phy, port); |
3942 | |||
3943 | DP(NETIF_MSG_LINK, | ||
3944 | "bnx2x_8073_8727_external_rom_boot port %x:" | ||
3945 | "Download complete. fw version = 0x%x\n", | ||
3946 | port, fw_ver1); | ||
3947 | |||
3948 | return rc; | ||
3899 | } | 3949 | } |
3900 | 3950 | ||
3901 | static void bnx2x_8073_set_xaui_low_power_mode(struct bnx2x *bp, | 3951 | static void bnx2x_8073_set_xaui_low_power_mode(struct bnx2x *bp, |
@@ -4108,6 +4158,25 @@ static u8 bnx2x_8073_config_init(struct bnx2x_phy *phy, | |||
4108 | 4158 | ||
4109 | DP(NETIF_MSG_LINK, "Before rom RX_ALARM(port1): 0x%x\n", tmp1); | 4159 | DP(NETIF_MSG_LINK, "Before rom RX_ALARM(port1): 0x%x\n", tmp1); |
4110 | 4160 | ||
4161 | /** | ||
4162 | * If this is forced speed, set to KR or KX (all other are not | ||
4163 | * supported) | ||
4164 | */ | ||
4165 | /* Swap polarity if required - Must be done only in non-1G mode */ | ||
4166 | if (params->lane_config & PORT_HW_CFG_SWAP_PHY_POLARITY_ENABLED) { | ||
4167 | /* Configure the 8073 to swap _P and _N of the KR lines */ | ||
4168 | DP(NETIF_MSG_LINK, "Swapping polarity for the 8073\n"); | ||
4169 | /* 10G Rx/Tx and 1G Tx signal polarity swap */ | ||
4170 | bnx2x_cl45_read(bp, phy, | ||
4171 | MDIO_PMA_DEVAD, | ||
4172 | MDIO_PMA_REG_8073_OPT_DIGITAL_CTRL, &val); | ||
4173 | bnx2x_cl45_write(bp, phy, | ||
4174 | MDIO_PMA_DEVAD, | ||
4175 | MDIO_PMA_REG_8073_OPT_DIGITAL_CTRL, | ||
4176 | (val | (3<<9))); | ||
4177 | } | ||
4178 | |||
4179 | |||
4111 | /* Enable CL37 BAM */ | 4180 | /* Enable CL37 BAM */ |
4112 | if (REG_RD(bp, params->shmem_base + | 4181 | if (REG_RD(bp, params->shmem_base + |
4113 | offsetof(struct shmem_region, dev_info. | 4182 | offsetof(struct shmem_region, dev_info. |
@@ -4314,8 +4383,32 @@ static u8 bnx2x_8073_read_status(struct bnx2x_phy *phy, | |||
4314 | } | 4383 | } |
4315 | 4384 | ||
4316 | if (link_up) { | 4385 | if (link_up) { |
4386 | /* Swap polarity if required */ | ||
4387 | if (params->lane_config & | ||
4388 | PORT_HW_CFG_SWAP_PHY_POLARITY_ENABLED) { | ||
4389 | /* Configure the 8073 to swap P and N of the KR lines */ | ||
4390 | bnx2x_cl45_read(bp, phy, | ||
4391 | MDIO_XS_DEVAD, | ||
4392 | MDIO_XS_REG_8073_RX_CTRL_PCIE, &val1); | ||
4393 | /** | ||
4394 | * Set bit 3 to invert Rx in 1G mode and clear this bit | ||
4395 | * when it`s in 10G mode. | ||
4396 | */ | ||
4397 | if (vars->line_speed == SPEED_1000) { | ||
4398 | DP(NETIF_MSG_LINK, "Swapping 1G polarity for" | ||
4399 | "the 8073\n"); | ||
4400 | val1 |= (1<<3); | ||
4401 | } else | ||
4402 | val1 &= ~(1<<3); | ||
4403 | |||
4404 | bnx2x_cl45_write(bp, phy, | ||
4405 | MDIO_XS_DEVAD, | ||
4406 | MDIO_XS_REG_8073_RX_CTRL_PCIE, | ||
4407 | val1); | ||
4408 | } | ||
4317 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); | 4409 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); |
4318 | bnx2x_8073_resolve_fc(phy, params, vars); | 4410 | bnx2x_8073_resolve_fc(phy, params, vars); |
4411 | vars->duplex = DUPLEX_FULL; | ||
4319 | } | 4412 | } |
4320 | return link_up; | 4413 | return link_up; |
4321 | } | 4414 | } |
@@ -5062,6 +5155,7 @@ static u8 bnx2x_8706_8726_read_status(struct bnx2x_phy *phy, | |||
5062 | else | 5155 | else |
5063 | vars->line_speed = SPEED_10000; | 5156 | vars->line_speed = SPEED_10000; |
5064 | bnx2x_ext_phy_resolve_fc(phy, params, vars); | 5157 | bnx2x_ext_phy_resolve_fc(phy, params, vars); |
5158 | vars->duplex = DUPLEX_FULL; | ||
5065 | } | 5159 | } |
5066 | return link_up; | 5160 | return link_up; |
5067 | } | 5161 | } |
@@ -5758,8 +5852,11 @@ static u8 bnx2x_8727_read_status(struct bnx2x_phy *phy, | |||
5758 | DP(NETIF_MSG_LINK, "port %x: External link is down\n", | 5852 | DP(NETIF_MSG_LINK, "port %x: External link is down\n", |
5759 | params->port); | 5853 | params->port); |
5760 | } | 5854 | } |
5761 | if (link_up) | 5855 | if (link_up) { |
5762 | bnx2x_ext_phy_resolve_fc(phy, params, vars); | 5856 | bnx2x_ext_phy_resolve_fc(phy, params, vars); |
5857 | vars->duplex = DUPLEX_FULL; | ||
5858 | DP(NETIF_MSG_LINK, "duplex = 0x%x\n", vars->duplex); | ||
5859 | } | ||
5763 | 5860 | ||
5764 | if ((DUAL_MEDIA(params)) && | 5861 | if ((DUAL_MEDIA(params)) && |
5765 | (phy->req_line_speed == SPEED_1000)) { | 5862 | (phy->req_line_speed == SPEED_1000)) { |
@@ -5875,10 +5972,26 @@ static void bnx2x_848xx_set_led(struct bnx2x *bp, | |||
5875 | MDIO_PMA_REG_8481_LED2_MASK, | 5972 | MDIO_PMA_REG_8481_LED2_MASK, |
5876 | 0x18); | 5973 | 0x18); |
5877 | 5974 | ||
5975 | /* Select activity source by Tx and Rx, as suggested by PHY AE */ | ||
5878 | bnx2x_cl45_write(bp, phy, | 5976 | bnx2x_cl45_write(bp, phy, |
5879 | MDIO_PMA_DEVAD, | 5977 | MDIO_PMA_DEVAD, |
5880 | MDIO_PMA_REG_8481_LED3_MASK, | 5978 | MDIO_PMA_REG_8481_LED3_MASK, |
5881 | 0x0040); | 5979 | 0x0006); |
5980 | |||
5981 | /* Select the closest activity blink rate to that in 10/100/1000 */ | ||
5982 | bnx2x_cl45_write(bp, phy, | ||
5983 | MDIO_PMA_DEVAD, | ||
5984 | MDIO_PMA_REG_8481_LED3_BLINK, | ||
5985 | 0); | ||
5986 | |||
5987 | bnx2x_cl45_read(bp, phy, | ||
5988 | MDIO_PMA_DEVAD, | ||
5989 | MDIO_PMA_REG_84823_CTL_LED_CTL_1, &val); | ||
5990 | val |= MDIO_PMA_REG_84823_LED3_STRETCH_EN; /* stretch_en for LED3*/ | ||
5991 | |||
5992 | bnx2x_cl45_write(bp, phy, | ||
5993 | MDIO_PMA_DEVAD, | ||
5994 | MDIO_PMA_REG_84823_CTL_LED_CTL_1, val); | ||
5882 | 5995 | ||
5883 | /* 'Interrupt Mask' */ | 5996 | /* 'Interrupt Mask' */ |
5884 | bnx2x_cl45_write(bp, phy, | 5997 | bnx2x_cl45_write(bp, phy, |
@@ -6126,6 +6239,7 @@ static u8 bnx2x_848xx_read_status(struct bnx2x_phy *phy, | |||
6126 | /* Check link 10G */ | 6239 | /* Check link 10G */ |
6127 | if (val2 & (1<<11)) { | 6240 | if (val2 & (1<<11)) { |
6128 | vars->line_speed = SPEED_10000; | 6241 | vars->line_speed = SPEED_10000; |
6242 | vars->duplex = DUPLEX_FULL; | ||
6129 | link_up = 1; | 6243 | link_up = 1; |
6130 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); | 6244 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); |
6131 | } else { /* Check Legacy speed link */ | 6245 | } else { /* Check Legacy speed link */ |
@@ -6489,6 +6603,7 @@ static u8 bnx2x_7101_read_status(struct bnx2x_phy *phy, | |||
6489 | MDIO_AN_DEVAD, MDIO_AN_REG_MASTER_STATUS, | 6603 | MDIO_AN_DEVAD, MDIO_AN_REG_MASTER_STATUS, |
6490 | &val2); | 6604 | &val2); |
6491 | vars->line_speed = SPEED_10000; | 6605 | vars->line_speed = SPEED_10000; |
6606 | vars->duplex = DUPLEX_FULL; | ||
6492 | DP(NETIF_MSG_LINK, "SFX7101 AN status 0x%x->Master=%x\n", | 6607 | DP(NETIF_MSG_LINK, "SFX7101 AN status 0x%x->Master=%x\n", |
6493 | val2, (val2 & (1<<14))); | 6608 | val2, (val2 & (1<<14))); |
6494 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); | 6609 | bnx2x_ext_phy_10G_an_resolve(bp, phy, vars); |
@@ -7663,7 +7778,6 @@ static u8 bnx2x_8073_common_init_phy(struct bnx2x *bp, | |||
7663 | 7778 | ||
7664 | /* PART2 - Download firmware to both phys */ | 7779 | /* PART2 - Download firmware to both phys */ |
7665 | for (port = PORT_MAX - 1; port >= PORT_0; port--) { | 7780 | for (port = PORT_MAX - 1; port >= PORT_0; port--) { |
7666 | u16 fw_ver1; | ||
7667 | if (CHIP_IS_E2(bp)) | 7781 | if (CHIP_IS_E2(bp)) |
7668 | port_of_path = 0; | 7782 | port_of_path = 0; |
7669 | else | 7783 | else |
@@ -7671,19 +7785,9 @@ static u8 bnx2x_8073_common_init_phy(struct bnx2x *bp, | |||
7671 | 7785 | ||
7672 | DP(NETIF_MSG_LINK, "Loading spirom for phy address 0x%x\n", | 7786 | DP(NETIF_MSG_LINK, "Loading spirom for phy address 0x%x\n", |
7673 | phy_blk[port]->addr); | 7787 | phy_blk[port]->addr); |
7674 | bnx2x_8073_8727_external_rom_boot(bp, phy_blk[port], | 7788 | if (bnx2x_8073_8727_external_rom_boot(bp, phy_blk[port], |
7675 | port_of_path); | 7789 | port_of_path)) |
7676 | |||
7677 | bnx2x_cl45_read(bp, phy_blk[port], | ||
7678 | MDIO_PMA_DEVAD, | ||
7679 | MDIO_PMA_REG_ROM_VER1, &fw_ver1); | ||
7680 | if (fw_ver1 == 0 || fw_ver1 == 0x4321) { | ||
7681 | DP(NETIF_MSG_LINK, | ||
7682 | "bnx2x_8073_common_init_phy port %x:" | ||
7683 | "Download failed. fw version = 0x%x\n", | ||
7684 | port, fw_ver1); | ||
7685 | return -EINVAL; | 7790 | return -EINVAL; |
7686 | } | ||
7687 | 7791 | ||
7688 | /* Only set bit 10 = 1 (Tx power down) */ | 7792 | /* Only set bit 10 = 1 (Tx power down) */ |
7689 | bnx2x_cl45_read(bp, phy_blk[port], | 7793 | bnx2x_cl45_read(bp, phy_blk[port], |
@@ -7848,27 +7952,17 @@ static u8 bnx2x_8727_common_init_phy(struct bnx2x *bp, | |||
7848 | } | 7952 | } |
7849 | /* PART2 - Download firmware to both phys */ | 7953 | /* PART2 - Download firmware to both phys */ |
7850 | for (port = PORT_MAX - 1; port >= PORT_0; port--) { | 7954 | for (port = PORT_MAX - 1; port >= PORT_0; port--) { |
7851 | u16 fw_ver1; | ||
7852 | if (CHIP_IS_E2(bp)) | 7955 | if (CHIP_IS_E2(bp)) |
7853 | port_of_path = 0; | 7956 | port_of_path = 0; |
7854 | else | 7957 | else |
7855 | port_of_path = port; | 7958 | port_of_path = port; |
7856 | DP(NETIF_MSG_LINK, "Loading spirom for phy address 0x%x\n", | 7959 | DP(NETIF_MSG_LINK, "Loading spirom for phy address 0x%x\n", |
7857 | phy_blk[port]->addr); | 7960 | phy_blk[port]->addr); |
7858 | bnx2x_8073_8727_external_rom_boot(bp, phy_blk[port], | 7961 | if (bnx2x_8073_8727_external_rom_boot(bp, phy_blk[port], |
7859 | port_of_path); | 7962 | port_of_path)) |
7860 | bnx2x_cl45_read(bp, phy_blk[port], | ||
7861 | MDIO_PMA_DEVAD, | ||
7862 | MDIO_PMA_REG_ROM_VER1, &fw_ver1); | ||
7863 | if (fw_ver1 == 0 || fw_ver1 == 0x4321) { | ||
7864 | DP(NETIF_MSG_LINK, | ||
7865 | "bnx2x_8727_common_init_phy port %x:" | ||
7866 | "Download failed. fw version = 0x%x\n", | ||
7867 | port, fw_ver1); | ||
7868 | return -EINVAL; | 7963 | return -EINVAL; |
7869 | } | ||
7870 | } | ||
7871 | 7964 | ||
7965 | } | ||
7872 | return 0; | 7966 | return 0; |
7873 | } | 7967 | } |
7874 | 7968 | ||
@@ -7916,6 +8010,7 @@ u8 bnx2x_common_init_phy(struct bnx2x *bp, u32 shmem_base_path[], | |||
7916 | u32 shmem2_base_path[], u32 chip_id) | 8010 | u32 shmem2_base_path[], u32 chip_id) |
7917 | { | 8011 | { |
7918 | u8 rc = 0; | 8012 | u8 rc = 0; |
8013 | u32 phy_ver; | ||
7919 | u8 phy_index; | 8014 | u8 phy_index; |
7920 | u32 ext_phy_type, ext_phy_config; | 8015 | u32 ext_phy_type, ext_phy_config; |
7921 | DP(NETIF_MSG_LINK, "Begin common phy init\n"); | 8016 | DP(NETIF_MSG_LINK, "Begin common phy init\n"); |
@@ -7923,6 +8018,16 @@ u8 bnx2x_common_init_phy(struct bnx2x *bp, u32 shmem_base_path[], | |||
7923 | if (CHIP_REV_IS_EMUL(bp)) | 8018 | if (CHIP_REV_IS_EMUL(bp)) |
7924 | return 0; | 8019 | return 0; |
7925 | 8020 | ||
8021 | /* Check if common init was already done */ | ||
8022 | phy_ver = REG_RD(bp, shmem_base_path[0] + | ||
8023 | offsetof(struct shmem_region, | ||
8024 | port_mb[PORT_0].ext_phy_fw_version)); | ||
8025 | if (phy_ver) { | ||
8026 | DP(NETIF_MSG_LINK, "Not doing common init; phy ver is 0x%x\n", | ||
8027 | phy_ver); | ||
8028 | return 0; | ||
8029 | } | ||
8030 | |||
7926 | /* Read the ext_phy_type for arbitrary port(0) */ | 8031 | /* Read the ext_phy_type for arbitrary port(0) */ |
7927 | for (phy_index = EXT_PHY1; phy_index < MAX_PHYS; | 8032 | for (phy_index = EXT_PHY1; phy_index < MAX_PHYS; |
7928 | phy_index++) { | 8033 | phy_index++) { |
diff --git a/drivers/net/bnx2x/bnx2x_reg.h b/drivers/net/bnx2x/bnx2x_reg.h index c939683e3d61..e01330bb36c7 100644 --- a/drivers/net/bnx2x/bnx2x_reg.h +++ b/drivers/net/bnx2x/bnx2x_reg.h | |||
@@ -6194,7 +6194,11 @@ Theotherbitsarereservedandshouldbezero*/ | |||
6194 | #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_COPPER 0x0000 | 6194 | #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_COPPER 0x0000 |
6195 | #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_FIBER 0x0100 | 6195 | #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_FIBER 0x0100 |
6196 | #define MDIO_CTL_REG_84823_MEDIA_FIBER_1G 0x1000 | 6196 | #define MDIO_CTL_REG_84823_MEDIA_FIBER_1G 0x1000 |
6197 | #define MDIO_CTL_REG_84823_USER_CTRL_REG 0x4005 | ||
6198 | #define MDIO_CTL_REG_84823_USER_CTRL_CMS 0x0080 | ||
6197 | 6199 | ||
6200 | #define MDIO_PMA_REG_84823_CTL_LED_CTL_1 0xa8e3 | ||
6201 | #define MDIO_PMA_REG_84823_LED3_STRETCH_EN 0x0080 | ||
6198 | 6202 | ||
6199 | #define IGU_FUNC_BASE 0x0400 | 6203 | #define IGU_FUNC_BASE 0x0400 |
6200 | 6204 | ||
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 119aa2000c24..5ed8f9f9419f 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -1920,7 +1920,7 @@ int startup_gfar(struct net_device *ndev) | |||
1920 | if (err) { | 1920 | if (err) { |
1921 | for (j = 0; j < i; j++) | 1921 | for (j = 0; j < i; j++) |
1922 | free_grp_irqs(&priv->gfargrp[j]); | 1922 | free_grp_irqs(&priv->gfargrp[j]); |
1923 | goto irq_fail; | 1923 | goto irq_fail; |
1924 | } | 1924 | } |
1925 | } | 1925 | } |
1926 | 1926 | ||
diff --git a/drivers/net/irda/sh_irda.c b/drivers/net/irda/sh_irda.c index 9e3f4f54281d..4488bd581eca 100644 --- a/drivers/net/irda/sh_irda.c +++ b/drivers/net/irda/sh_irda.c | |||
@@ -635,7 +635,7 @@ static int sh_irda_hard_xmit(struct sk_buff *skb, struct net_device *ndev) | |||
635 | 635 | ||
636 | ret = sh_irda_set_baudrate(self, speed); | 636 | ret = sh_irda_set_baudrate(self, speed); |
637 | if (ret < 0) | 637 | if (ret < 0) |
638 | return ret; | 638 | goto sh_irda_hard_xmit_end; |
639 | 639 | ||
640 | self->tx_buff.len = 0; | 640 | self->tx_buff.len = 0; |
641 | if (skb->len) { | 641 | if (skb->len) { |
@@ -652,11 +652,21 @@ static int sh_irda_hard_xmit(struct sk_buff *skb, struct net_device *ndev) | |||
652 | 652 | ||
653 | sh_irda_write(self, IRTFLR, self->tx_buff.len); | 653 | sh_irda_write(self, IRTFLR, self->tx_buff.len); |
654 | sh_irda_write(self, IRTCTR, ARMOD | TE); | 654 | sh_irda_write(self, IRTCTR, ARMOD | TE); |
655 | } | 655 | } else |
656 | goto sh_irda_hard_xmit_end; | ||
656 | 657 | ||
657 | dev_kfree_skb(skb); | 658 | dev_kfree_skb(skb); |
658 | 659 | ||
659 | return 0; | 660 | return 0; |
661 | |||
662 | sh_irda_hard_xmit_end: | ||
663 | sh_irda_set_baudrate(self, 9600); | ||
664 | netif_wake_queue(self->ndev); | ||
665 | sh_irda_rcv_ctrl(self, 1); | ||
666 | dev_kfree_skb(skb); | ||
667 | |||
668 | return ret; | ||
669 | |||
660 | } | 670 | } |
661 | 671 | ||
662 | static int sh_irda_ioctl(struct net_device *ndev, struct ifreq *ifreq, int cmd) | 672 | static int sh_irda_ioctl(struct net_device *ndev, struct ifreq *ifreq, int cmd) |
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index 84134c766f3a..a41b2cf4d917 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
@@ -1988,12 +1988,11 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, | |||
1988 | } | 1988 | } |
1989 | 1989 | ||
1990 | ndev = alloc_etherdev(sizeof(struct ns83820)); | 1990 | ndev = alloc_etherdev(sizeof(struct ns83820)); |
1991 | dev = PRIV(ndev); | ||
1992 | |||
1993 | err = -ENOMEM; | 1991 | err = -ENOMEM; |
1994 | if (!dev) | 1992 | if (!ndev) |
1995 | goto out; | 1993 | goto out; |
1996 | 1994 | ||
1995 | dev = PRIV(ndev); | ||
1997 | dev->ndev = ndev; | 1996 | dev->ndev = ndev; |
1998 | 1997 | ||
1999 | spin_lock_init(&dev->rx_info.lock); | 1998 | spin_lock_init(&dev->rx_info.lock); |
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index d776c4a8d3c1..04e8ce14a1d0 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c | |||
@@ -54,7 +54,7 @@ | |||
54 | #include <linux/usb/usbnet.h> | 54 | #include <linux/usb/usbnet.h> |
55 | #include <linux/usb/cdc.h> | 55 | #include <linux/usb/cdc.h> |
56 | 56 | ||
57 | #define DRIVER_VERSION "30-Nov-2010" | 57 | #define DRIVER_VERSION "17-Jan-2011" |
58 | 58 | ||
59 | /* CDC NCM subclass 3.2.1 */ | 59 | /* CDC NCM subclass 3.2.1 */ |
60 | #define USB_CDC_NCM_NDP16_LENGTH_MIN 0x10 | 60 | #define USB_CDC_NCM_NDP16_LENGTH_MIN 0x10 |
@@ -868,15 +868,19 @@ static void cdc_ncm_tx_timeout(unsigned long arg) | |||
868 | if (ctx->tx_timer_pending != 0) { | 868 | if (ctx->tx_timer_pending != 0) { |
869 | ctx->tx_timer_pending--; | 869 | ctx->tx_timer_pending--; |
870 | restart = 1; | 870 | restart = 1; |
871 | } else | 871 | } else { |
872 | restart = 0; | 872 | restart = 0; |
873 | } | ||
873 | 874 | ||
874 | spin_unlock(&ctx->mtx); | 875 | spin_unlock(&ctx->mtx); |
875 | 876 | ||
876 | if (restart) | 877 | if (restart) { |
878 | spin_lock(&ctx->mtx); | ||
877 | cdc_ncm_tx_timeout_start(ctx); | 879 | cdc_ncm_tx_timeout_start(ctx); |
878 | else if (ctx->netdev != NULL) | 880 | spin_unlock(&ctx->mtx); |
881 | } else if (ctx->netdev != NULL) { | ||
879 | usbnet_start_xmit(NULL, ctx->netdev); | 882 | usbnet_start_xmit(NULL, ctx->netdev); |
883 | } | ||
880 | } | 884 | } |
881 | 885 | ||
882 | static struct sk_buff * | 886 | static struct sk_buff * |
@@ -900,7 +904,6 @@ cdc_ncm_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags) | |||
900 | skb_out = cdc_ncm_fill_tx_frame(ctx, skb); | 904 | skb_out = cdc_ncm_fill_tx_frame(ctx, skb); |
901 | if (ctx->tx_curr_skb != NULL) | 905 | if (ctx->tx_curr_skb != NULL) |
902 | need_timer = 1; | 906 | need_timer = 1; |
903 | spin_unlock(&ctx->mtx); | ||
904 | 907 | ||
905 | /* Start timer, if there is a remaining skb */ | 908 | /* Start timer, if there is a remaining skb */ |
906 | if (need_timer) | 909 | if (need_timer) |
@@ -908,6 +911,8 @@ cdc_ncm_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags) | |||
908 | 911 | ||
909 | if (skb_out) | 912 | if (skb_out) |
910 | dev->net->stats.tx_packets += ctx->tx_curr_frame_num; | 913 | dev->net->stats.tx_packets += ctx->tx_curr_frame_num; |
914 | |||
915 | spin_unlock(&ctx->mtx); | ||
911 | return skb_out; | 916 | return skb_out; |
912 | 917 | ||
913 | error: | 918 | error: |
@@ -1020,8 +1025,8 @@ static int cdc_ncm_rx_fixup(struct usbnet *dev, struct sk_buff *skb_in) | |||
1020 | if (((offset + temp) > actlen) || | 1025 | if (((offset + temp) > actlen) || |
1021 | (temp > CDC_NCM_MAX_DATAGRAM_SIZE) || (temp < ETH_HLEN)) { | 1026 | (temp > CDC_NCM_MAX_DATAGRAM_SIZE) || (temp < ETH_HLEN)) { |
1022 | pr_debug("invalid frame detected (ignored)" | 1027 | pr_debug("invalid frame detected (ignored)" |
1023 | "offset[%u]=%u, length=%u, skb=%p\n", | 1028 | "offset[%u]=%u, length=%u, skb=%p\n", |
1024 | x, offset, temp, skb_in); | 1029 | x, offset, temp, skb_in); |
1025 | if (!x) | 1030 | if (!x) |
1026 | goto error; | 1031 | goto error; |
1027 | break; | 1032 | break; |
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index d143e8b72b5b..cc14b4a75048 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -48,6 +48,9 @@ static atomic_t devices_found; | |||
48 | static int enable_mq = 1; | 48 | static int enable_mq = 1; |
49 | static int irq_share_mode; | 49 | static int irq_share_mode; |
50 | 50 | ||
51 | static void | ||
52 | vmxnet3_write_mac_addr(struct vmxnet3_adapter *adapter, u8 *mac); | ||
53 | |||
51 | /* | 54 | /* |
52 | * Enable/Disable the given intr | 55 | * Enable/Disable the given intr |
53 | */ | 56 | */ |
@@ -139,9 +142,13 @@ vmxnet3_check_link(struct vmxnet3_adapter *adapter, bool affectTxQueue) | |||
139 | { | 142 | { |
140 | u32 ret; | 143 | u32 ret; |
141 | int i; | 144 | int i; |
145 | unsigned long flags; | ||
142 | 146 | ||
147 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
143 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_LINK); | 148 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_LINK); |
144 | ret = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); | 149 | ret = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); |
150 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
151 | |||
145 | adapter->link_speed = ret >> 16; | 152 | adapter->link_speed = ret >> 16; |
146 | if (ret & 1) { /* Link is up. */ | 153 | if (ret & 1) { /* Link is up. */ |
147 | printk(KERN_INFO "%s: NIC Link is Up %d Mbps\n", | 154 | printk(KERN_INFO "%s: NIC Link is Up %d Mbps\n", |
@@ -183,8 +190,10 @@ vmxnet3_process_events(struct vmxnet3_adapter *adapter) | |||
183 | 190 | ||
184 | /* Check if there is an error on xmit/recv queues */ | 191 | /* Check if there is an error on xmit/recv queues */ |
185 | if (events & (VMXNET3_ECR_TQERR | VMXNET3_ECR_RQERR)) { | 192 | if (events & (VMXNET3_ECR_TQERR | VMXNET3_ECR_RQERR)) { |
193 | spin_lock(&adapter->cmd_lock); | ||
186 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 194 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
187 | VMXNET3_CMD_GET_QUEUE_STATUS); | 195 | VMXNET3_CMD_GET_QUEUE_STATUS); |
196 | spin_unlock(&adapter->cmd_lock); | ||
188 | 197 | ||
189 | for (i = 0; i < adapter->num_tx_queues; i++) | 198 | for (i = 0; i < adapter->num_tx_queues; i++) |
190 | if (adapter->tqd_start[i].status.stopped) | 199 | if (adapter->tqd_start[i].status.stopped) |
@@ -804,30 +813,25 @@ vmxnet3_parse_and_copy_hdr(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, | |||
804 | skb_transport_header(skb))->doff * 4; | 813 | skb_transport_header(skb))->doff * 4; |
805 | ctx->copy_size = ctx->eth_ip_hdr_size + ctx->l4_hdr_size; | 814 | ctx->copy_size = ctx->eth_ip_hdr_size + ctx->l4_hdr_size; |
806 | } else { | 815 | } else { |
807 | unsigned int pull_size; | ||
808 | |||
809 | if (skb->ip_summed == CHECKSUM_PARTIAL) { | 816 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
810 | ctx->eth_ip_hdr_size = skb_checksum_start_offset(skb); | 817 | ctx->eth_ip_hdr_size = skb_checksum_start_offset(skb); |
811 | 818 | ||
812 | if (ctx->ipv4) { | 819 | if (ctx->ipv4) { |
813 | struct iphdr *iph = (struct iphdr *) | 820 | struct iphdr *iph = (struct iphdr *) |
814 | skb_network_header(skb); | 821 | skb_network_header(skb); |
815 | if (iph->protocol == IPPROTO_TCP) { | 822 | if (iph->protocol == IPPROTO_TCP) |
816 | pull_size = ctx->eth_ip_hdr_size + | ||
817 | sizeof(struct tcphdr); | ||
818 | |||
819 | if (unlikely(!pskb_may_pull(skb, | ||
820 | pull_size))) { | ||
821 | goto err; | ||
822 | } | ||
823 | ctx->l4_hdr_size = ((struct tcphdr *) | 823 | ctx->l4_hdr_size = ((struct tcphdr *) |
824 | skb_transport_header(skb))->doff * 4; | 824 | skb_transport_header(skb))->doff * 4; |
825 | } else if (iph->protocol == IPPROTO_UDP) { | 825 | else if (iph->protocol == IPPROTO_UDP) |
826 | /* | ||
827 | * Use tcp header size so that bytes to | ||
828 | * be copied are more than required by | ||
829 | * the device. | ||
830 | */ | ||
826 | ctx->l4_hdr_size = | 831 | ctx->l4_hdr_size = |
827 | sizeof(struct udphdr); | 832 | sizeof(struct tcphdr); |
828 | } else { | 833 | else |
829 | ctx->l4_hdr_size = 0; | 834 | ctx->l4_hdr_size = 0; |
830 | } | ||
831 | } else { | 835 | } else { |
832 | /* for simplicity, don't copy L4 headers */ | 836 | /* for simplicity, don't copy L4 headers */ |
833 | ctx->l4_hdr_size = 0; | 837 | ctx->l4_hdr_size = 0; |
@@ -1859,18 +1863,14 @@ vmxnet3_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) | |||
1859 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1863 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1860 | struct Vmxnet3_DriverShared *shared = adapter->shared; | 1864 | struct Vmxnet3_DriverShared *shared = adapter->shared; |
1861 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; | 1865 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; |
1866 | unsigned long flags; | ||
1862 | 1867 | ||
1863 | if (grp) { | 1868 | if (grp) { |
1864 | /* add vlan rx stripping. */ | 1869 | /* add vlan rx stripping. */ |
1865 | if (adapter->netdev->features & NETIF_F_HW_VLAN_RX) { | 1870 | if (adapter->netdev->features & NETIF_F_HW_VLAN_RX) { |
1866 | int i; | 1871 | int i; |
1867 | struct Vmxnet3_DSDevRead *devRead = &shared->devRead; | ||
1868 | adapter->vlan_grp = grp; | 1872 | adapter->vlan_grp = grp; |
1869 | 1873 | ||
1870 | /* update FEATURES to device */ | ||
1871 | devRead->misc.uptFeatures |= UPT1_F_RXVLAN; | ||
1872 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | ||
1873 | VMXNET3_CMD_UPDATE_FEATURE); | ||
1874 | /* | 1874 | /* |
1875 | * Clear entire vfTable; then enable untagged pkts. | 1875 | * Clear entire vfTable; then enable untagged pkts. |
1876 | * Note: setting one entry in vfTable to non-zero turns | 1876 | * Note: setting one entry in vfTable to non-zero turns |
@@ -1880,8 +1880,10 @@ vmxnet3_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) | |||
1880 | vfTable[i] = 0; | 1880 | vfTable[i] = 0; |
1881 | 1881 | ||
1882 | VMXNET3_SET_VFTABLE_ENTRY(vfTable, 0); | 1882 | VMXNET3_SET_VFTABLE_ENTRY(vfTable, 0); |
1883 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
1883 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 1884 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
1884 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); | 1885 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); |
1886 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
1885 | } else { | 1887 | } else { |
1886 | printk(KERN_ERR "%s: vlan_rx_register when device has " | 1888 | printk(KERN_ERR "%s: vlan_rx_register when device has " |
1887 | "no NETIF_F_HW_VLAN_RX\n", netdev->name); | 1889 | "no NETIF_F_HW_VLAN_RX\n", netdev->name); |
@@ -1900,13 +1902,10 @@ vmxnet3_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) | |||
1900 | */ | 1902 | */ |
1901 | vfTable[i] = 0; | 1903 | vfTable[i] = 0; |
1902 | } | 1904 | } |
1905 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
1903 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 1906 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
1904 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); | 1907 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); |
1905 | 1908 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | |
1906 | /* update FEATURES to device */ | ||
1907 | devRead->misc.uptFeatures &= ~UPT1_F_RXVLAN; | ||
1908 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | ||
1909 | VMXNET3_CMD_UPDATE_FEATURE); | ||
1910 | } | 1909 | } |
1911 | } | 1910 | } |
1912 | } | 1911 | } |
@@ -1939,10 +1938,13 @@ vmxnet3_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
1939 | { | 1938 | { |
1940 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1939 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1941 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; | 1940 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; |
1941 | unsigned long flags; | ||
1942 | 1942 | ||
1943 | VMXNET3_SET_VFTABLE_ENTRY(vfTable, vid); | 1943 | VMXNET3_SET_VFTABLE_ENTRY(vfTable, vid); |
1944 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
1944 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 1945 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
1945 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); | 1946 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); |
1947 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
1946 | } | 1948 | } |
1947 | 1949 | ||
1948 | 1950 | ||
@@ -1951,10 +1953,13 @@ vmxnet3_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
1951 | { | 1953 | { |
1952 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1954 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1953 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; | 1955 | u32 *vfTable = adapter->shared->devRead.rxFilterConf.vfTable; |
1956 | unsigned long flags; | ||
1954 | 1957 | ||
1955 | VMXNET3_CLEAR_VFTABLE_ENTRY(vfTable, vid); | 1958 | VMXNET3_CLEAR_VFTABLE_ENTRY(vfTable, vid); |
1959 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
1956 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 1960 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
1957 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); | 1961 | VMXNET3_CMD_UPDATE_VLAN_FILTERS); |
1962 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
1958 | } | 1963 | } |
1959 | 1964 | ||
1960 | 1965 | ||
@@ -1985,6 +1990,7 @@ static void | |||
1985 | vmxnet3_set_mc(struct net_device *netdev) | 1990 | vmxnet3_set_mc(struct net_device *netdev) |
1986 | { | 1991 | { |
1987 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1992 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1993 | unsigned long flags; | ||
1988 | struct Vmxnet3_RxFilterConf *rxConf = | 1994 | struct Vmxnet3_RxFilterConf *rxConf = |
1989 | &adapter->shared->devRead.rxFilterConf; | 1995 | &adapter->shared->devRead.rxFilterConf; |
1990 | u8 *new_table = NULL; | 1996 | u8 *new_table = NULL; |
@@ -2020,6 +2026,7 @@ vmxnet3_set_mc(struct net_device *netdev) | |||
2020 | rxConf->mfTablePA = 0; | 2026 | rxConf->mfTablePA = 0; |
2021 | } | 2027 | } |
2022 | 2028 | ||
2029 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
2023 | if (new_mode != rxConf->rxMode) { | 2030 | if (new_mode != rxConf->rxMode) { |
2024 | rxConf->rxMode = cpu_to_le32(new_mode); | 2031 | rxConf->rxMode = cpu_to_le32(new_mode); |
2025 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 2032 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
@@ -2028,6 +2035,7 @@ vmxnet3_set_mc(struct net_device *netdev) | |||
2028 | 2035 | ||
2029 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 2036 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
2030 | VMXNET3_CMD_UPDATE_MAC_FILTERS); | 2037 | VMXNET3_CMD_UPDATE_MAC_FILTERS); |
2038 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
2031 | 2039 | ||
2032 | kfree(new_table); | 2040 | kfree(new_table); |
2033 | } | 2041 | } |
@@ -2080,10 +2088,8 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
2080 | devRead->misc.uptFeatures |= UPT1_F_LRO; | 2088 | devRead->misc.uptFeatures |= UPT1_F_LRO; |
2081 | devRead->misc.maxNumRxSG = cpu_to_le16(1 + MAX_SKB_FRAGS); | 2089 | devRead->misc.maxNumRxSG = cpu_to_le16(1 + MAX_SKB_FRAGS); |
2082 | } | 2090 | } |
2083 | if ((adapter->netdev->features & NETIF_F_HW_VLAN_RX) && | 2091 | if (adapter->netdev->features & NETIF_F_HW_VLAN_RX) |
2084 | adapter->vlan_grp) { | ||
2085 | devRead->misc.uptFeatures |= UPT1_F_RXVLAN; | 2092 | devRead->misc.uptFeatures |= UPT1_F_RXVLAN; |
2086 | } | ||
2087 | 2093 | ||
2088 | devRead->misc.mtu = cpu_to_le32(adapter->netdev->mtu); | 2094 | devRead->misc.mtu = cpu_to_le32(adapter->netdev->mtu); |
2089 | devRead->misc.queueDescPA = cpu_to_le64(adapter->queue_desc_pa); | 2095 | devRead->misc.queueDescPA = cpu_to_le64(adapter->queue_desc_pa); |
@@ -2168,6 +2174,8 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
2168 | /* rx filter settings */ | 2174 | /* rx filter settings */ |
2169 | devRead->rxFilterConf.rxMode = 0; | 2175 | devRead->rxFilterConf.rxMode = 0; |
2170 | vmxnet3_restore_vlan(adapter); | 2176 | vmxnet3_restore_vlan(adapter); |
2177 | vmxnet3_write_mac_addr(adapter, adapter->netdev->dev_addr); | ||
2178 | |||
2171 | /* the rest are already zeroed */ | 2179 | /* the rest are already zeroed */ |
2172 | } | 2180 | } |
2173 | 2181 | ||
@@ -2177,6 +2185,7 @@ vmxnet3_activate_dev(struct vmxnet3_adapter *adapter) | |||
2177 | { | 2185 | { |
2178 | int err, i; | 2186 | int err, i; |
2179 | u32 ret; | 2187 | u32 ret; |
2188 | unsigned long flags; | ||
2180 | 2189 | ||
2181 | dev_dbg(&adapter->netdev->dev, "%s: skb_buf_size %d, rx_buf_per_pkt %d," | 2190 | dev_dbg(&adapter->netdev->dev, "%s: skb_buf_size %d, rx_buf_per_pkt %d," |
2182 | " ring sizes %u %u %u\n", adapter->netdev->name, | 2191 | " ring sizes %u %u %u\n", adapter->netdev->name, |
@@ -2206,9 +2215,11 @@ vmxnet3_activate_dev(struct vmxnet3_adapter *adapter) | |||
2206 | adapter->shared_pa)); | 2215 | adapter->shared_pa)); |
2207 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_DSAH, VMXNET3_GET_ADDR_HI( | 2216 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_DSAH, VMXNET3_GET_ADDR_HI( |
2208 | adapter->shared_pa)); | 2217 | adapter->shared_pa)); |
2218 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
2209 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 2219 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
2210 | VMXNET3_CMD_ACTIVATE_DEV); | 2220 | VMXNET3_CMD_ACTIVATE_DEV); |
2211 | ret = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); | 2221 | ret = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); |
2222 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
2212 | 2223 | ||
2213 | if (ret != 0) { | 2224 | if (ret != 0) { |
2214 | printk(KERN_ERR "Failed to activate dev %s: error %u\n", | 2225 | printk(KERN_ERR "Failed to activate dev %s: error %u\n", |
@@ -2255,7 +2266,10 @@ rq_err: | |||
2255 | void | 2266 | void |
2256 | vmxnet3_reset_dev(struct vmxnet3_adapter *adapter) | 2267 | vmxnet3_reset_dev(struct vmxnet3_adapter *adapter) |
2257 | { | 2268 | { |
2269 | unsigned long flags; | ||
2270 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
2258 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_RESET_DEV); | 2271 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_RESET_DEV); |
2272 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
2259 | } | 2273 | } |
2260 | 2274 | ||
2261 | 2275 | ||
@@ -2263,12 +2277,15 @@ int | |||
2263 | vmxnet3_quiesce_dev(struct vmxnet3_adapter *adapter) | 2277 | vmxnet3_quiesce_dev(struct vmxnet3_adapter *adapter) |
2264 | { | 2278 | { |
2265 | int i; | 2279 | int i; |
2280 | unsigned long flags; | ||
2266 | if (test_and_set_bit(VMXNET3_STATE_BIT_QUIESCED, &adapter->state)) | 2281 | if (test_and_set_bit(VMXNET3_STATE_BIT_QUIESCED, &adapter->state)) |
2267 | return 0; | 2282 | return 0; |
2268 | 2283 | ||
2269 | 2284 | ||
2285 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
2270 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 2286 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
2271 | VMXNET3_CMD_QUIESCE_DEV); | 2287 | VMXNET3_CMD_QUIESCE_DEV); |
2288 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
2272 | vmxnet3_disable_all_intrs(adapter); | 2289 | vmxnet3_disable_all_intrs(adapter); |
2273 | 2290 | ||
2274 | for (i = 0; i < adapter->num_rx_queues; i++) | 2291 | for (i = 0; i < adapter->num_rx_queues; i++) |
@@ -2426,7 +2443,7 @@ vmxnet3_adjust_rx_ring_size(struct vmxnet3_adapter *adapter) | |||
2426 | sz = adapter->rx_buf_per_pkt * VMXNET3_RING_SIZE_ALIGN; | 2443 | sz = adapter->rx_buf_per_pkt * VMXNET3_RING_SIZE_ALIGN; |
2427 | ring0_size = adapter->rx_queue[0].rx_ring[0].size; | 2444 | ring0_size = adapter->rx_queue[0].rx_ring[0].size; |
2428 | ring0_size = (ring0_size + sz - 1) / sz * sz; | 2445 | ring0_size = (ring0_size + sz - 1) / sz * sz; |
2429 | ring0_size = min_t(u32, rq->rx_ring[0].size, VMXNET3_RX_RING_MAX_SIZE / | 2446 | ring0_size = min_t(u32, ring0_size, VMXNET3_RX_RING_MAX_SIZE / |
2430 | sz * sz); | 2447 | sz * sz); |
2431 | ring1_size = adapter->rx_queue[0].rx_ring[1].size; | 2448 | ring1_size = adapter->rx_queue[0].rx_ring[1].size; |
2432 | comp_size = ring0_size + ring1_size; | 2449 | comp_size = ring0_size + ring1_size; |
@@ -2695,7 +2712,7 @@ vmxnet3_acquire_msix_vectors(struct vmxnet3_adapter *adapter, | |||
2695 | break; | 2712 | break; |
2696 | } else { | 2713 | } else { |
2697 | /* If fails to enable required number of MSI-x vectors | 2714 | /* If fails to enable required number of MSI-x vectors |
2698 | * try enabling 3 of them. One each for rx, tx and event | 2715 | * try enabling minimum number of vectors required. |
2699 | */ | 2716 | */ |
2700 | vectors = vector_threshold; | 2717 | vectors = vector_threshold; |
2701 | printk(KERN_ERR "Failed to enable %d MSI-X for %s, try" | 2718 | printk(KERN_ERR "Failed to enable %d MSI-X for %s, try" |
@@ -2718,9 +2735,11 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2718 | u32 cfg; | 2735 | u32 cfg; |
2719 | 2736 | ||
2720 | /* intr settings */ | 2737 | /* intr settings */ |
2738 | spin_lock(&adapter->cmd_lock); | ||
2721 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 2739 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
2722 | VMXNET3_CMD_GET_CONF_INTR); | 2740 | VMXNET3_CMD_GET_CONF_INTR); |
2723 | cfg = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); | 2741 | cfg = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); |
2742 | spin_unlock(&adapter->cmd_lock); | ||
2724 | adapter->intr.type = cfg & 0x3; | 2743 | adapter->intr.type = cfg & 0x3; |
2725 | adapter->intr.mask_mode = (cfg >> 2) & 0x3; | 2744 | adapter->intr.mask_mode = (cfg >> 2) & 0x3; |
2726 | 2745 | ||
@@ -2755,7 +2774,7 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2755 | */ | 2774 | */ |
2756 | if (err == VMXNET3_LINUX_MIN_MSIX_VECT) { | 2775 | if (err == VMXNET3_LINUX_MIN_MSIX_VECT) { |
2757 | if (adapter->share_intr != VMXNET3_INTR_BUDDYSHARE | 2776 | if (adapter->share_intr != VMXNET3_INTR_BUDDYSHARE |
2758 | || adapter->num_rx_queues != 2) { | 2777 | || adapter->num_rx_queues != 1) { |
2759 | adapter->share_intr = VMXNET3_INTR_TXSHARE; | 2778 | adapter->share_intr = VMXNET3_INTR_TXSHARE; |
2760 | printk(KERN_ERR "Number of rx queues : 1\n"); | 2779 | printk(KERN_ERR "Number of rx queues : 1\n"); |
2761 | adapter->num_rx_queues = 1; | 2780 | adapter->num_rx_queues = 1; |
@@ -2905,6 +2924,7 @@ vmxnet3_probe_device(struct pci_dev *pdev, | |||
2905 | adapter->netdev = netdev; | 2924 | adapter->netdev = netdev; |
2906 | adapter->pdev = pdev; | 2925 | adapter->pdev = pdev; |
2907 | 2926 | ||
2927 | spin_lock_init(&adapter->cmd_lock); | ||
2908 | adapter->shared = pci_alloc_consistent(adapter->pdev, | 2928 | adapter->shared = pci_alloc_consistent(adapter->pdev, |
2909 | sizeof(struct Vmxnet3_DriverShared), | 2929 | sizeof(struct Vmxnet3_DriverShared), |
2910 | &adapter->shared_pa); | 2930 | &adapter->shared_pa); |
@@ -3108,11 +3128,15 @@ vmxnet3_suspend(struct device *device) | |||
3108 | u8 *arpreq; | 3128 | u8 *arpreq; |
3109 | struct in_device *in_dev; | 3129 | struct in_device *in_dev; |
3110 | struct in_ifaddr *ifa; | 3130 | struct in_ifaddr *ifa; |
3131 | unsigned long flags; | ||
3111 | int i = 0; | 3132 | int i = 0; |
3112 | 3133 | ||
3113 | if (!netif_running(netdev)) | 3134 | if (!netif_running(netdev)) |
3114 | return 0; | 3135 | return 0; |
3115 | 3136 | ||
3137 | for (i = 0; i < adapter->num_rx_queues; i++) | ||
3138 | napi_disable(&adapter->rx_queue[i].napi); | ||
3139 | |||
3116 | vmxnet3_disable_all_intrs(adapter); | 3140 | vmxnet3_disable_all_intrs(adapter); |
3117 | vmxnet3_free_irqs(adapter); | 3141 | vmxnet3_free_irqs(adapter); |
3118 | vmxnet3_free_intr_resources(adapter); | 3142 | vmxnet3_free_intr_resources(adapter); |
@@ -3188,8 +3212,10 @@ skip_arp: | |||
3188 | adapter->shared->devRead.pmConfDesc.confPA = cpu_to_le64(virt_to_phys( | 3212 | adapter->shared->devRead.pmConfDesc.confPA = cpu_to_le64(virt_to_phys( |
3189 | pmConf)); | 3213 | pmConf)); |
3190 | 3214 | ||
3215 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
3191 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 3216 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
3192 | VMXNET3_CMD_UPDATE_PMCFG); | 3217 | VMXNET3_CMD_UPDATE_PMCFG); |
3218 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
3193 | 3219 | ||
3194 | pci_save_state(pdev); | 3220 | pci_save_state(pdev); |
3195 | pci_enable_wake(pdev, pci_choose_state(pdev, PMSG_SUSPEND), | 3221 | pci_enable_wake(pdev, pci_choose_state(pdev, PMSG_SUSPEND), |
@@ -3204,7 +3230,8 @@ skip_arp: | |||
3204 | static int | 3230 | static int |
3205 | vmxnet3_resume(struct device *device) | 3231 | vmxnet3_resume(struct device *device) |
3206 | { | 3232 | { |
3207 | int err; | 3233 | int err, i = 0; |
3234 | unsigned long flags; | ||
3208 | struct pci_dev *pdev = to_pci_dev(device); | 3235 | struct pci_dev *pdev = to_pci_dev(device); |
3209 | struct net_device *netdev = pci_get_drvdata(pdev); | 3236 | struct net_device *netdev = pci_get_drvdata(pdev); |
3210 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 3237 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
@@ -3232,10 +3259,14 @@ vmxnet3_resume(struct device *device) | |||
3232 | 3259 | ||
3233 | pci_enable_wake(pdev, PCI_D0, 0); | 3260 | pci_enable_wake(pdev, PCI_D0, 0); |
3234 | 3261 | ||
3262 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
3235 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 3263 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
3236 | VMXNET3_CMD_UPDATE_PMCFG); | 3264 | VMXNET3_CMD_UPDATE_PMCFG); |
3265 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
3237 | vmxnet3_alloc_intr_resources(adapter); | 3266 | vmxnet3_alloc_intr_resources(adapter); |
3238 | vmxnet3_request_irqs(adapter); | 3267 | vmxnet3_request_irqs(adapter); |
3268 | for (i = 0; i < adapter->num_rx_queues; i++) | ||
3269 | napi_enable(&adapter->rx_queue[i].napi); | ||
3239 | vmxnet3_enable_all_intrs(adapter); | 3270 | vmxnet3_enable_all_intrs(adapter); |
3240 | 3271 | ||
3241 | return 0; | 3272 | return 0; |
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index 8e17fc8a7fe7..81254be85b92 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c | |||
@@ -45,6 +45,7 @@ static int | |||
45 | vmxnet3_set_rx_csum(struct net_device *netdev, u32 val) | 45 | vmxnet3_set_rx_csum(struct net_device *netdev, u32 val) |
46 | { | 46 | { |
47 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 47 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
48 | unsigned long flags; | ||
48 | 49 | ||
49 | if (adapter->rxcsum != val) { | 50 | if (adapter->rxcsum != val) { |
50 | adapter->rxcsum = val; | 51 | adapter->rxcsum = val; |
@@ -56,8 +57,10 @@ vmxnet3_set_rx_csum(struct net_device *netdev, u32 val) | |||
56 | adapter->shared->devRead.misc.uptFeatures &= | 57 | adapter->shared->devRead.misc.uptFeatures &= |
57 | ~UPT1_F_RXCSUM; | 58 | ~UPT1_F_RXCSUM; |
58 | 59 | ||
60 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
59 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 61 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
60 | VMXNET3_CMD_UPDATE_FEATURE); | 62 | VMXNET3_CMD_UPDATE_FEATURE); |
63 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
61 | } | 64 | } |
62 | } | 65 | } |
63 | return 0; | 66 | return 0; |
@@ -68,76 +71,78 @@ vmxnet3_set_rx_csum(struct net_device *netdev, u32 val) | |||
68 | static const struct vmxnet3_stat_desc | 71 | static const struct vmxnet3_stat_desc |
69 | vmxnet3_tq_dev_stats[] = { | 72 | vmxnet3_tq_dev_stats[] = { |
70 | /* description, offset */ | 73 | /* description, offset */ |
71 | { "TSO pkts tx", offsetof(struct UPT1_TxStats, TSOPktsTxOK) }, | 74 | { "Tx Queue#", 0 }, |
72 | { "TSO bytes tx", offsetof(struct UPT1_TxStats, TSOBytesTxOK) }, | 75 | { " TSO pkts tx", offsetof(struct UPT1_TxStats, TSOPktsTxOK) }, |
73 | { "ucast pkts tx", offsetof(struct UPT1_TxStats, ucastPktsTxOK) }, | 76 | { " TSO bytes tx", offsetof(struct UPT1_TxStats, TSOBytesTxOK) }, |
74 | { "ucast bytes tx", offsetof(struct UPT1_TxStats, ucastBytesTxOK) }, | 77 | { " ucast pkts tx", offsetof(struct UPT1_TxStats, ucastPktsTxOK) }, |
75 | { "mcast pkts tx", offsetof(struct UPT1_TxStats, mcastPktsTxOK) }, | 78 | { " ucast bytes tx", offsetof(struct UPT1_TxStats, ucastBytesTxOK) }, |
76 | { "mcast bytes tx", offsetof(struct UPT1_TxStats, mcastBytesTxOK) }, | 79 | { " mcast pkts tx", offsetof(struct UPT1_TxStats, mcastPktsTxOK) }, |
77 | { "bcast pkts tx", offsetof(struct UPT1_TxStats, bcastPktsTxOK) }, | 80 | { " mcast bytes tx", offsetof(struct UPT1_TxStats, mcastBytesTxOK) }, |
78 | { "bcast bytes tx", offsetof(struct UPT1_TxStats, bcastBytesTxOK) }, | 81 | { " bcast pkts tx", offsetof(struct UPT1_TxStats, bcastPktsTxOK) }, |
79 | { "pkts tx err", offsetof(struct UPT1_TxStats, pktsTxError) }, | 82 | { " bcast bytes tx", offsetof(struct UPT1_TxStats, bcastBytesTxOK) }, |
80 | { "pkts tx discard", offsetof(struct UPT1_TxStats, pktsTxDiscard) }, | 83 | { " pkts tx err", offsetof(struct UPT1_TxStats, pktsTxError) }, |
84 | { " pkts tx discard", offsetof(struct UPT1_TxStats, pktsTxDiscard) }, | ||
81 | }; | 85 | }; |
82 | 86 | ||
83 | /* per tq stats maintained by the driver */ | 87 | /* per tq stats maintained by the driver */ |
84 | static const struct vmxnet3_stat_desc | 88 | static const struct vmxnet3_stat_desc |
85 | vmxnet3_tq_driver_stats[] = { | 89 | vmxnet3_tq_driver_stats[] = { |
86 | /* description, offset */ | 90 | /* description, offset */ |
87 | {"drv dropped tx total", offsetof(struct vmxnet3_tq_driver_stats, | 91 | {" drv dropped tx total", offsetof(struct vmxnet3_tq_driver_stats, |
88 | drop_total) }, | 92 | drop_total) }, |
89 | { " too many frags", offsetof(struct vmxnet3_tq_driver_stats, | 93 | { " too many frags", offsetof(struct vmxnet3_tq_driver_stats, |
90 | drop_too_many_frags) }, | 94 | drop_too_many_frags) }, |
91 | { " giant hdr", offsetof(struct vmxnet3_tq_driver_stats, | 95 | { " giant hdr", offsetof(struct vmxnet3_tq_driver_stats, |
92 | drop_oversized_hdr) }, | 96 | drop_oversized_hdr) }, |
93 | { " hdr err", offsetof(struct vmxnet3_tq_driver_stats, | 97 | { " hdr err", offsetof(struct vmxnet3_tq_driver_stats, |
94 | drop_hdr_inspect_err) }, | 98 | drop_hdr_inspect_err) }, |
95 | { " tso", offsetof(struct vmxnet3_tq_driver_stats, | 99 | { " tso", offsetof(struct vmxnet3_tq_driver_stats, |
96 | drop_tso) }, | 100 | drop_tso) }, |
97 | { "ring full", offsetof(struct vmxnet3_tq_driver_stats, | 101 | { " ring full", offsetof(struct vmxnet3_tq_driver_stats, |
98 | tx_ring_full) }, | 102 | tx_ring_full) }, |
99 | { "pkts linearized", offsetof(struct vmxnet3_tq_driver_stats, | 103 | { " pkts linearized", offsetof(struct vmxnet3_tq_driver_stats, |
100 | linearized) }, | 104 | linearized) }, |
101 | { "hdr cloned", offsetof(struct vmxnet3_tq_driver_stats, | 105 | { " hdr cloned", offsetof(struct vmxnet3_tq_driver_stats, |
102 | copy_skb_header) }, | 106 | copy_skb_header) }, |
103 | { "giant hdr", offsetof(struct vmxnet3_tq_driver_stats, | 107 | { " giant hdr", offsetof(struct vmxnet3_tq_driver_stats, |
104 | oversized_hdr) }, | 108 | oversized_hdr) }, |
105 | }; | 109 | }; |
106 | 110 | ||
107 | /* per rq stats maintained by the device */ | 111 | /* per rq stats maintained by the device */ |
108 | static const struct vmxnet3_stat_desc | 112 | static const struct vmxnet3_stat_desc |
109 | vmxnet3_rq_dev_stats[] = { | 113 | vmxnet3_rq_dev_stats[] = { |
110 | { "LRO pkts rx", offsetof(struct UPT1_RxStats, LROPktsRxOK) }, | 114 | { "Rx Queue#", 0 }, |
111 | { "LRO byte rx", offsetof(struct UPT1_RxStats, LROBytesRxOK) }, | 115 | { " LRO pkts rx", offsetof(struct UPT1_RxStats, LROPktsRxOK) }, |
112 | { "ucast pkts rx", offsetof(struct UPT1_RxStats, ucastPktsRxOK) }, | 116 | { " LRO byte rx", offsetof(struct UPT1_RxStats, LROBytesRxOK) }, |
113 | { "ucast bytes rx", offsetof(struct UPT1_RxStats, ucastBytesRxOK) }, | 117 | { " ucast pkts rx", offsetof(struct UPT1_RxStats, ucastPktsRxOK) }, |
114 | { "mcast pkts rx", offsetof(struct UPT1_RxStats, mcastPktsRxOK) }, | 118 | { " ucast bytes rx", offsetof(struct UPT1_RxStats, ucastBytesRxOK) }, |
115 | { "mcast bytes rx", offsetof(struct UPT1_RxStats, mcastBytesRxOK) }, | 119 | { " mcast pkts rx", offsetof(struct UPT1_RxStats, mcastPktsRxOK) }, |
116 | { "bcast pkts rx", offsetof(struct UPT1_RxStats, bcastPktsRxOK) }, | 120 | { " mcast bytes rx", offsetof(struct UPT1_RxStats, mcastBytesRxOK) }, |
117 | { "bcast bytes rx", offsetof(struct UPT1_RxStats, bcastBytesRxOK) }, | 121 | { " bcast pkts rx", offsetof(struct UPT1_RxStats, bcastPktsRxOK) }, |
118 | { "pkts rx out of buf", offsetof(struct UPT1_RxStats, pktsRxOutOfBuf) }, | 122 | { " bcast bytes rx", offsetof(struct UPT1_RxStats, bcastBytesRxOK) }, |
119 | { "pkts rx err", offsetof(struct UPT1_RxStats, pktsRxError) }, | 123 | { " pkts rx OOB", offsetof(struct UPT1_RxStats, pktsRxOutOfBuf) }, |
124 | { " pkts rx err", offsetof(struct UPT1_RxStats, pktsRxError) }, | ||
120 | }; | 125 | }; |
121 | 126 | ||
122 | /* per rq stats maintained by the driver */ | 127 | /* per rq stats maintained by the driver */ |
123 | static const struct vmxnet3_stat_desc | 128 | static const struct vmxnet3_stat_desc |
124 | vmxnet3_rq_driver_stats[] = { | 129 | vmxnet3_rq_driver_stats[] = { |
125 | /* description, offset */ | 130 | /* description, offset */ |
126 | { "drv dropped rx total", offsetof(struct vmxnet3_rq_driver_stats, | 131 | { " drv dropped rx total", offsetof(struct vmxnet3_rq_driver_stats, |
127 | drop_total) }, | 132 | drop_total) }, |
128 | { " err", offsetof(struct vmxnet3_rq_driver_stats, | 133 | { " err", offsetof(struct vmxnet3_rq_driver_stats, |
129 | drop_err) }, | 134 | drop_err) }, |
130 | { " fcs", offsetof(struct vmxnet3_rq_driver_stats, | 135 | { " fcs", offsetof(struct vmxnet3_rq_driver_stats, |
131 | drop_fcs) }, | 136 | drop_fcs) }, |
132 | { "rx buf alloc fail", offsetof(struct vmxnet3_rq_driver_stats, | 137 | { " rx buf alloc fail", offsetof(struct vmxnet3_rq_driver_stats, |
133 | rx_buf_alloc_failure) }, | 138 | rx_buf_alloc_failure) }, |
134 | }; | 139 | }; |
135 | 140 | ||
136 | /* gloabl stats maintained by the driver */ | 141 | /* gloabl stats maintained by the driver */ |
137 | static const struct vmxnet3_stat_desc | 142 | static const struct vmxnet3_stat_desc |
138 | vmxnet3_global_stats[] = { | 143 | vmxnet3_global_stats[] = { |
139 | /* description, offset */ | 144 | /* description, offset */ |
140 | { "tx timeout count", offsetof(struct vmxnet3_adapter, | 145 | { "tx timeout count", offsetof(struct vmxnet3_adapter, |
141 | tx_timeout_count) } | 146 | tx_timeout_count) } |
142 | }; | 147 | }; |
143 | 148 | ||
@@ -151,12 +156,15 @@ vmxnet3_get_stats(struct net_device *netdev) | |||
151 | struct UPT1_TxStats *devTxStats; | 156 | struct UPT1_TxStats *devTxStats; |
152 | struct UPT1_RxStats *devRxStats; | 157 | struct UPT1_RxStats *devRxStats; |
153 | struct net_device_stats *net_stats = &netdev->stats; | 158 | struct net_device_stats *net_stats = &netdev->stats; |
159 | unsigned long flags; | ||
154 | int i; | 160 | int i; |
155 | 161 | ||
156 | adapter = netdev_priv(netdev); | 162 | adapter = netdev_priv(netdev); |
157 | 163 | ||
158 | /* Collect the dev stats into the shared area */ | 164 | /* Collect the dev stats into the shared area */ |
165 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
159 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); | 166 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); |
167 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
160 | 168 | ||
161 | memset(net_stats, 0, sizeof(*net_stats)); | 169 | memset(net_stats, 0, sizeof(*net_stats)); |
162 | for (i = 0; i < adapter->num_tx_queues; i++) { | 170 | for (i = 0; i < adapter->num_tx_queues; i++) { |
@@ -193,12 +201,15 @@ vmxnet3_get_stats(struct net_device *netdev) | |||
193 | static int | 201 | static int |
194 | vmxnet3_get_sset_count(struct net_device *netdev, int sset) | 202 | vmxnet3_get_sset_count(struct net_device *netdev, int sset) |
195 | { | 203 | { |
204 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | ||
196 | switch (sset) { | 205 | switch (sset) { |
197 | case ETH_SS_STATS: | 206 | case ETH_SS_STATS: |
198 | return ARRAY_SIZE(vmxnet3_tq_dev_stats) + | 207 | return (ARRAY_SIZE(vmxnet3_tq_dev_stats) + |
199 | ARRAY_SIZE(vmxnet3_tq_driver_stats) + | 208 | ARRAY_SIZE(vmxnet3_tq_driver_stats)) * |
200 | ARRAY_SIZE(vmxnet3_rq_dev_stats) + | 209 | adapter->num_tx_queues + |
201 | ARRAY_SIZE(vmxnet3_rq_driver_stats) + | 210 | (ARRAY_SIZE(vmxnet3_rq_dev_stats) + |
211 | ARRAY_SIZE(vmxnet3_rq_driver_stats)) * | ||
212 | adapter->num_rx_queues + | ||
202 | ARRAY_SIZE(vmxnet3_global_stats); | 213 | ARRAY_SIZE(vmxnet3_global_stats); |
203 | default: | 214 | default: |
204 | return -EOPNOTSUPP; | 215 | return -EOPNOTSUPP; |
@@ -206,10 +217,16 @@ vmxnet3_get_sset_count(struct net_device *netdev, int sset) | |||
206 | } | 217 | } |
207 | 218 | ||
208 | 219 | ||
220 | /* Should be multiple of 4 */ | ||
221 | #define NUM_TX_REGS 8 | ||
222 | #define NUM_RX_REGS 12 | ||
223 | |||
209 | static int | 224 | static int |
210 | vmxnet3_get_regs_len(struct net_device *netdev) | 225 | vmxnet3_get_regs_len(struct net_device *netdev) |
211 | { | 226 | { |
212 | return 20 * sizeof(u32); | 227 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
228 | return (adapter->num_tx_queues * NUM_TX_REGS * sizeof(u32) + | ||
229 | adapter->num_rx_queues * NUM_RX_REGS * sizeof(u32)); | ||
213 | } | 230 | } |
214 | 231 | ||
215 | 232 | ||
@@ -240,29 +257,37 @@ vmxnet3_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) | |||
240 | static void | 257 | static void |
241 | vmxnet3_get_strings(struct net_device *netdev, u32 stringset, u8 *buf) | 258 | vmxnet3_get_strings(struct net_device *netdev, u32 stringset, u8 *buf) |
242 | { | 259 | { |
260 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | ||
243 | if (stringset == ETH_SS_STATS) { | 261 | if (stringset == ETH_SS_STATS) { |
244 | int i; | 262 | int i, j; |
245 | 263 | for (j = 0; j < adapter->num_tx_queues; j++) { | |
246 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) { | 264 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) { |
247 | memcpy(buf, vmxnet3_tq_dev_stats[i].desc, | 265 | memcpy(buf, vmxnet3_tq_dev_stats[i].desc, |
248 | ETH_GSTRING_LEN); | 266 | ETH_GSTRING_LEN); |
249 | buf += ETH_GSTRING_LEN; | 267 | buf += ETH_GSTRING_LEN; |
250 | } | 268 | } |
251 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); i++) { | 269 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); |
252 | memcpy(buf, vmxnet3_tq_driver_stats[i].desc, | 270 | i++) { |
253 | ETH_GSTRING_LEN); | 271 | memcpy(buf, vmxnet3_tq_driver_stats[i].desc, |
254 | buf += ETH_GSTRING_LEN; | 272 | ETH_GSTRING_LEN); |
255 | } | 273 | buf += ETH_GSTRING_LEN; |
256 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) { | 274 | } |
257 | memcpy(buf, vmxnet3_rq_dev_stats[i].desc, | ||
258 | ETH_GSTRING_LEN); | ||
259 | buf += ETH_GSTRING_LEN; | ||
260 | } | 275 | } |
261 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); i++) { | 276 | |
262 | memcpy(buf, vmxnet3_rq_driver_stats[i].desc, | 277 | for (j = 0; j < adapter->num_rx_queues; j++) { |
263 | ETH_GSTRING_LEN); | 278 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) { |
264 | buf += ETH_GSTRING_LEN; | 279 | memcpy(buf, vmxnet3_rq_dev_stats[i].desc, |
280 | ETH_GSTRING_LEN); | ||
281 | buf += ETH_GSTRING_LEN; | ||
282 | } | ||
283 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); | ||
284 | i++) { | ||
285 | memcpy(buf, vmxnet3_rq_driver_stats[i].desc, | ||
286 | ETH_GSTRING_LEN); | ||
287 | buf += ETH_GSTRING_LEN; | ||
288 | } | ||
265 | } | 289 | } |
290 | |||
266 | for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) { | 291 | for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) { |
267 | memcpy(buf, vmxnet3_global_stats[i].desc, | 292 | memcpy(buf, vmxnet3_global_stats[i].desc, |
268 | ETH_GSTRING_LEN); | 293 | ETH_GSTRING_LEN); |
@@ -277,6 +302,7 @@ vmxnet3_set_flags(struct net_device *netdev, u32 data) | |||
277 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 302 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
278 | u8 lro_requested = (data & ETH_FLAG_LRO) == 0 ? 0 : 1; | 303 | u8 lro_requested = (data & ETH_FLAG_LRO) == 0 ? 0 : 1; |
279 | u8 lro_present = (netdev->features & NETIF_F_LRO) == 0 ? 0 : 1; | 304 | u8 lro_present = (netdev->features & NETIF_F_LRO) == 0 ? 0 : 1; |
305 | unsigned long flags; | ||
280 | 306 | ||
281 | if (data & ~ETH_FLAG_LRO) | 307 | if (data & ~ETH_FLAG_LRO) |
282 | return -EOPNOTSUPP; | 308 | return -EOPNOTSUPP; |
@@ -292,8 +318,10 @@ vmxnet3_set_flags(struct net_device *netdev, u32 data) | |||
292 | else | 318 | else |
293 | adapter->shared->devRead.misc.uptFeatures &= | 319 | adapter->shared->devRead.misc.uptFeatures &= |
294 | ~UPT1_F_LRO; | 320 | ~UPT1_F_LRO; |
321 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
295 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 322 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
296 | VMXNET3_CMD_UPDATE_FEATURE); | 323 | VMXNET3_CMD_UPDATE_FEATURE); |
324 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
297 | } | 325 | } |
298 | return 0; | 326 | return 0; |
299 | } | 327 | } |
@@ -303,30 +331,41 @@ vmxnet3_get_ethtool_stats(struct net_device *netdev, | |||
303 | struct ethtool_stats *stats, u64 *buf) | 331 | struct ethtool_stats *stats, u64 *buf) |
304 | { | 332 | { |
305 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 333 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
334 | unsigned long flags; | ||
306 | u8 *base; | 335 | u8 *base; |
307 | int i; | 336 | int i; |
308 | int j = 0; | 337 | int j = 0; |
309 | 338 | ||
339 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
310 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); | 340 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); |
341 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
311 | 342 | ||
312 | /* this does assume each counter is 64-bit wide */ | 343 | /* this does assume each counter is 64-bit wide */ |
313 | /* TODO change this for multiple queues */ | 344 | for (j = 0; j < adapter->num_tx_queues; j++) { |
314 | 345 | base = (u8 *)&adapter->tqd_start[j].stats; | |
315 | base = (u8 *)&adapter->tqd_start[j].stats; | 346 | *buf++ = (u64)j; |
316 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) | 347 | for (i = 1; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) |
317 | *buf++ = *(u64 *)(base + vmxnet3_tq_dev_stats[i].offset); | 348 | *buf++ = *(u64 *)(base + |
318 | 349 | vmxnet3_tq_dev_stats[i].offset); | |
319 | base = (u8 *)&adapter->tx_queue[j].stats; | 350 | |
320 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); i++) | 351 | base = (u8 *)&adapter->tx_queue[j].stats; |
321 | *buf++ = *(u64 *)(base + vmxnet3_tq_driver_stats[i].offset); | 352 | for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); i++) |
322 | 353 | *buf++ = *(u64 *)(base + | |
323 | base = (u8 *)&adapter->rqd_start[j].stats; | 354 | vmxnet3_tq_driver_stats[i].offset); |
324 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) | 355 | } |
325 | *buf++ = *(u64 *)(base + vmxnet3_rq_dev_stats[i].offset); | ||
326 | 356 | ||
327 | base = (u8 *)&adapter->rx_queue[j].stats; | 357 | for (j = 0; j < adapter->num_tx_queues; j++) { |
328 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); i++) | 358 | base = (u8 *)&adapter->rqd_start[j].stats; |
329 | *buf++ = *(u64 *)(base + vmxnet3_rq_driver_stats[i].offset); | 359 | *buf++ = (u64) j; |
360 | for (i = 1; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) | ||
361 | *buf++ = *(u64 *)(base + | ||
362 | vmxnet3_rq_dev_stats[i].offset); | ||
363 | |||
364 | base = (u8 *)&adapter->rx_queue[j].stats; | ||
365 | for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); i++) | ||
366 | *buf++ = *(u64 *)(base + | ||
367 | vmxnet3_rq_driver_stats[i].offset); | ||
368 | } | ||
330 | 369 | ||
331 | base = (u8 *)adapter; | 370 | base = (u8 *)adapter; |
332 | for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) | 371 | for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) |
@@ -339,7 +378,7 @@ vmxnet3_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *p) | |||
339 | { | 378 | { |
340 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 379 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
341 | u32 *buf = p; | 380 | u32 *buf = p; |
342 | int i = 0; | 381 | int i = 0, j = 0; |
343 | 382 | ||
344 | memset(p, 0, vmxnet3_get_regs_len(netdev)); | 383 | memset(p, 0, vmxnet3_get_regs_len(netdev)); |
345 | 384 | ||
@@ -348,31 +387,35 @@ vmxnet3_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *p) | |||
348 | /* Update vmxnet3_get_regs_len if we want to dump more registers */ | 387 | /* Update vmxnet3_get_regs_len if we want to dump more registers */ |
349 | 388 | ||
350 | /* make each ring use multiple of 16 bytes */ | 389 | /* make each ring use multiple of 16 bytes */ |
351 | /* TODO change this for multiple queues */ | 390 | for (i = 0; i < adapter->num_tx_queues; i++) { |
352 | buf[0] = adapter->tx_queue[i].tx_ring.next2fill; | 391 | buf[j++] = adapter->tx_queue[i].tx_ring.next2fill; |
353 | buf[1] = adapter->tx_queue[i].tx_ring.next2comp; | 392 | buf[j++] = adapter->tx_queue[i].tx_ring.next2comp; |
354 | buf[2] = adapter->tx_queue[i].tx_ring.gen; | 393 | buf[j++] = adapter->tx_queue[i].tx_ring.gen; |
355 | buf[3] = 0; | 394 | buf[j++] = 0; |
356 | 395 | ||
357 | buf[4] = adapter->tx_queue[i].comp_ring.next2proc; | 396 | buf[j++] = adapter->tx_queue[i].comp_ring.next2proc; |
358 | buf[5] = adapter->tx_queue[i].comp_ring.gen; | 397 | buf[j++] = adapter->tx_queue[i].comp_ring.gen; |
359 | buf[6] = adapter->tx_queue[i].stopped; | 398 | buf[j++] = adapter->tx_queue[i].stopped; |
360 | buf[7] = 0; | 399 | buf[j++] = 0; |
361 | 400 | } | |
362 | buf[8] = adapter->rx_queue[i].rx_ring[0].next2fill; | 401 | |
363 | buf[9] = adapter->rx_queue[i].rx_ring[0].next2comp; | 402 | for (i = 0; i < adapter->num_rx_queues; i++) { |
364 | buf[10] = adapter->rx_queue[i].rx_ring[0].gen; | 403 | buf[j++] = adapter->rx_queue[i].rx_ring[0].next2fill; |
365 | buf[11] = 0; | 404 | buf[j++] = adapter->rx_queue[i].rx_ring[0].next2comp; |
366 | 405 | buf[j++] = adapter->rx_queue[i].rx_ring[0].gen; | |
367 | buf[12] = adapter->rx_queue[i].rx_ring[1].next2fill; | 406 | buf[j++] = 0; |
368 | buf[13] = adapter->rx_queue[i].rx_ring[1].next2comp; | 407 | |
369 | buf[14] = adapter->rx_queue[i].rx_ring[1].gen; | 408 | buf[j++] = adapter->rx_queue[i].rx_ring[1].next2fill; |
370 | buf[15] = 0; | 409 | buf[j++] = adapter->rx_queue[i].rx_ring[1].next2comp; |
371 | 410 | buf[j++] = adapter->rx_queue[i].rx_ring[1].gen; | |
372 | buf[16] = adapter->rx_queue[i].comp_ring.next2proc; | 411 | buf[j++] = 0; |
373 | buf[17] = adapter->rx_queue[i].comp_ring.gen; | 412 | |
374 | buf[18] = 0; | 413 | buf[j++] = adapter->rx_queue[i].comp_ring.next2proc; |
375 | buf[19] = 0; | 414 | buf[j++] = adapter->rx_queue[i].comp_ring.gen; |
415 | buf[j++] = 0; | ||
416 | buf[j++] = 0; | ||
417 | } | ||
418 | |||
376 | } | 419 | } |
377 | 420 | ||
378 | 421 | ||
@@ -574,6 +617,7 @@ vmxnet3_set_rss_indir(struct net_device *netdev, | |||
574 | const struct ethtool_rxfh_indir *p) | 617 | const struct ethtool_rxfh_indir *p) |
575 | { | 618 | { |
576 | unsigned int i; | 619 | unsigned int i; |
620 | unsigned long flags; | ||
577 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 621 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
578 | struct UPT1_RSSConf *rssConf = adapter->rss_conf; | 622 | struct UPT1_RSSConf *rssConf = adapter->rss_conf; |
579 | 623 | ||
@@ -592,8 +636,10 @@ vmxnet3_set_rss_indir(struct net_device *netdev, | |||
592 | for (i = 0; i < rssConf->indTableSize; i++) | 636 | for (i = 0; i < rssConf->indTableSize; i++) |
593 | rssConf->indTable[i] = p->ring_index[i]; | 637 | rssConf->indTable[i] = p->ring_index[i]; |
594 | 638 | ||
639 | spin_lock_irqsave(&adapter->cmd_lock, flags); | ||
595 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, | 640 | VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, |
596 | VMXNET3_CMD_UPDATE_RSSIDT); | 641 | VMXNET3_CMD_UPDATE_RSSIDT); |
642 | spin_unlock_irqrestore(&adapter->cmd_lock, flags); | ||
597 | 643 | ||
598 | return 0; | 644 | return 0; |
599 | 645 | ||
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h index 7fadeed37f03..fb5d245ac878 100644 --- a/drivers/net/vmxnet3/vmxnet3_int.h +++ b/drivers/net/vmxnet3/vmxnet3_int.h | |||
@@ -68,10 +68,10 @@ | |||
68 | /* | 68 | /* |
69 | * Version numbers | 69 | * Version numbers |
70 | */ | 70 | */ |
71 | #define VMXNET3_DRIVER_VERSION_STRING "1.0.16.0-k" | 71 | #define VMXNET3_DRIVER_VERSION_STRING "1.0.25.0-k" |
72 | 72 | ||
73 | /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */ | 73 | /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */ |
74 | #define VMXNET3_DRIVER_VERSION_NUM 0x01001000 | 74 | #define VMXNET3_DRIVER_VERSION_NUM 0x01001900 |
75 | 75 | ||
76 | #if defined(CONFIG_PCI_MSI) | 76 | #if defined(CONFIG_PCI_MSI) |
77 | /* RSS only makes sense if MSI-X is supported. */ | 77 | /* RSS only makes sense if MSI-X is supported. */ |
@@ -289,7 +289,7 @@ struct vmxnet3_rx_queue { | |||
289 | 289 | ||
290 | #define VMXNET3_LINUX_MAX_MSIX_VECT (VMXNET3_DEVICE_MAX_TX_QUEUES + \ | 290 | #define VMXNET3_LINUX_MAX_MSIX_VECT (VMXNET3_DEVICE_MAX_TX_QUEUES + \ |
291 | VMXNET3_DEVICE_MAX_RX_QUEUES + 1) | 291 | VMXNET3_DEVICE_MAX_RX_QUEUES + 1) |
292 | #define VMXNET3_LINUX_MIN_MSIX_VECT 3 /* 1 for each : tx, rx and event */ | 292 | #define VMXNET3_LINUX_MIN_MSIX_VECT 2 /* 1 for tx-rx pair and 1 for event */ |
293 | 293 | ||
294 | 294 | ||
295 | struct vmxnet3_intr { | 295 | struct vmxnet3_intr { |
@@ -317,6 +317,7 @@ struct vmxnet3_adapter { | |||
317 | struct vmxnet3_rx_queue rx_queue[VMXNET3_DEVICE_MAX_RX_QUEUES]; | 317 | struct vmxnet3_rx_queue rx_queue[VMXNET3_DEVICE_MAX_RX_QUEUES]; |
318 | struct vlan_group *vlan_grp; | 318 | struct vlan_group *vlan_grp; |
319 | struct vmxnet3_intr intr; | 319 | struct vmxnet3_intr intr; |
320 | spinlock_t cmd_lock; | ||
320 | struct Vmxnet3_DriverShared *shared; | 321 | struct Vmxnet3_DriverShared *shared; |
321 | struct Vmxnet3_PMConf *pm_conf; | 322 | struct Vmxnet3_PMConf *pm_conf; |
322 | struct Vmxnet3_TxQueueDesc *tqd_start; /* all tx queue desc */ | 323 | struct Vmxnet3_TxQueueDesc *tqd_start; /* all tx queue desc */ |
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 019a74d533a6..09ae4ef0fd51 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
@@ -2294,6 +2294,8 @@ ath5k_tx_complete_poll_work(struct work_struct *work) | |||
2294 | int i; | 2294 | int i; |
2295 | bool needreset = false; | 2295 | bool needreset = false; |
2296 | 2296 | ||
2297 | mutex_lock(&sc->lock); | ||
2298 | |||
2297 | for (i = 0; i < ARRAY_SIZE(sc->txqs); i++) { | 2299 | for (i = 0; i < ARRAY_SIZE(sc->txqs); i++) { |
2298 | if (sc->txqs[i].setup) { | 2300 | if (sc->txqs[i].setup) { |
2299 | txq = &sc->txqs[i]; | 2301 | txq = &sc->txqs[i]; |
@@ -2321,6 +2323,8 @@ ath5k_tx_complete_poll_work(struct work_struct *work) | |||
2321 | ath5k_reset(sc, NULL, true); | 2323 | ath5k_reset(sc, NULL, true); |
2322 | } | 2324 | } |
2323 | 2325 | ||
2326 | mutex_unlock(&sc->lock); | ||
2327 | |||
2324 | ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, | 2328 | ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, |
2325 | msecs_to_jiffies(ATH5K_TX_COMPLETE_POLL_INT)); | 2329 | msecs_to_jiffies(ATH5K_TX_COMPLETE_POLL_INT)); |
2326 | } | 2330 | } |
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c index ea2e7d714bda..5e300bd3d264 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c | |||
@@ -679,10 +679,6 @@ static bool ar9002_hw_calibrate(struct ath_hw *ah, | |||
679 | 679 | ||
680 | /* Do NF cal only at longer intervals */ | 680 | /* Do NF cal only at longer intervals */ |
681 | if (longcal || nfcal_pending) { | 681 | if (longcal || nfcal_pending) { |
682 | /* Do periodic PAOffset Cal */ | ||
683 | ar9002_hw_pa_cal(ah, false); | ||
684 | ar9002_hw_olc_temp_compensation(ah); | ||
685 | |||
686 | /* | 682 | /* |
687 | * Get the value from the previous NF cal and update | 683 | * Get the value from the previous NF cal and update |
688 | * history buffer. | 684 | * history buffer. |
@@ -697,8 +693,12 @@ static bool ar9002_hw_calibrate(struct ath_hw *ah, | |||
697 | ath9k_hw_loadnf(ah, ah->curchan); | 693 | ath9k_hw_loadnf(ah, ah->curchan); |
698 | } | 694 | } |
699 | 695 | ||
700 | if (longcal) | 696 | if (longcal) { |
701 | ath9k_hw_start_nfcal(ah, false); | 697 | ath9k_hw_start_nfcal(ah, false); |
698 | /* Do periodic PAOffset Cal */ | ||
699 | ar9002_hw_pa_cal(ah, false); | ||
700 | ar9002_hw_olc_temp_compensation(ah); | ||
701 | } | ||
702 | } | 702 | } |
703 | 703 | ||
704 | return iscaldone; | 704 | return iscaldone; |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h index 81f9cf294dec..9ecca93392e8 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h +++ b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h | |||
@@ -1842,7 +1842,7 @@ static const u32 ar9300_2p2_soc_preamble[][2] = { | |||
1842 | 1842 | ||
1843 | static const u32 ar9300PciePhy_pll_on_clkreq_disable_L1_2p2[][2] = { | 1843 | static const u32 ar9300PciePhy_pll_on_clkreq_disable_L1_2p2[][2] = { |
1844 | /* Addr allmodes */ | 1844 | /* Addr allmodes */ |
1845 | {0x00004040, 0x08212e5e}, | 1845 | {0x00004040, 0x0821265e}, |
1846 | {0x00004040, 0x0008003b}, | 1846 | {0x00004040, 0x0008003b}, |
1847 | {0x00004044, 0x00000000}, | 1847 | {0x00004044, 0x00000000}, |
1848 | }; | 1848 | }; |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_hw.c b/drivers/net/wireless/ath/ath9k/ar9003_hw.c index 6137634e46ca..06fb2c850535 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_hw.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_hw.c | |||
@@ -146,8 +146,8 @@ static void ar9003_hw_init_mode_regs(struct ath_hw *ah) | |||
146 | /* Sleep Setting */ | 146 | /* Sleep Setting */ |
147 | 147 | ||
148 | INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower, | 148 | INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower, |
149 | ar9300PciePhy_clkreq_enable_L1_2p2, | 149 | ar9300PciePhy_pll_on_clkreq_disable_L1_2p2, |
150 | ARRAY_SIZE(ar9300PciePhy_clkreq_enable_L1_2p2), | 150 | ARRAY_SIZE(ar9300PciePhy_pll_on_clkreq_disable_L1_2p2), |
151 | 2); | 151 | 2); |
152 | 152 | ||
153 | /* Fast clock modal settings */ | 153 | /* Fast clock modal settings */ |
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h index 1ce506f23110..780ac5eac501 100644 --- a/drivers/net/wireless/ath/ath9k/htc.h +++ b/drivers/net/wireless/ath/ath9k/htc.h | |||
@@ -78,7 +78,7 @@ struct tx_frame_hdr { | |||
78 | u8 node_idx; | 78 | u8 node_idx; |
79 | u8 vif_idx; | 79 | u8 vif_idx; |
80 | u8 tidno; | 80 | u8 tidno; |
81 | u32 flags; /* ATH9K_HTC_TX_* */ | 81 | __be32 flags; /* ATH9K_HTC_TX_* */ |
82 | u8 key_type; | 82 | u8 key_type; |
83 | u8 keyix; | 83 | u8 keyix; |
84 | u8 reserved[26]; | 84 | u8 reserved[26]; |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c index 33f36029fa4f..7a5ffca21958 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | |||
@@ -113,6 +113,7 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb) | |||
113 | 113 | ||
114 | if (ieee80211_is_data(fc)) { | 114 | if (ieee80211_is_data(fc)) { |
115 | struct tx_frame_hdr tx_hdr; | 115 | struct tx_frame_hdr tx_hdr; |
116 | u32 flags = 0; | ||
116 | u8 *qc; | 117 | u8 *qc; |
117 | 118 | ||
118 | memset(&tx_hdr, 0, sizeof(struct tx_frame_hdr)); | 119 | memset(&tx_hdr, 0, sizeof(struct tx_frame_hdr)); |
@@ -136,13 +137,14 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb) | |||
136 | /* Check for RTS protection */ | 137 | /* Check for RTS protection */ |
137 | if (priv->hw->wiphy->rts_threshold != (u32) -1) | 138 | if (priv->hw->wiphy->rts_threshold != (u32) -1) |
138 | if (skb->len > priv->hw->wiphy->rts_threshold) | 139 | if (skb->len > priv->hw->wiphy->rts_threshold) |
139 | tx_hdr.flags |= ATH9K_HTC_TX_RTSCTS; | 140 | flags |= ATH9K_HTC_TX_RTSCTS; |
140 | 141 | ||
141 | /* CTS-to-self */ | 142 | /* CTS-to-self */ |
142 | if (!(tx_hdr.flags & ATH9K_HTC_TX_RTSCTS) && | 143 | if (!(flags & ATH9K_HTC_TX_RTSCTS) && |
143 | (priv->op_flags & OP_PROTECT_ENABLE)) | 144 | (priv->op_flags & OP_PROTECT_ENABLE)) |
144 | tx_hdr.flags |= ATH9K_HTC_TX_CTSONLY; | 145 | flags |= ATH9K_HTC_TX_CTSONLY; |
145 | 146 | ||
147 | tx_hdr.flags = cpu_to_be32(flags); | ||
146 | tx_hdr.key_type = ath9k_cmn_get_hw_crypto_keytype(skb); | 148 | tx_hdr.key_type = ath9k_cmn_get_hw_crypto_keytype(skb); |
147 | if (tx_hdr.key_type == ATH9K_KEY_TYPE_CLEAR) | 149 | if (tx_hdr.key_type == ATH9K_KEY_TYPE_CLEAR) |
148 | tx_hdr.keyix = (u8) ATH9K_TXKEYIX_INVALID; | 150 | tx_hdr.keyix = (u8) ATH9K_TXKEYIX_INVALID; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c index 97906dd442e6..14ceb4df72f6 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c | |||
@@ -168,7 +168,7 @@ int iwl_eeprom_check_sku(struct iwl_priv *priv) | |||
168 | /* not using .cfg overwrite */ | 168 | /* not using .cfg overwrite */ |
169 | radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG); | 169 | radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG); |
170 | priv->cfg->valid_tx_ant = EEPROM_RF_CFG_TX_ANT_MSK(radio_cfg); | 170 | priv->cfg->valid_tx_ant = EEPROM_RF_CFG_TX_ANT_MSK(radio_cfg); |
171 | priv->cfg->valid_rx_ant = EEPROM_RF_CFG_TX_ANT_MSK(radio_cfg); | 171 | priv->cfg->valid_rx_ant = EEPROM_RF_CFG_RX_ANT_MSK(radio_cfg); |
172 | if (!priv->cfg->valid_tx_ant || !priv->cfg->valid_rx_ant) { | 172 | if (!priv->cfg->valid_tx_ant || !priv->cfg->valid_rx_ant) { |
173 | IWL_ERR(priv, "Invalid chain (0X%x, 0X%x)\n", | 173 | IWL_ERR(priv, "Invalid chain (0X%x, 0X%x)\n", |
174 | priv->cfg->valid_tx_ant, | 174 | priv->cfg->valid_tx_ant, |
diff --git a/drivers/net/wireless/iwmc3200wifi/netdev.c b/drivers/net/wireless/iwmc3200wifi/netdev.c index 13a69ebf2a94..5091d77e02ce 100644 --- a/drivers/net/wireless/iwmc3200wifi/netdev.c +++ b/drivers/net/wireless/iwmc3200wifi/netdev.c | |||
@@ -126,6 +126,7 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev, | |||
126 | ndev = alloc_netdev_mq(0, "wlan%d", ether_setup, IWM_TX_QUEUES); | 126 | ndev = alloc_netdev_mq(0, "wlan%d", ether_setup, IWM_TX_QUEUES); |
127 | if (!ndev) { | 127 | if (!ndev) { |
128 | dev_err(dev, "no memory for network device instance\n"); | 128 | dev_err(dev, "no memory for network device instance\n"); |
129 | ret = -ENOMEM; | ||
129 | goto out_priv; | 130 | goto out_priv; |
130 | } | 131 | } |
131 | 132 | ||
@@ -138,6 +139,7 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev, | |||
138 | GFP_KERNEL); | 139 | GFP_KERNEL); |
139 | if (!iwm->umac_profile) { | 140 | if (!iwm->umac_profile) { |
140 | dev_err(dev, "Couldn't alloc memory for profile\n"); | 141 | dev_err(dev, "Couldn't alloc memory for profile\n"); |
142 | ret = -ENOMEM; | ||
141 | goto out_profile; | 143 | goto out_profile; |
142 | } | 144 | } |
143 | 145 | ||
diff --git a/drivers/net/wireless/rt2x00/rt2x00firmware.c b/drivers/net/wireless/rt2x00/rt2x00firmware.c index f0e1eb72befc..be0ff78c1b16 100644 --- a/drivers/net/wireless/rt2x00/rt2x00firmware.c +++ b/drivers/net/wireless/rt2x00/rt2x00firmware.c | |||
@@ -58,6 +58,7 @@ static int rt2x00lib_request_firmware(struct rt2x00_dev *rt2x00dev) | |||
58 | 58 | ||
59 | if (!fw || !fw->size || !fw->data) { | 59 | if (!fw || !fw->size || !fw->data) { |
60 | ERROR(rt2x00dev, "Failed to read Firmware.\n"); | 60 | ERROR(rt2x00dev, "Failed to read Firmware.\n"); |
61 | release_firmware(fw); | ||
61 | return -ENOENT; | 62 | return -ENOENT; |
62 | } | 63 | } |
63 | 64 | ||
diff --git a/drivers/pci/pcie/Kconfig b/drivers/pci/pcie/Kconfig index dda70981b7a6..dc29348264c6 100644 --- a/drivers/pci/pcie/Kconfig +++ b/drivers/pci/pcie/Kconfig | |||
@@ -31,7 +31,7 @@ source "drivers/pci/pcie/aer/Kconfig" | |||
31 | # PCI Express ASPM | 31 | # PCI Express ASPM |
32 | # | 32 | # |
33 | config PCIEASPM | 33 | config PCIEASPM |
34 | bool "PCI Express ASPM control" if EMBEDDED | 34 | bool "PCI Express ASPM control" if EXPERT |
35 | depends on PCI && PCIEPORTBUS | 35 | depends on PCI && PCIEPORTBUS |
36 | default y | 36 | default y |
37 | help | 37 | help |
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig index de886f3dfd39..6e318ce41136 100644 --- a/drivers/pcmcia/Kconfig +++ b/drivers/pcmcia/Kconfig | |||
@@ -69,7 +69,7 @@ comment "PC-card bridges" | |||
69 | config YENTA | 69 | config YENTA |
70 | tristate "CardBus yenta-compatible bridge support" | 70 | tristate "CardBus yenta-compatible bridge support" |
71 | depends on PCI | 71 | depends on PCI |
72 | select CARDBUS if !EMBEDDED | 72 | select CARDBUS if !EXPERT |
73 | select PCCARD_NONSTATIC if PCMCIA != n | 73 | select PCCARD_NONSTATIC if PCMCIA != n |
74 | ---help--- | 74 | ---help--- |
75 | This option enables support for CardBus host bridges. Virtually | 75 | This option enables support for CardBus host bridges. Virtually |
@@ -84,27 +84,27 @@ config YENTA | |||
84 | 84 | ||
85 | config YENTA_O2 | 85 | config YENTA_O2 |
86 | default y | 86 | default y |
87 | bool "Special initialization for O2Micro bridges" if EMBEDDED | 87 | bool "Special initialization for O2Micro bridges" if EXPERT |
88 | depends on YENTA | 88 | depends on YENTA |
89 | 89 | ||
90 | config YENTA_RICOH | 90 | config YENTA_RICOH |
91 | default y | 91 | default y |
92 | bool "Special initialization for Ricoh bridges" if EMBEDDED | 92 | bool "Special initialization for Ricoh bridges" if EXPERT |
93 | depends on YENTA | 93 | depends on YENTA |
94 | 94 | ||
95 | config YENTA_TI | 95 | config YENTA_TI |
96 | default y | 96 | default y |
97 | bool "Special initialization for TI and EnE bridges" if EMBEDDED | 97 | bool "Special initialization for TI and EnE bridges" if EXPERT |
98 | depends on YENTA | 98 | depends on YENTA |
99 | 99 | ||
100 | config YENTA_ENE_TUNE | 100 | config YENTA_ENE_TUNE |
101 | default y | 101 | default y |
102 | bool "Auto-tune EnE bridges for CB cards" if EMBEDDED | 102 | bool "Auto-tune EnE bridges for CB cards" if EXPERT |
103 | depends on YENTA_TI && CARDBUS | 103 | depends on YENTA_TI && CARDBUS |
104 | 104 | ||
105 | config YENTA_TOSHIBA | 105 | config YENTA_TOSHIBA |
106 | default y | 106 | default y |
107 | bool "Special initialization for Toshiba ToPIC bridges" if EMBEDDED | 107 | bool "Special initialization for Toshiba ToPIC bridges" if EXPERT |
108 | depends on YENTA | 108 | depends on YENTA |
109 | 109 | ||
110 | config PD6729 | 110 | config PD6729 |
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 7a7a1b664781..2ac8f6aff5a4 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c | |||
@@ -831,12 +831,14 @@ tx_drop: | |||
831 | return NETDEV_TX_OK; | 831 | return NETDEV_TX_OK; |
832 | } | 832 | } |
833 | 833 | ||
834 | static int qeth_l2_open(struct net_device *dev) | 834 | static int __qeth_l2_open(struct net_device *dev) |
835 | { | 835 | { |
836 | struct qeth_card *card = dev->ml_priv; | 836 | struct qeth_card *card = dev->ml_priv; |
837 | int rc = 0; | 837 | int rc = 0; |
838 | 838 | ||
839 | QETH_CARD_TEXT(card, 4, "qethopen"); | 839 | QETH_CARD_TEXT(card, 4, "qethopen"); |
840 | if (card->state == CARD_STATE_UP) | ||
841 | return rc; | ||
840 | if (card->state != CARD_STATE_SOFTSETUP) | 842 | if (card->state != CARD_STATE_SOFTSETUP) |
841 | return -ENODEV; | 843 | return -ENODEV; |
842 | 844 | ||
@@ -857,6 +859,18 @@ static int qeth_l2_open(struct net_device *dev) | |||
857 | return rc; | 859 | return rc; |
858 | } | 860 | } |
859 | 861 | ||
862 | static int qeth_l2_open(struct net_device *dev) | ||
863 | { | ||
864 | struct qeth_card *card = dev->ml_priv; | ||
865 | |||
866 | QETH_CARD_TEXT(card, 5, "qethope_"); | ||
867 | if (qeth_wait_for_threads(card, QETH_RECOVER_THREAD)) { | ||
868 | QETH_CARD_TEXT(card, 3, "openREC"); | ||
869 | return -ERESTARTSYS; | ||
870 | } | ||
871 | return __qeth_l2_open(dev); | ||
872 | } | ||
873 | |||
860 | static int qeth_l2_stop(struct net_device *dev) | 874 | static int qeth_l2_stop(struct net_device *dev) |
861 | { | 875 | { |
862 | struct qeth_card *card = dev->ml_priv; | 876 | struct qeth_card *card = dev->ml_priv; |
@@ -1046,7 +1060,7 @@ contin: | |||
1046 | if (recover_flag == CARD_STATE_RECOVER) { | 1060 | if (recover_flag == CARD_STATE_RECOVER) { |
1047 | if (recovery_mode && | 1061 | if (recovery_mode && |
1048 | card->info.type != QETH_CARD_TYPE_OSN) { | 1062 | card->info.type != QETH_CARD_TYPE_OSN) { |
1049 | qeth_l2_open(card->dev); | 1063 | __qeth_l2_open(card->dev); |
1050 | } else { | 1064 | } else { |
1051 | rtnl_lock(); | 1065 | rtnl_lock(); |
1052 | dev_open(card->dev); | 1066 | dev_open(card->dev); |
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index e227e465bfc4..d09b0c44fc3d 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c | |||
@@ -2998,7 +2998,9 @@ static inline void qeth_l3_hdr_csum(struct qeth_card *card, | |||
2998 | */ | 2998 | */ |
2999 | if (iph->protocol == IPPROTO_UDP) | 2999 | if (iph->protocol == IPPROTO_UDP) |
3000 | hdr->hdr.l3.ext_flags |= QETH_HDR_EXT_UDP; | 3000 | hdr->hdr.l3.ext_flags |= QETH_HDR_EXT_UDP; |
3001 | hdr->hdr.l3.ext_flags |= QETH_HDR_EXT_CSUM_TRANSP_REQ; | 3001 | hdr->hdr.l3.ext_flags |= QETH_HDR_EXT_CSUM_TRANSP_REQ | |
3002 | QETH_HDR_EXT_CSUM_HDR_REQ; | ||
3003 | iph->check = 0; | ||
3002 | if (card->options.performance_stats) | 3004 | if (card->options.performance_stats) |
3003 | card->perf_stats.tx_csum++; | 3005 | card->perf_stats.tx_csum++; |
3004 | } | 3006 | } |
@@ -3240,12 +3242,14 @@ tx_drop: | |||
3240 | return NETDEV_TX_OK; | 3242 | return NETDEV_TX_OK; |
3241 | } | 3243 | } |
3242 | 3244 | ||
3243 | static int qeth_l3_open(struct net_device *dev) | 3245 | static int __qeth_l3_open(struct net_device *dev) |
3244 | { | 3246 | { |
3245 | struct qeth_card *card = dev->ml_priv; | 3247 | struct qeth_card *card = dev->ml_priv; |
3246 | int rc = 0; | 3248 | int rc = 0; |
3247 | 3249 | ||
3248 | QETH_CARD_TEXT(card, 4, "qethopen"); | 3250 | QETH_CARD_TEXT(card, 4, "qethopen"); |
3251 | if (card->state == CARD_STATE_UP) | ||
3252 | return rc; | ||
3249 | if (card->state != CARD_STATE_SOFTSETUP) | 3253 | if (card->state != CARD_STATE_SOFTSETUP) |
3250 | return -ENODEV; | 3254 | return -ENODEV; |
3251 | card->data.state = CH_STATE_UP; | 3255 | card->data.state = CH_STATE_UP; |
@@ -3260,6 +3264,18 @@ static int qeth_l3_open(struct net_device *dev) | |||
3260 | return rc; | 3264 | return rc; |
3261 | } | 3265 | } |
3262 | 3266 | ||
3267 | static int qeth_l3_open(struct net_device *dev) | ||
3268 | { | ||
3269 | struct qeth_card *card = dev->ml_priv; | ||
3270 | |||
3271 | QETH_CARD_TEXT(card, 5, "qethope_"); | ||
3272 | if (qeth_wait_for_threads(card, QETH_RECOVER_THREAD)) { | ||
3273 | QETH_CARD_TEXT(card, 3, "openREC"); | ||
3274 | return -ERESTARTSYS; | ||
3275 | } | ||
3276 | return __qeth_l3_open(dev); | ||
3277 | } | ||
3278 | |||
3263 | static int qeth_l3_stop(struct net_device *dev) | 3279 | static int qeth_l3_stop(struct net_device *dev) |
3264 | { | 3280 | { |
3265 | struct qeth_card *card = dev->ml_priv; | 3281 | struct qeth_card *card = dev->ml_priv; |
@@ -3564,7 +3580,7 @@ contin: | |||
3564 | netif_carrier_off(card->dev); | 3580 | netif_carrier_off(card->dev); |
3565 | if (recover_flag == CARD_STATE_RECOVER) { | 3581 | if (recover_flag == CARD_STATE_RECOVER) { |
3566 | if (recovery_mode) | 3582 | if (recovery_mode) |
3567 | qeth_l3_open(card->dev); | 3583 | __qeth_l3_open(card->dev); |
3568 | else { | 3584 | else { |
3569 | rtnl_lock(); | 3585 | rtnl_lock(); |
3570 | dev_open(card->dev); | 3586 | dev_open(card->dev); |
diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig index 2d8cc455dbc7..42cdaa9a4d8a 100644 --- a/drivers/ssb/Kconfig +++ b/drivers/ssb/Kconfig | |||
@@ -82,7 +82,7 @@ config SSB_SDIOHOST | |||
82 | 82 | ||
83 | config SSB_SILENT | 83 | config SSB_SILENT |
84 | bool "No SSB kernel messages" | 84 | bool "No SSB kernel messages" |
85 | depends on SSB && EMBEDDED | 85 | depends on SSB && EXPERT |
86 | help | 86 | help |
87 | This option turns off all Sonics Silicon Backplane printks. | 87 | This option turns off all Sonics Silicon Backplane printks. |
88 | Note that you won't be able to identify problems, once | 88 | Note that you won't be able to identify problems, once |
diff --git a/drivers/tty/Makefile b/drivers/tty/Makefile index c43ef48b1a0f..396277216e4f 100644 --- a/drivers/tty/Makefile +++ b/drivers/tty/Makefile | |||
@@ -9,3 +9,5 @@ obj-$(CONFIG_N_GSM) += n_gsm.o | |||
9 | obj-$(CONFIG_R3964) += n_r3964.o | 9 | obj-$(CONFIG_R3964) += n_r3964.o |
10 | 10 | ||
11 | obj-y += vt/ | 11 | obj-y += vt/ |
12 | obj-$(CONFIG_HVC_DRIVER) += hvc/ | ||
13 | obj-y += serial/ | ||
diff --git a/drivers/tty/hvc/Makefile b/drivers/tty/hvc/Makefile new file mode 100644 index 000000000000..e6bed5f177ff --- /dev/null +++ b/drivers/tty/hvc/Makefile | |||
@@ -0,0 +1,13 @@ | |||
1 | obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o | ||
2 | obj-$(CONFIG_HVC_ISERIES) += hvc_iseries.o | ||
3 | obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o | ||
4 | obj-$(CONFIG_HVC_TILE) += hvc_tile.o | ||
5 | obj-$(CONFIG_HVC_DCC) += hvc_dcc.o | ||
6 | obj-$(CONFIG_HVC_BEAT) += hvc_beat.o | ||
7 | obj-$(CONFIG_HVC_DRIVER) += hvc_console.o | ||
8 | obj-$(CONFIG_HVC_IRQ) += hvc_irq.o | ||
9 | obj-$(CONFIG_HVC_XEN) += hvc_xen.o | ||
10 | obj-$(CONFIG_HVC_IUCV) += hvc_iucv.o | ||
11 | obj-$(CONFIG_HVC_UDBG) += hvc_udbg.o | ||
12 | obj-$(CONFIG_HVCS) += hvcs.o | ||
13 | obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o | ||
diff --git a/drivers/char/hvc_beat.c b/drivers/tty/hvc/hvc_beat.c index 5fe4631e2a61..5fe4631e2a61 100644 --- a/drivers/char/hvc_beat.c +++ b/drivers/tty/hvc/hvc_beat.c | |||
diff --git a/drivers/char/hvc_console.c b/drivers/tty/hvc/hvc_console.c index e9cba13ee800..e9cba13ee800 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/tty/hvc/hvc_console.c | |||
diff --git a/drivers/char/hvc_console.h b/drivers/tty/hvc/hvc_console.h index 54381eba4e4a..54381eba4e4a 100644 --- a/drivers/char/hvc_console.h +++ b/drivers/tty/hvc/hvc_console.h | |||
diff --git a/drivers/char/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c index 6470f63deb4b..6470f63deb4b 100644 --- a/drivers/char/hvc_dcc.c +++ b/drivers/tty/hvc/hvc_dcc.c | |||
diff --git a/drivers/char/hvc_irq.c b/drivers/tty/hvc/hvc_irq.c index 2623e177e8d6..2623e177e8d6 100644 --- a/drivers/char/hvc_irq.c +++ b/drivers/tty/hvc/hvc_irq.c | |||
diff --git a/drivers/char/hvc_iseries.c b/drivers/tty/hvc/hvc_iseries.c index 21c54955084e..21c54955084e 100644 --- a/drivers/char/hvc_iseries.c +++ b/drivers/tty/hvc/hvc_iseries.c | |||
diff --git a/drivers/char/hvc_iucv.c b/drivers/tty/hvc/hvc_iucv.c index c3425bb3a1f6..c3425bb3a1f6 100644 --- a/drivers/char/hvc_iucv.c +++ b/drivers/tty/hvc/hvc_iucv.c | |||
diff --git a/drivers/char/hvc_rtas.c b/drivers/tty/hvc/hvc_rtas.c index 61c4a61558d9..61c4a61558d9 100644 --- a/drivers/char/hvc_rtas.c +++ b/drivers/tty/hvc/hvc_rtas.c | |||
diff --git a/drivers/char/hvc_tile.c b/drivers/tty/hvc/hvc_tile.c index 7a84a0595477..7a84a0595477 100644 --- a/drivers/char/hvc_tile.c +++ b/drivers/tty/hvc/hvc_tile.c | |||
diff --git a/drivers/char/hvc_udbg.c b/drivers/tty/hvc/hvc_udbg.c index b0957e61a7be..b0957e61a7be 100644 --- a/drivers/char/hvc_udbg.c +++ b/drivers/tty/hvc/hvc_udbg.c | |||
diff --git a/drivers/char/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c index 5e2f52b33327..5e2f52b33327 100644 --- a/drivers/char/hvc_vio.c +++ b/drivers/tty/hvc/hvc_vio.c | |||
diff --git a/drivers/char/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c index 3740e327f180..3740e327f180 100644 --- a/drivers/char/hvc_xen.c +++ b/drivers/tty/hvc/hvc_xen.c | |||
diff --git a/drivers/char/hvcs.c b/drivers/tty/hvc/hvcs.c index bedc6c1b6fa5..bedc6c1b6fa5 100644 --- a/drivers/char/hvcs.c +++ b/drivers/tty/hvc/hvcs.c | |||
diff --git a/drivers/char/hvsi.c b/drivers/tty/hvc/hvsi.c index 67a75a502c01..67a75a502c01 100644 --- a/drivers/char/hvsi.c +++ b/drivers/tty/hvc/hvsi.c | |||
diff --git a/drivers/char/virtio_console.c b/drivers/tty/hvc/virtio_console.c index 896a2ced1d27..896a2ced1d27 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/tty/hvc/virtio_console.c | |||
diff --git a/drivers/serial/21285.c b/drivers/tty/serial/21285.c index d89aa38c5cf0..d89aa38c5cf0 100644 --- a/drivers/serial/21285.c +++ b/drivers/tty/serial/21285.c | |||
diff --git a/drivers/serial/68328serial.c b/drivers/tty/serial/68328serial.c index be0ebce36e54..be0ebce36e54 100644 --- a/drivers/serial/68328serial.c +++ b/drivers/tty/serial/68328serial.c | |||
diff --git a/drivers/serial/68328serial.h b/drivers/tty/serial/68328serial.h index 664ceb0a158c..664ceb0a158c 100644 --- a/drivers/serial/68328serial.h +++ b/drivers/tty/serial/68328serial.h | |||
diff --git a/drivers/serial/68360serial.c b/drivers/tty/serial/68360serial.c index 88b13356ec10..88b13356ec10 100644 --- a/drivers/serial/68360serial.c +++ b/drivers/tty/serial/68360serial.c | |||
diff --git a/drivers/serial/8250.c b/drivers/tty/serial/8250.c index b25e6e490530..b25e6e490530 100644 --- a/drivers/serial/8250.c +++ b/drivers/tty/serial/8250.c | |||
diff --git a/drivers/serial/8250.h b/drivers/tty/serial/8250.h index 6e19ea3e48d5..6e19ea3e48d5 100644 --- a/drivers/serial/8250.h +++ b/drivers/tty/serial/8250.h | |||
diff --git a/drivers/serial/8250_accent.c b/drivers/tty/serial/8250_accent.c index 9c10262f2469..9c10262f2469 100644 --- a/drivers/serial/8250_accent.c +++ b/drivers/tty/serial/8250_accent.c | |||
diff --git a/drivers/serial/8250_acorn.c b/drivers/tty/serial/8250_acorn.c index b0ce8c56f1a4..b0ce8c56f1a4 100644 --- a/drivers/serial/8250_acorn.c +++ b/drivers/tty/serial/8250_acorn.c | |||
diff --git a/drivers/serial/8250_boca.c b/drivers/tty/serial/8250_boca.c index 3bfe0f7b26fb..3bfe0f7b26fb 100644 --- a/drivers/serial/8250_boca.c +++ b/drivers/tty/serial/8250_boca.c | |||
diff --git a/drivers/serial/8250_early.c b/drivers/tty/serial/8250_early.c index eaafb98debed..eaafb98debed 100644 --- a/drivers/serial/8250_early.c +++ b/drivers/tty/serial/8250_early.c | |||
diff --git a/drivers/serial/8250_exar_st16c554.c b/drivers/tty/serial/8250_exar_st16c554.c index 567143ace159..567143ace159 100644 --- a/drivers/serial/8250_exar_st16c554.c +++ b/drivers/tty/serial/8250_exar_st16c554.c | |||
diff --git a/drivers/serial/8250_fourport.c b/drivers/tty/serial/8250_fourport.c index 6375d68b7913..6375d68b7913 100644 --- a/drivers/serial/8250_fourport.c +++ b/drivers/tty/serial/8250_fourport.c | |||
diff --git a/drivers/serial/8250_gsc.c b/drivers/tty/serial/8250_gsc.c index d8c0ffbfa6e3..d8c0ffbfa6e3 100644 --- a/drivers/serial/8250_gsc.c +++ b/drivers/tty/serial/8250_gsc.c | |||
diff --git a/drivers/serial/8250_hp300.c b/drivers/tty/serial/8250_hp300.c index c13438c93012..c13438c93012 100644 --- a/drivers/serial/8250_hp300.c +++ b/drivers/tty/serial/8250_hp300.c | |||
diff --git a/drivers/serial/8250_hub6.c b/drivers/tty/serial/8250_hub6.c index 7609150e7d5e..7609150e7d5e 100644 --- a/drivers/serial/8250_hub6.c +++ b/drivers/tty/serial/8250_hub6.c | |||
diff --git a/drivers/serial/8250_mca.c b/drivers/tty/serial/8250_mca.c index d10be944ad44..d10be944ad44 100644 --- a/drivers/serial/8250_mca.c +++ b/drivers/tty/serial/8250_mca.c | |||
diff --git a/drivers/serial/8250_pci.c b/drivers/tty/serial/8250_pci.c index 8b8930f700b5..8b8930f700b5 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/tty/serial/8250_pci.c | |||
diff --git a/drivers/serial/8250_pnp.c b/drivers/tty/serial/8250_pnp.c index 4822cb50cd0f..4822cb50cd0f 100644 --- a/drivers/serial/8250_pnp.c +++ b/drivers/tty/serial/8250_pnp.c | |||
diff --git a/drivers/serial/Kconfig b/drivers/tty/serial/Kconfig index c1df7676a73d..b1682d7f1d8a 100644 --- a/drivers/serial/Kconfig +++ b/drivers/tty/serial/Kconfig | |||
@@ -81,7 +81,7 @@ config SERIAL_8250_GSC | |||
81 | default SERIAL_8250 | 81 | default SERIAL_8250 |
82 | 82 | ||
83 | config SERIAL_8250_PCI | 83 | config SERIAL_8250_PCI |
84 | tristate "8250/16550 PCI device support" if EMBEDDED | 84 | tristate "8250/16550 PCI device support" if EXPERT |
85 | depends on SERIAL_8250 && PCI | 85 | depends on SERIAL_8250 && PCI |
86 | default SERIAL_8250 | 86 | default SERIAL_8250 |
87 | help | 87 | help |
@@ -90,7 +90,7 @@ config SERIAL_8250_PCI | |||
90 | Saves about 9K. | 90 | Saves about 9K. |
91 | 91 | ||
92 | config SERIAL_8250_PNP | 92 | config SERIAL_8250_PNP |
93 | tristate "8250/16550 PNP device support" if EMBEDDED | 93 | tristate "8250/16550 PNP device support" if EXPERT |
94 | depends on SERIAL_8250 && PNP | 94 | depends on SERIAL_8250 && PNP |
95 | default SERIAL_8250 | 95 | default SERIAL_8250 |
96 | help | 96 | help |
diff --git a/drivers/serial/Makefile b/drivers/tty/serial/Makefile index 8ea92e9c73b0..8ea92e9c73b0 100644 --- a/drivers/serial/Makefile +++ b/drivers/tty/serial/Makefile | |||
diff --git a/drivers/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c index f9b49b5ff5e1..f9b49b5ff5e1 100644 --- a/drivers/serial/altera_jtaguart.c +++ b/drivers/tty/serial/altera_jtaguart.c | |||
diff --git a/drivers/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c index 721216292a50..721216292a50 100644 --- a/drivers/serial/altera_uart.c +++ b/drivers/tty/serial/altera_uart.c | |||
diff --git a/drivers/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c index 2904aa044126..2904aa044126 100644 --- a/drivers/serial/amba-pl010.c +++ b/drivers/tty/serial/amba-pl010.c | |||
diff --git a/drivers/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index e76d7d000128..e76d7d000128 100644 --- a/drivers/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c | |||
diff --git a/drivers/serial/apbuart.c b/drivers/tty/serial/apbuart.c index 095a5d562618..095a5d562618 100644 --- a/drivers/serial/apbuart.c +++ b/drivers/tty/serial/apbuart.c | |||
diff --git a/drivers/serial/apbuart.h b/drivers/tty/serial/apbuart.h index 5faf87c8d2bc..5faf87c8d2bc 100644 --- a/drivers/serial/apbuart.h +++ b/drivers/tty/serial/apbuart.h | |||
diff --git a/drivers/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c index 2a1d52fb4936..2a1d52fb4936 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c | |||
diff --git a/drivers/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c index a1a0e55d0807..a1a0e55d0807 100644 --- a/drivers/serial/bcm63xx_uart.c +++ b/drivers/tty/serial/bcm63xx_uart.c | |||
diff --git a/drivers/serial/bfin_5xx.c b/drivers/tty/serial/bfin_5xx.c index e381b895b04d..e381b895b04d 100644 --- a/drivers/serial/bfin_5xx.c +++ b/drivers/tty/serial/bfin_5xx.c | |||
diff --git a/drivers/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c index e95c524d9d18..e95c524d9d18 100644 --- a/drivers/serial/bfin_sport_uart.c +++ b/drivers/tty/serial/bfin_sport_uart.c | |||
diff --git a/drivers/serial/bfin_sport_uart.h b/drivers/tty/serial/bfin_sport_uart.h index 6d06ce1d5675..6d06ce1d5675 100644 --- a/drivers/serial/bfin_sport_uart.h +++ b/drivers/tty/serial/bfin_sport_uart.h | |||
diff --git a/drivers/serial/clps711x.c b/drivers/tty/serial/clps711x.c index b6acd19b458e..b6acd19b458e 100644 --- a/drivers/serial/clps711x.c +++ b/drivers/tty/serial/clps711x.c | |||
diff --git a/drivers/serial/cpm_uart/Makefile b/drivers/tty/serial/cpm_uart/Makefile index e072724ea754..e072724ea754 100644 --- a/drivers/serial/cpm_uart/Makefile +++ b/drivers/tty/serial/cpm_uart/Makefile | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart.h b/drivers/tty/serial/cpm_uart/cpm_uart.h index b754dcf0fda5..b754dcf0fda5 100644 --- a/drivers/serial/cpm_uart/cpm_uart.h +++ b/drivers/tty/serial/cpm_uart/cpm_uart.h | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c index 8692ff98fc07..8692ff98fc07 100644 --- a/drivers/serial/cpm_uart/cpm_uart_core.c +++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm1.c b/drivers/tty/serial/cpm_uart/cpm_uart_cpm1.c index 3fc1d66e32c6..3fc1d66e32c6 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm1.c +++ b/drivers/tty/serial/cpm_uart/cpm_uart_cpm1.c | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm1.h b/drivers/tty/serial/cpm_uart/cpm_uart_cpm1.h index 10eecd6af6d4..10eecd6af6d4 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm1.h +++ b/drivers/tty/serial/cpm_uart/cpm_uart_cpm1.h | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c index 814ac006393f..814ac006393f 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c | |||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.h b/drivers/tty/serial/cpm_uart/cpm_uart_cpm2.h index 7194c63dcf5f..7194c63dcf5f 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.h +++ b/drivers/tty/serial/cpm_uart/cpm_uart_cpm2.h | |||
diff --git a/drivers/serial/crisv10.c b/drivers/tty/serial/crisv10.c index bcc31f2140ac..bcc31f2140ac 100644 --- a/drivers/serial/crisv10.c +++ b/drivers/tty/serial/crisv10.c | |||
diff --git a/drivers/serial/crisv10.h b/drivers/tty/serial/crisv10.h index ea0beb46a10d..ea0beb46a10d 100644 --- a/drivers/serial/crisv10.h +++ b/drivers/tty/serial/crisv10.h | |||
diff --git a/drivers/serial/dz.c b/drivers/tty/serial/dz.c index 57421d776329..57421d776329 100644 --- a/drivers/serial/dz.c +++ b/drivers/tty/serial/dz.c | |||
diff --git a/drivers/serial/dz.h b/drivers/tty/serial/dz.h index faf169ed27b3..faf169ed27b3 100644 --- a/drivers/serial/dz.h +++ b/drivers/tty/serial/dz.h | |||
diff --git a/drivers/serial/icom.c b/drivers/tty/serial/icom.c index 53a468227056..53a468227056 100644 --- a/drivers/serial/icom.c +++ b/drivers/tty/serial/icom.c | |||
diff --git a/drivers/serial/icom.h b/drivers/tty/serial/icom.h index c8029e0025c9..c8029e0025c9 100644 --- a/drivers/serial/icom.h +++ b/drivers/tty/serial/icom.h | |||
diff --git a/drivers/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c index ab93763862d5..ab93763862d5 100644 --- a/drivers/serial/ifx6x60.c +++ b/drivers/tty/serial/ifx6x60.c | |||
diff --git a/drivers/serial/ifx6x60.h b/drivers/tty/serial/ifx6x60.h index deb7b8d977dc..deb7b8d977dc 100644 --- a/drivers/serial/ifx6x60.h +++ b/drivers/tty/serial/ifx6x60.h | |||
diff --git a/drivers/serial/imx.c b/drivers/tty/serial/imx.c index dfcf4b1878aa..dfcf4b1878aa 100644 --- a/drivers/serial/imx.c +++ b/drivers/tty/serial/imx.c | |||
diff --git a/drivers/serial/ioc3_serial.c b/drivers/tty/serial/ioc3_serial.c index ee43efc7bdcc..ee43efc7bdcc 100644 --- a/drivers/serial/ioc3_serial.c +++ b/drivers/tty/serial/ioc3_serial.c | |||
diff --git a/drivers/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c index fcfe82653ac8..fcfe82653ac8 100644 --- a/drivers/serial/ioc4_serial.c +++ b/drivers/tty/serial/ioc4_serial.c | |||
diff --git a/drivers/serial/ip22zilog.c b/drivers/tty/serial/ip22zilog.c index ebff4a1d4bcc..ebff4a1d4bcc 100644 --- a/drivers/serial/ip22zilog.c +++ b/drivers/tty/serial/ip22zilog.c | |||
diff --git a/drivers/serial/ip22zilog.h b/drivers/tty/serial/ip22zilog.h index a59a9a8341d2..a59a9a8341d2 100644 --- a/drivers/serial/ip22zilog.h +++ b/drivers/tty/serial/ip22zilog.h | |||
diff --git a/drivers/serial/jsm/Makefile b/drivers/tty/serial/jsm/Makefile index e46b6e0f8b18..e46b6e0f8b18 100644 --- a/drivers/serial/jsm/Makefile +++ b/drivers/tty/serial/jsm/Makefile | |||
diff --git a/drivers/serial/jsm/jsm.h b/drivers/tty/serial/jsm/jsm.h index 38a509c684cd..38a509c684cd 100644 --- a/drivers/serial/jsm/jsm.h +++ b/drivers/tty/serial/jsm/jsm.h | |||
diff --git a/drivers/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c index 18f548449c63..18f548449c63 100644 --- a/drivers/serial/jsm/jsm_driver.c +++ b/drivers/tty/serial/jsm/jsm_driver.c | |||
diff --git a/drivers/serial/jsm/jsm_neo.c b/drivers/tty/serial/jsm/jsm_neo.c index 7960d9633c15..7960d9633c15 100644 --- a/drivers/serial/jsm/jsm_neo.c +++ b/drivers/tty/serial/jsm/jsm_neo.c | |||
diff --git a/drivers/serial/jsm/jsm_tty.c b/drivers/tty/serial/jsm/jsm_tty.c index 7a4a914ecff0..7a4a914ecff0 100644 --- a/drivers/serial/jsm/jsm_tty.c +++ b/drivers/tty/serial/jsm/jsm_tty.c | |||
diff --git a/drivers/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c index 25a8bc565f40..25a8bc565f40 100644 --- a/drivers/serial/kgdboc.c +++ b/drivers/tty/serial/kgdboc.c | |||
diff --git a/drivers/serial/m32r_sio.c b/drivers/tty/serial/m32r_sio.c index bea5c215460c..bea5c215460c 100644 --- a/drivers/serial/m32r_sio.c +++ b/drivers/tty/serial/m32r_sio.c | |||
diff --git a/drivers/serial/m32r_sio.h b/drivers/tty/serial/m32r_sio.h index e9b7e11793b1..e9b7e11793b1 100644 --- a/drivers/serial/m32r_sio.h +++ b/drivers/tty/serial/m32r_sio.h | |||
diff --git a/drivers/serial/m32r_sio_reg.h b/drivers/tty/serial/m32r_sio_reg.h index 4671473793e3..4671473793e3 100644 --- a/drivers/serial/m32r_sio_reg.h +++ b/drivers/tty/serial/m32r_sio_reg.h | |||
diff --git a/drivers/serial/max3100.c b/drivers/tty/serial/max3100.c index beb1afa27d8d..beb1afa27d8d 100644 --- a/drivers/serial/max3100.c +++ b/drivers/tty/serial/max3100.c | |||
diff --git a/drivers/serial/max3107-aava.c b/drivers/tty/serial/max3107-aava.c index a1fe304f2f52..a1fe304f2f52 100644 --- a/drivers/serial/max3107-aava.c +++ b/drivers/tty/serial/max3107-aava.c | |||
diff --git a/drivers/serial/max3107.c b/drivers/tty/serial/max3107.c index 910870edf708..910870edf708 100644 --- a/drivers/serial/max3107.c +++ b/drivers/tty/serial/max3107.c | |||
diff --git a/drivers/serial/max3107.h b/drivers/tty/serial/max3107.h index 7ab632392502..7ab632392502 100644 --- a/drivers/serial/max3107.h +++ b/drivers/tty/serial/max3107.h | |||
diff --git a/drivers/serial/mcf.c b/drivers/tty/serial/mcf.c index 3394b7cc1722..3394b7cc1722 100644 --- a/drivers/serial/mcf.c +++ b/drivers/tty/serial/mcf.c | |||
diff --git a/drivers/serial/mfd.c b/drivers/tty/serial/mfd.c index d40010a22ecd..d40010a22ecd 100644 --- a/drivers/serial/mfd.c +++ b/drivers/tty/serial/mfd.c | |||
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c index 126ec7f568ec..126ec7f568ec 100644 --- a/drivers/serial/mpc52xx_uart.c +++ b/drivers/tty/serial/mpc52xx_uart.c | |||
diff --git a/drivers/serial/mpsc.c b/drivers/tty/serial/mpsc.c index 6a9c6605666a..6a9c6605666a 100644 --- a/drivers/serial/mpsc.c +++ b/drivers/tty/serial/mpsc.c | |||
diff --git a/drivers/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c index b62857bf2fdb..b62857bf2fdb 100644 --- a/drivers/serial/mrst_max3110.c +++ b/drivers/tty/serial/mrst_max3110.c | |||
diff --git a/drivers/serial/mrst_max3110.h b/drivers/tty/serial/mrst_max3110.h index d1ef43af397c..d1ef43af397c 100644 --- a/drivers/serial/mrst_max3110.h +++ b/drivers/tty/serial/mrst_max3110.h | |||
diff --git a/drivers/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c index 8e43a7b69e64..8e43a7b69e64 100644 --- a/drivers/serial/msm_serial.c +++ b/drivers/tty/serial/msm_serial.c | |||
diff --git a/drivers/serial/msm_serial.h b/drivers/tty/serial/msm_serial.h index f6ca9ca79e98..f6ca9ca79e98 100644 --- a/drivers/serial/msm_serial.h +++ b/drivers/tty/serial/msm_serial.h | |||
diff --git a/drivers/serial/mux.c b/drivers/tty/serial/mux.c index 9711e06a8374..9711e06a8374 100644 --- a/drivers/serial/mux.c +++ b/drivers/tty/serial/mux.c | |||
diff --git a/drivers/serial/netx-serial.c b/drivers/tty/serial/netx-serial.c index 7735c9f35fa0..7735c9f35fa0 100644 --- a/drivers/serial/netx-serial.c +++ b/drivers/tty/serial/netx-serial.c | |||
diff --git a/drivers/serial/nwpserial.c b/drivers/tty/serial/nwpserial.c index de173671e3d0..de173671e3d0 100644 --- a/drivers/serial/nwpserial.c +++ b/drivers/tty/serial/nwpserial.c | |||
diff --git a/drivers/serial/of_serial.c b/drivers/tty/serial/of_serial.c index 5c7abe4c94dd..5c7abe4c94dd 100644 --- a/drivers/serial/of_serial.c +++ b/drivers/tty/serial/of_serial.c | |||
diff --git a/drivers/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 7f2f01058789..7f2f01058789 100644 --- a/drivers/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c | |||
diff --git a/drivers/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c index 70a61458ec42..70a61458ec42 100644 --- a/drivers/serial/pch_uart.c +++ b/drivers/tty/serial/pch_uart.c | |||
diff --git a/drivers/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c index 5b9cde79e4ea..5b9cde79e4ea 100644 --- a/drivers/serial/pmac_zilog.c +++ b/drivers/tty/serial/pmac_zilog.c | |||
diff --git a/drivers/serial/pmac_zilog.h b/drivers/tty/serial/pmac_zilog.h index cbc34fbb1b20..cbc34fbb1b20 100644 --- a/drivers/serial/pmac_zilog.h +++ b/drivers/tty/serial/pmac_zilog.h | |||
diff --git a/drivers/serial/pnx8xxx_uart.c b/drivers/tty/serial/pnx8xxx_uart.c index 0aa75a97531c..0aa75a97531c 100644 --- a/drivers/serial/pnx8xxx_uart.c +++ b/drivers/tty/serial/pnx8xxx_uart.c | |||
diff --git a/drivers/serial/pxa.c b/drivers/tty/serial/pxa.c index 1102a39b44f5..1102a39b44f5 100644 --- a/drivers/serial/pxa.c +++ b/drivers/tty/serial/pxa.c | |||
diff --git a/drivers/serial/s3c2400.c b/drivers/tty/serial/s3c2400.c index fed1a9a1ffb4..fed1a9a1ffb4 100644 --- a/drivers/serial/s3c2400.c +++ b/drivers/tty/serial/s3c2400.c | |||
diff --git a/drivers/serial/s3c2410.c b/drivers/tty/serial/s3c2410.c index 73f089d3efd6..73f089d3efd6 100644 --- a/drivers/serial/s3c2410.c +++ b/drivers/tty/serial/s3c2410.c | |||
diff --git a/drivers/serial/s3c2412.c b/drivers/tty/serial/s3c2412.c index 1700b1a2fb7e..1700b1a2fb7e 100644 --- a/drivers/serial/s3c2412.c +++ b/drivers/tty/serial/s3c2412.c | |||
diff --git a/drivers/serial/s3c2440.c b/drivers/tty/serial/s3c2440.c index 094cc3904b13..094cc3904b13 100644 --- a/drivers/serial/s3c2440.c +++ b/drivers/tty/serial/s3c2440.c | |||
diff --git a/drivers/serial/s3c24a0.c b/drivers/tty/serial/s3c24a0.c index fad6083ca427..fad6083ca427 100644 --- a/drivers/serial/s3c24a0.c +++ b/drivers/tty/serial/s3c24a0.c | |||
diff --git a/drivers/serial/s3c6400.c b/drivers/tty/serial/s3c6400.c index 4be92ab50058..4be92ab50058 100644 --- a/drivers/serial/s3c6400.c +++ b/drivers/tty/serial/s3c6400.c | |||
diff --git a/drivers/serial/s5pv210.c b/drivers/tty/serial/s5pv210.c index 6ebccd70a707..6ebccd70a707 100644 --- a/drivers/serial/s5pv210.c +++ b/drivers/tty/serial/s5pv210.c | |||
diff --git a/drivers/serial/sa1100.c b/drivers/tty/serial/sa1100.c index 2199d819a987..2199d819a987 100644 --- a/drivers/serial/sa1100.c +++ b/drivers/tty/serial/sa1100.c | |||
diff --git a/drivers/serial/samsung.c b/drivers/tty/serial/samsung.c index 2335edafe903..2335edafe903 100644 --- a/drivers/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
diff --git a/drivers/serial/samsung.h b/drivers/tty/serial/samsung.h index 0ac06a07d25f..0ac06a07d25f 100644 --- a/drivers/serial/samsung.h +++ b/drivers/tty/serial/samsung.h | |||
diff --git a/drivers/serial/sb1250-duart.c b/drivers/tty/serial/sb1250-duart.c index a2f2b3254499..a2f2b3254499 100644 --- a/drivers/serial/sb1250-duart.c +++ b/drivers/tty/serial/sb1250-duart.c | |||
diff --git a/drivers/serial/sc26xx.c b/drivers/tty/serial/sc26xx.c index 75038ad2b242..75038ad2b242 100644 --- a/drivers/serial/sc26xx.c +++ b/drivers/tty/serial/sc26xx.c | |||
diff --git a/drivers/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 460a72d91bb7..460a72d91bb7 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c | |||
diff --git a/drivers/serial/serial_cs.c b/drivers/tty/serial/serial_cs.c index 93760b2ea172..93760b2ea172 100644 --- a/drivers/serial/serial_cs.c +++ b/drivers/tty/serial/serial_cs.c | |||
diff --git a/drivers/serial/serial_ks8695.c b/drivers/tty/serial/serial_ks8695.c index b1962025b1aa..b1962025b1aa 100644 --- a/drivers/serial/serial_ks8695.c +++ b/drivers/tty/serial/serial_ks8695.c | |||
diff --git a/drivers/serial/serial_lh7a40x.c b/drivers/tty/serial/serial_lh7a40x.c index ea744707c4d6..ea744707c4d6 100644 --- a/drivers/serial/serial_lh7a40x.c +++ b/drivers/tty/serial/serial_lh7a40x.c | |||
diff --git a/drivers/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c index c50e9fbbf743..c50e9fbbf743 100644 --- a/drivers/serial/serial_txx9.c +++ b/drivers/tty/serial/serial_txx9.c | |||
diff --git a/drivers/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 92c91c83edde..92c91c83edde 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c | |||
diff --git a/drivers/serial/sh-sci.h b/drivers/tty/serial/sh-sci.h index b223d6cbf33a..b223d6cbf33a 100644 --- a/drivers/serial/sh-sci.h +++ b/drivers/tty/serial/sh-sci.h | |||
diff --git a/drivers/serial/sn_console.c b/drivers/tty/serial/sn_console.c index cff9a306660f..cff9a306660f 100644 --- a/drivers/serial/sn_console.c +++ b/drivers/tty/serial/sn_console.c | |||
diff --git a/drivers/serial/suncore.c b/drivers/tty/serial/suncore.c index 6381a0282ee7..6381a0282ee7 100644 --- a/drivers/serial/suncore.c +++ b/drivers/tty/serial/suncore.c | |||
diff --git a/drivers/serial/suncore.h b/drivers/tty/serial/suncore.h index db2057936c31..db2057936c31 100644 --- a/drivers/serial/suncore.h +++ b/drivers/tty/serial/suncore.h | |||
diff --git a/drivers/serial/sunhv.c b/drivers/tty/serial/sunhv.c index c9014868297d..c9014868297d 100644 --- a/drivers/serial/sunhv.c +++ b/drivers/tty/serial/sunhv.c | |||
diff --git a/drivers/serial/sunsab.c b/drivers/tty/serial/sunsab.c index 5b246b18f42f..5b246b18f42f 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/tty/serial/sunsab.c | |||
diff --git a/drivers/serial/sunsab.h b/drivers/tty/serial/sunsab.h index b78e1f7b8050..b78e1f7b8050 100644 --- a/drivers/serial/sunsab.h +++ b/drivers/tty/serial/sunsab.h | |||
diff --git a/drivers/serial/sunsu.c b/drivers/tty/serial/sunsu.c index 551ebfe3ccbb..551ebfe3ccbb 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/tty/serial/sunsu.c | |||
diff --git a/drivers/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c index c1967ac1c07f..c1967ac1c07f 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/tty/serial/sunzilog.c | |||
diff --git a/drivers/serial/sunzilog.h b/drivers/tty/serial/sunzilog.h index 5dec7b47cc38..5dec7b47cc38 100644 --- a/drivers/serial/sunzilog.h +++ b/drivers/tty/serial/sunzilog.h | |||
diff --git a/drivers/serial/timbuart.c b/drivers/tty/serial/timbuart.c index 1f36b7eb7351..1f36b7eb7351 100644 --- a/drivers/serial/timbuart.c +++ b/drivers/tty/serial/timbuart.c | |||
diff --git a/drivers/serial/timbuart.h b/drivers/tty/serial/timbuart.h index 7e566766bc43..7e566766bc43 100644 --- a/drivers/serial/timbuart.h +++ b/drivers/tty/serial/timbuart.h | |||
diff --git a/drivers/serial/uartlite.c b/drivers/tty/serial/uartlite.c index d2fce865b731..d2fce865b731 100644 --- a/drivers/serial/uartlite.c +++ b/drivers/tty/serial/uartlite.c | |||
diff --git a/drivers/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c index 3f4848e2174a..3f4848e2174a 100644 --- a/drivers/serial/ucc_uart.c +++ b/drivers/tty/serial/ucc_uart.c | |||
diff --git a/drivers/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c index 3beb6ab4fa68..3beb6ab4fa68 100644 --- a/drivers/serial/vr41xx_siu.c +++ b/drivers/tty/serial/vr41xx_siu.c | |||
diff --git a/drivers/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c index 322bf56c0d89..322bf56c0d89 100644 --- a/drivers/serial/vt8500_serial.c +++ b/drivers/tty/serial/vt8500_serial.c | |||
diff --git a/drivers/serial/zs.c b/drivers/tty/serial/zs.c index 1a7fd3e70315..1a7fd3e70315 100644 --- a/drivers/serial/zs.c +++ b/drivers/tty/serial/zs.c | |||
diff --git a/drivers/serial/zs.h b/drivers/tty/serial/zs.h index aa921b57d827..aa921b57d827 100644 --- a/drivers/serial/zs.h +++ b/drivers/tty/serial/zs.h | |||
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig index bcc24779ba0e..18d02e32a3d5 100644 --- a/drivers/usb/core/Kconfig +++ b/drivers/usb/core/Kconfig | |||
@@ -123,9 +123,9 @@ config USB_OTG | |||
123 | 123 | ||
124 | config USB_OTG_WHITELIST | 124 | config USB_OTG_WHITELIST |
125 | bool "Rely on OTG Targeted Peripherals List" | 125 | bool "Rely on OTG Targeted Peripherals List" |
126 | depends on USB_OTG || EMBEDDED | 126 | depends on USB_OTG || EXPERT |
127 | default y if USB_OTG | 127 | default y if USB_OTG |
128 | default n if EMBEDDED | 128 | default n if EXPERT |
129 | help | 129 | help |
130 | If you say Y here, the "otg_whitelist.h" file will be used as a | 130 | If you say Y here, the "otg_whitelist.h" file will be used as a |
131 | product whitelist, so USB peripherals not listed there will be | 131 | product whitelist, so USB peripherals not listed there will be |
@@ -141,7 +141,7 @@ config USB_OTG_WHITELIST | |||
141 | 141 | ||
142 | config USB_OTG_BLACKLIST_HUB | 142 | config USB_OTG_BLACKLIST_HUB |
143 | bool "Disable external hubs" | 143 | bool "Disable external hubs" |
144 | depends on USB_OTG || EMBEDDED | 144 | depends on USB_OTG || EXPERT |
145 | help | 145 | help |
146 | If you say Y here, then Linux will refuse to enumerate | 146 | If you say Y here, then Linux will refuse to enumerate |
147 | external hubs. OTG hosts are allowed to reduce hardware | 147 | external hubs. OTG hosts are allowed to reduce hardware |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index d916ac04abab..6bafb51bb437 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -1227,7 +1227,7 @@ config FB_CARILLO_RANCH | |||
1227 | 1227 | ||
1228 | config FB_INTEL | 1228 | config FB_INTEL |
1229 | tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support (EXPERIMENTAL)" | 1229 | tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support (EXPERIMENTAL)" |
1230 | depends on EXPERIMENTAL && FB && PCI && X86 && AGP_INTEL && EMBEDDED | 1230 | depends on EXPERIMENTAL && FB && PCI && X86 && AGP_INTEL && EXPERT |
1231 | select FB_MODE_HELPERS | 1231 | select FB_MODE_HELPERS |
1232 | select FB_CFB_FILLRECT | 1232 | select FB_CFB_FILLRECT |
1233 | select FB_CFB_COPYAREA | 1233 | select FB_CFB_COPYAREA |
diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c index c789c46e38af..b224396b86d5 100644 --- a/drivers/video/backlight/88pm860x_bl.c +++ b/drivers/video/backlight/88pm860x_bl.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #define MAX_BRIGHTNESS (0xFF) | 21 | #define MAX_BRIGHTNESS (0xFF) |
22 | #define MIN_BRIGHTNESS (0) | 22 | #define MIN_BRIGHTNESS (0) |
23 | 23 | ||
24 | #define CURRENT_MASK (0x1F << 1) | 24 | #define CURRENT_BITMASK (0x1F << 1) |
25 | 25 | ||
26 | struct pm860x_backlight_data { | 26 | struct pm860x_backlight_data { |
27 | struct pm860x_chip *chip; | 27 | struct pm860x_chip *chip; |
@@ -85,7 +85,7 @@ static int pm860x_backlight_set(struct backlight_device *bl, int brightness) | |||
85 | if ((data->current_brightness == 0) && brightness) { | 85 | if ((data->current_brightness == 0) && brightness) { |
86 | if (data->iset) { | 86 | if (data->iset) { |
87 | ret = pm860x_set_bits(data->i2c, wled_idc(data->port), | 87 | ret = pm860x_set_bits(data->i2c, wled_idc(data->port), |
88 | CURRENT_MASK, data->iset); | 88 | CURRENT_BITMASK, data->iset); |
89 | if (ret < 0) | 89 | if (ret < 0) |
90 | goto out; | 90 | goto out; |
91 | } | 91 | } |
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index 5a35f22372b9..2209e354f531 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | menu "Console display driver support" | 5 | menu "Console display driver support" |
6 | 6 | ||
7 | config VGA_CONSOLE | 7 | config VGA_CONSOLE |
8 | bool "VGA text console" if EMBEDDED || !X86 | 8 | bool "VGA text console" if EXPERT || !X86 |
9 | depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) | 9 | depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) |
10 | default y | 10 | default y |
11 | help | 11 | help |
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index ef8d9d558fc7..4fb5b2bf2348 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c | |||
@@ -96,11 +96,6 @@ static struct pci_device_id virtio_pci_id_table[] = { | |||
96 | 96 | ||
97 | MODULE_DEVICE_TABLE(pci, virtio_pci_id_table); | 97 | MODULE_DEVICE_TABLE(pci, virtio_pci_id_table); |
98 | 98 | ||
99 | /* A PCI device has it's own struct device and so does a virtio device so | ||
100 | * we create a place for the virtio devices to show up in sysfs. I think it | ||
101 | * would make more sense for virtio to not insist on having it's own device. */ | ||
102 | static struct device *virtio_pci_root; | ||
103 | |||
104 | /* Convert a generic virtio device to our structure */ | 99 | /* Convert a generic virtio device to our structure */ |
105 | static struct virtio_pci_device *to_vp_device(struct virtio_device *vdev) | 100 | static struct virtio_pci_device *to_vp_device(struct virtio_device *vdev) |
106 | { | 101 | { |
@@ -629,7 +624,7 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev, | |||
629 | if (vp_dev == NULL) | 624 | if (vp_dev == NULL) |
630 | return -ENOMEM; | 625 | return -ENOMEM; |
631 | 626 | ||
632 | vp_dev->vdev.dev.parent = virtio_pci_root; | 627 | vp_dev->vdev.dev.parent = &pci_dev->dev; |
633 | vp_dev->vdev.dev.release = virtio_pci_release_dev; | 628 | vp_dev->vdev.dev.release = virtio_pci_release_dev; |
634 | vp_dev->vdev.config = &virtio_pci_config_ops; | 629 | vp_dev->vdev.config = &virtio_pci_config_ops; |
635 | vp_dev->pci_dev = pci_dev; | 630 | vp_dev->pci_dev = pci_dev; |
@@ -717,17 +712,7 @@ static struct pci_driver virtio_pci_driver = { | |||
717 | 712 | ||
718 | static int __init virtio_pci_init(void) | 713 | static int __init virtio_pci_init(void) |
719 | { | 714 | { |
720 | int err; | 715 | return pci_register_driver(&virtio_pci_driver); |
721 | |||
722 | virtio_pci_root = root_device_register("virtio-pci"); | ||
723 | if (IS_ERR(virtio_pci_root)) | ||
724 | return PTR_ERR(virtio_pci_root); | ||
725 | |||
726 | err = pci_register_driver(&virtio_pci_driver); | ||
727 | if (err) | ||
728 | root_device_unregister(virtio_pci_root); | ||
729 | |||
730 | return err; | ||
731 | } | 716 | } |
732 | 717 | ||
733 | module_init(virtio_pci_init); | 718 | module_init(virtio_pci_init); |
@@ -735,7 +720,6 @@ module_init(virtio_pci_init); | |||
735 | static void __exit virtio_pci_exit(void) | 720 | static void __exit virtio_pci_exit(void) |
736 | { | 721 | { |
737 | pci_unregister_driver(&virtio_pci_driver); | 722 | pci_unregister_driver(&virtio_pci_driver); |
738 | root_device_unregister(virtio_pci_root); | ||
739 | } | 723 | } |
740 | 724 | ||
741 | module_exit(virtio_pci_exit); | 725 | module_exit(virtio_pci_exit); |
diff --git a/drivers/xen/xenfs/xenbus.c b/drivers/xen/xenfs/xenbus.c index 1c1236087f78..bbd000f88af7 100644 --- a/drivers/xen/xenfs/xenbus.c +++ b/drivers/xen/xenfs/xenbus.c | |||
@@ -122,6 +122,7 @@ static ssize_t xenbus_file_read(struct file *filp, | |||
122 | int ret; | 122 | int ret; |
123 | 123 | ||
124 | mutex_lock(&u->reply_mutex); | 124 | mutex_lock(&u->reply_mutex); |
125 | again: | ||
125 | while (list_empty(&u->read_buffers)) { | 126 | while (list_empty(&u->read_buffers)) { |
126 | mutex_unlock(&u->reply_mutex); | 127 | mutex_unlock(&u->reply_mutex); |
127 | if (filp->f_flags & O_NONBLOCK) | 128 | if (filp->f_flags & O_NONBLOCK) |
@@ -144,7 +145,7 @@ static ssize_t xenbus_file_read(struct file *filp, | |||
144 | i += sz - ret; | 145 | i += sz - ret; |
145 | rb->cons += sz - ret; | 146 | rb->cons += sz - ret; |
146 | 147 | ||
147 | if (ret != sz) { | 148 | if (ret != 0) { |
148 | if (i == 0) | 149 | if (i == 0) |
149 | i = -EFAULT; | 150 | i = -EFAULT; |
150 | goto out; | 151 | goto out; |
@@ -160,6 +161,8 @@ static ssize_t xenbus_file_read(struct file *filp, | |||
160 | struct read_buffer, list); | 161 | struct read_buffer, list); |
161 | } | 162 | } |
162 | } | 163 | } |
164 | if (i == 0) | ||
165 | goto again; | ||
163 | 166 | ||
164 | out: | 167 | out: |
165 | mutex_unlock(&u->reply_mutex); | 168 | mutex_unlock(&u->reply_mutex); |
@@ -407,6 +410,7 @@ static int xenbus_write_watch(unsigned msg_type, struct xenbus_file_priv *u) | |||
407 | 410 | ||
408 | mutex_lock(&u->reply_mutex); | 411 | mutex_lock(&u->reply_mutex); |
409 | rc = queue_reply(&u->read_buffers, &reply, sizeof(reply)); | 412 | rc = queue_reply(&u->read_buffers, &reply, sizeof(reply)); |
413 | wake_up(&u->read_waitq); | ||
410 | mutex_unlock(&u->reply_mutex); | 414 | mutex_unlock(&u->reply_mutex); |
411 | } | 415 | } |
412 | 416 | ||
@@ -455,7 +459,7 @@ static ssize_t xenbus_file_write(struct file *filp, | |||
455 | 459 | ||
456 | ret = copy_from_user(u->u.buffer + u->len, ubuf, len); | 460 | ret = copy_from_user(u->u.buffer + u->len, ubuf, len); |
457 | 461 | ||
458 | if (ret == len) { | 462 | if (ret != 0) { |
459 | rc = -EFAULT; | 463 | rc = -EFAULT; |
460 | goto out; | 464 | goto out; |
461 | } | 465 | } |
@@ -488,21 +492,6 @@ static ssize_t xenbus_file_write(struct file *filp, | |||
488 | msg_type = u->u.msg.type; | 492 | msg_type = u->u.msg.type; |
489 | 493 | ||
490 | switch (msg_type) { | 494 | switch (msg_type) { |
491 | case XS_TRANSACTION_START: | ||
492 | case XS_TRANSACTION_END: | ||
493 | case XS_DIRECTORY: | ||
494 | case XS_READ: | ||
495 | case XS_GET_PERMS: | ||
496 | case XS_RELEASE: | ||
497 | case XS_GET_DOMAIN_PATH: | ||
498 | case XS_WRITE: | ||
499 | case XS_MKDIR: | ||
500 | case XS_RM: | ||
501 | case XS_SET_PERMS: | ||
502 | /* Send out a transaction */ | ||
503 | ret = xenbus_write_transaction(msg_type, u); | ||
504 | break; | ||
505 | |||
506 | case XS_WATCH: | 495 | case XS_WATCH: |
507 | case XS_UNWATCH: | 496 | case XS_UNWATCH: |
508 | /* (Un)Ask for some path to be watched for changes */ | 497 | /* (Un)Ask for some path to be watched for changes */ |
@@ -510,7 +499,8 @@ static ssize_t xenbus_file_write(struct file *filp, | |||
510 | break; | 499 | break; |
511 | 500 | ||
512 | default: | 501 | default: |
513 | ret = -EINVAL; | 502 | /* Send out a transaction */ |
503 | ret = xenbus_write_transaction(msg_type, u); | ||
514 | break; | 504 | break; |
515 | } | 505 | } |
516 | if (ret != 0) | 506 | if (ret != 0) |
@@ -555,6 +545,7 @@ static int xenbus_file_release(struct inode *inode, struct file *filp) | |||
555 | struct xenbus_file_priv *u = filp->private_data; | 545 | struct xenbus_file_priv *u = filp->private_data; |
556 | struct xenbus_transaction_holder *trans, *tmp; | 546 | struct xenbus_transaction_holder *trans, *tmp; |
557 | struct watch_adapter *watch, *tmp_watch; | 547 | struct watch_adapter *watch, *tmp_watch; |
548 | struct read_buffer *rb, *tmp_rb; | ||
558 | 549 | ||
559 | /* | 550 | /* |
560 | * No need for locking here because there are no other users, | 551 | * No need for locking here because there are no other users, |
@@ -573,6 +564,10 @@ static int xenbus_file_release(struct inode *inode, struct file *filp) | |||
573 | free_watch_adapter(watch); | 564 | free_watch_adapter(watch); |
574 | } | 565 | } |
575 | 566 | ||
567 | list_for_each_entry_safe(rb, tmp_rb, &u->read_buffers, list) { | ||
568 | list_del(&rb->list); | ||
569 | kfree(rb); | ||
570 | } | ||
576 | kfree(u); | 571 | kfree(u); |
577 | 572 | ||
578 | return 0; | 573 | return 0; |
diff --git a/fs/Kconfig b/fs/Kconfig index 9a7921ae4763..3db9caa57edc 100644 --- a/fs/Kconfig +++ b/fs/Kconfig | |||
@@ -50,7 +50,7 @@ config EXPORTFS | |||
50 | tristate | 50 | tristate |
51 | 51 | ||
52 | config FILE_LOCKING | 52 | config FILE_LOCKING |
53 | bool "Enable POSIX file locking API" if EMBEDDED | 53 | bool "Enable POSIX file locking API" if EXPERT |
54 | default y | 54 | default y |
55 | help | 55 | help |
56 | This option enables standard file locking support, required | 56 | This option enables standard file locking support, required |
diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index ede98300a8cd..65829d32128c 100644 --- a/fs/cifs/cifs_debug.c +++ b/fs/cifs/cifs_debug.c | |||
@@ -79,11 +79,11 @@ void cifs_dump_mids(struct TCP_Server_Info *server) | |||
79 | spin_lock(&GlobalMid_Lock); | 79 | spin_lock(&GlobalMid_Lock); |
80 | list_for_each(tmp, &server->pending_mid_q) { | 80 | list_for_each(tmp, &server->pending_mid_q) { |
81 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); | 81 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); |
82 | cERROR(1, "State: %d Cmd: %d Pid: %d Tsk: %p Mid %d", | 82 | cERROR(1, "State: %d Cmd: %d Pid: %d Cbdata: %p Mid %d", |
83 | mid_entry->midState, | 83 | mid_entry->midState, |
84 | (int)mid_entry->command, | 84 | (int)mid_entry->command, |
85 | mid_entry->pid, | 85 | mid_entry->pid, |
86 | mid_entry->tsk, | 86 | mid_entry->callback_data, |
87 | mid_entry->mid); | 87 | mid_entry->mid); |
88 | #ifdef CONFIG_CIFS_STATS2 | 88 | #ifdef CONFIG_CIFS_STATS2 |
89 | cERROR(1, "IsLarge: %d buf: %p time rcv: %ld now: %ld", | 89 | cERROR(1, "IsLarge: %d buf: %p time rcv: %ld now: %ld", |
@@ -218,11 +218,11 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v) | |||
218 | mid_entry = list_entry(tmp3, struct mid_q_entry, | 218 | mid_entry = list_entry(tmp3, struct mid_q_entry, |
219 | qhead); | 219 | qhead); |
220 | seq_printf(m, "\tState: %d com: %d pid:" | 220 | seq_printf(m, "\tState: %d com: %d pid:" |
221 | " %d tsk: %p mid %d\n", | 221 | " %d cbdata: %p mid %d\n", |
222 | mid_entry->midState, | 222 | mid_entry->midState, |
223 | (int)mid_entry->command, | 223 | (int)mid_entry->command, |
224 | mid_entry->pid, | 224 | mid_entry->pid, |
225 | mid_entry->tsk, | 225 | mid_entry->callback_data, |
226 | mid_entry->mid); | 226 | mid_entry->mid); |
227 | } | 227 | } |
228 | spin_unlock(&GlobalMid_Lock); | 228 | spin_unlock(&GlobalMid_Lock); |
@@ -331,7 +331,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v) | |||
331 | atomic_read(&totSmBufAllocCount)); | 331 | atomic_read(&totSmBufAllocCount)); |
332 | #endif /* CONFIG_CIFS_STATS2 */ | 332 | #endif /* CONFIG_CIFS_STATS2 */ |
333 | 333 | ||
334 | seq_printf(m, "Operations (MIDs): %d\n", midCount.counter); | 334 | seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount)); |
335 | seq_printf(m, | 335 | seq_printf(m, |
336 | "\n%d session %d share reconnects\n", | 336 | "\n%d session %d share reconnects\n", |
337 | tcpSesReconnectCount.counter, tconInfoReconnectCount.counter); | 337 | tcpSesReconnectCount.counter, tconInfoReconnectCount.counter); |
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c index a437ec391a01..1e7636b145a8 100644 --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c | |||
@@ -41,9 +41,12 @@ static struct cifs_wksid wksidarr[NUM_WK_SIDS] = { | |||
41 | ; | 41 | ; |
42 | 42 | ||
43 | 43 | ||
44 | /* security id for everyone */ | 44 | /* security id for everyone/world system group */ |
45 | static const struct cifs_sid sid_everyone = { | 45 | static const struct cifs_sid sid_everyone = { |
46 | 1, 1, {0, 0, 0, 0, 0, 1}, {0} }; | 46 | 1, 1, {0, 0, 0, 0, 0, 1}, {0} }; |
47 | /* security id for Authenticated Users system group */ | ||
48 | static const struct cifs_sid sid_authusers = { | ||
49 | 1, 1, {0, 0, 0, 0, 0, 5}, {11} }; | ||
47 | /* group users */ | 50 | /* group users */ |
48 | static const struct cifs_sid sid_user = {1, 2 , {0, 0, 0, 0, 0, 5}, {} }; | 51 | static const struct cifs_sid sid_user = {1, 2 , {0, 0, 0, 0, 0, 5}, {} }; |
49 | 52 | ||
@@ -365,7 +368,7 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, | |||
365 | if (num_aces > 0) { | 368 | if (num_aces > 0) { |
366 | umode_t user_mask = S_IRWXU; | 369 | umode_t user_mask = S_IRWXU; |
367 | umode_t group_mask = S_IRWXG; | 370 | umode_t group_mask = S_IRWXG; |
368 | umode_t other_mask = S_IRWXO; | 371 | umode_t other_mask = S_IRWXU | S_IRWXG | S_IRWXO; |
369 | 372 | ||
370 | ppace = kmalloc(num_aces * sizeof(struct cifs_ace *), | 373 | ppace = kmalloc(num_aces * sizeof(struct cifs_ace *), |
371 | GFP_KERNEL); | 374 | GFP_KERNEL); |
@@ -390,6 +393,12 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, | |||
390 | ppace[i]->type, | 393 | ppace[i]->type, |
391 | &fattr->cf_mode, | 394 | &fattr->cf_mode, |
392 | &other_mask); | 395 | &other_mask); |
396 | if (compare_sids(&(ppace[i]->sid), &sid_authusers)) | ||
397 | access_flags_to_mode(ppace[i]->access_req, | ||
398 | ppace[i]->type, | ||
399 | &fattr->cf_mode, | ||
400 | &other_mask); | ||
401 | |||
393 | 402 | ||
394 | /* memcpy((void *)(&(cifscred->aces[i])), | 403 | /* memcpy((void *)(&(cifscred->aces[i])), |
395 | (void *)ppace[i], | 404 | (void *)ppace[i], |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index d9f652a522a6..99d777a03dd0 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -77,7 +77,11 @@ unsigned int cifs_max_pending = CIFS_MAX_REQ; | |||
77 | module_param(cifs_max_pending, int, 0); | 77 | module_param(cifs_max_pending, int, 0); |
78 | MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. " | 78 | MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. " |
79 | "Default: 50 Range: 2 to 256"); | 79 | "Default: 50 Range: 2 to 256"); |
80 | 80 | unsigned short echo_retries = 5; | |
81 | module_param(echo_retries, ushort, 0644); | ||
82 | MODULE_PARM_DESC(echo_retries, "Number of echo attempts before giving up and " | ||
83 | "reconnecting server. Default: 5. 0 means " | ||
84 | "never reconnect."); | ||
81 | extern mempool_t *cifs_sm_req_poolp; | 85 | extern mempool_t *cifs_sm_req_poolp; |
82 | extern mempool_t *cifs_req_poolp; | 86 | extern mempool_t *cifs_req_poolp; |
83 | extern mempool_t *cifs_mid_poolp; | 87 | extern mempool_t *cifs_mid_poolp; |
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 851030f74939..4739a531cded 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
@@ -118,5 +118,5 @@ extern long cifs_ioctl(struct file *filep, unsigned int cmd, unsigned long arg); | |||
118 | extern const struct export_operations cifs_export_ops; | 118 | extern const struct export_operations cifs_export_ops; |
119 | #endif /* EXPERIMENTAL */ | 119 | #endif /* EXPERIMENTAL */ |
120 | 120 | ||
121 | #define CIFS_VERSION "1.68" | 121 | #define CIFS_VERSION "1.69" |
122 | #endif /* _CIFSFS_H */ | 122 | #endif /* _CIFSFS_H */ |
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 606ca8bb7102..571132c95231 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -218,6 +218,7 @@ struct TCP_Server_Info { | |||
218 | bool sec_kerberosu2u; /* supports U2U Kerberos */ | 218 | bool sec_kerberosu2u; /* supports U2U Kerberos */ |
219 | bool sec_ntlmssp; /* supports NTLMSSP */ | 219 | bool sec_ntlmssp; /* supports NTLMSSP */ |
220 | bool session_estab; /* mark when very first sess is established */ | 220 | bool session_estab; /* mark when very first sess is established */ |
221 | struct delayed_work echo; /* echo ping workqueue job */ | ||
221 | #ifdef CONFIG_CIFS_FSCACHE | 222 | #ifdef CONFIG_CIFS_FSCACHE |
222 | struct fscache_cookie *fscache; /* client index cache cookie */ | 223 | struct fscache_cookie *fscache; /* client index cache cookie */ |
223 | #endif | 224 | #endif |
@@ -508,6 +509,18 @@ static inline void cifs_stats_bytes_read(struct cifsTconInfo *tcon, | |||
508 | 509 | ||
509 | #endif | 510 | #endif |
510 | 511 | ||
512 | struct mid_q_entry; | ||
513 | |||
514 | /* | ||
515 | * This is the prototype for the mid callback function. When creating one, | ||
516 | * take special care to avoid deadlocks. Things to bear in mind: | ||
517 | * | ||
518 | * - it will be called by cifsd | ||
519 | * - the GlobalMid_Lock will be held | ||
520 | * - the mid will be removed from the pending_mid_q list | ||
521 | */ | ||
522 | typedef void (mid_callback_t)(struct mid_q_entry *mid); | ||
523 | |||
511 | /* one of these for every pending CIFS request to the server */ | 524 | /* one of these for every pending CIFS request to the server */ |
512 | struct mid_q_entry { | 525 | struct mid_q_entry { |
513 | struct list_head qhead; /* mids waiting on reply from this server */ | 526 | struct list_head qhead; /* mids waiting on reply from this server */ |
@@ -519,7 +532,8 @@ struct mid_q_entry { | |||
519 | unsigned long when_sent; /* time when smb send finished */ | 532 | unsigned long when_sent; /* time when smb send finished */ |
520 | unsigned long when_received; /* when demux complete (taken off wire) */ | 533 | unsigned long when_received; /* when demux complete (taken off wire) */ |
521 | #endif | 534 | #endif |
522 | struct task_struct *tsk; /* task waiting for response */ | 535 | mid_callback_t *callback; /* call completion callback */ |
536 | void *callback_data; /* general purpose pointer for callback */ | ||
523 | struct smb_hdr *resp_buf; /* response buffer */ | 537 | struct smb_hdr *resp_buf; /* response buffer */ |
524 | int midState; /* wish this were enum but can not pass to wait_event */ | 538 | int midState; /* wish this were enum but can not pass to wait_event */ |
525 | __u8 command; /* smb command code */ | 539 | __u8 command; /* smb command code */ |
@@ -622,12 +636,9 @@ static inline void free_dfs_info_array(struct dfs_info3_param *param, | |||
622 | #define CIFS_IOVEC 4 /* array of response buffers */ | 636 | #define CIFS_IOVEC 4 /* array of response buffers */ |
623 | 637 | ||
624 | /* Type of Request to SendReceive2 */ | 638 | /* Type of Request to SendReceive2 */ |
625 | #define CIFS_STD_OP 0 /* normal request timeout */ | 639 | #define CIFS_BLOCKING_OP 1 /* operation can block */ |
626 | #define CIFS_LONG_OP 1 /* long op (up to 45 sec, oplock time) */ | 640 | #define CIFS_ASYNC_OP 2 /* do not wait for response */ |
627 | #define CIFS_VLONG_OP 2 /* sloow op - can take up to 180 seconds */ | 641 | #define CIFS_TIMEOUT_MASK 0x003 /* only one of above set in req */ |
628 | #define CIFS_BLOCKING_OP 4 /* operation can block */ | ||
629 | #define CIFS_ASYNC_OP 8 /* do not wait for response */ | ||
630 | #define CIFS_TIMEOUT_MASK 0x00F /* only one of 5 above set in req */ | ||
631 | #define CIFS_LOG_ERROR 0x010 /* log NT STATUS if non-zero */ | 642 | #define CIFS_LOG_ERROR 0x010 /* log NT STATUS if non-zero */ |
632 | #define CIFS_LARGE_BUF_OP 0x020 /* large request buffer */ | 643 | #define CIFS_LARGE_BUF_OP 0x020 /* large request buffer */ |
633 | #define CIFS_NO_RESP 0x040 /* no response buffer required */ | 644 | #define CIFS_NO_RESP 0x040 /* no response buffer required */ |
@@ -790,6 +801,9 @@ GLOBAL_EXTERN unsigned int cifs_min_rcv; /* min size of big ntwrk buf pool */ | |||
790 | GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */ | 801 | GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */ |
791 | GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/ | 802 | GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/ |
792 | 803 | ||
804 | /* reconnect after this many failed echo attempts */ | ||
805 | GLOBAL_EXTERN unsigned short echo_retries; | ||
806 | |||
793 | void cifs_oplock_break(struct work_struct *work); | 807 | void cifs_oplock_break(struct work_struct *work); |
794 | void cifs_oplock_break_get(struct cifsFileInfo *cfile); | 808 | void cifs_oplock_break_get(struct cifsFileInfo *cfile); |
795 | void cifs_oplock_break_put(struct cifsFileInfo *cfile); | 809 | void cifs_oplock_break_put(struct cifsFileInfo *cfile); |
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h index de36b09763a8..ea205b4fcad2 100644 --- a/fs/cifs/cifspdu.h +++ b/fs/cifs/cifspdu.h | |||
@@ -50,6 +50,7 @@ | |||
50 | #define SMB_COM_SETATTR 0x09 /* trivial response */ | 50 | #define SMB_COM_SETATTR 0x09 /* trivial response */ |
51 | #define SMB_COM_LOCKING_ANDX 0x24 /* trivial response */ | 51 | #define SMB_COM_LOCKING_ANDX 0x24 /* trivial response */ |
52 | #define SMB_COM_COPY 0x29 /* trivial rsp, fail filename ignrd*/ | 52 | #define SMB_COM_COPY 0x29 /* trivial rsp, fail filename ignrd*/ |
53 | #define SMB_COM_ECHO 0x2B /* echo request */ | ||
53 | #define SMB_COM_OPEN_ANDX 0x2D /* Legacy open for old servers */ | 54 | #define SMB_COM_OPEN_ANDX 0x2D /* Legacy open for old servers */ |
54 | #define SMB_COM_READ_ANDX 0x2E | 55 | #define SMB_COM_READ_ANDX 0x2E |
55 | #define SMB_COM_WRITE_ANDX 0x2F | 56 | #define SMB_COM_WRITE_ANDX 0x2F |
@@ -760,6 +761,20 @@ typedef struct smb_com_tconx_rsp_ext { | |||
760 | * | 761 | * |
761 | */ | 762 | */ |
762 | 763 | ||
764 | typedef struct smb_com_echo_req { | ||
765 | struct smb_hdr hdr; | ||
766 | __le16 EchoCount; | ||
767 | __le16 ByteCount; | ||
768 | char Data[1]; | ||
769 | } __attribute__((packed)) ECHO_REQ; | ||
770 | |||
771 | typedef struct smb_com_echo_rsp { | ||
772 | struct smb_hdr hdr; | ||
773 | __le16 SequenceNumber; | ||
774 | __le16 ByteCount; | ||
775 | char Data[1]; | ||
776 | } __attribute__((packed)) ECHO_RSP; | ||
777 | |||
763 | typedef struct smb_com_logoff_andx_req { | 778 | typedef struct smb_com_logoff_andx_req { |
764 | struct smb_hdr hdr; /* wct = 2 */ | 779 | struct smb_hdr hdr; /* wct = 2 */ |
765 | __u8 AndXCommand; | 780 | __u8 AndXCommand; |
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index e6d1481b16c1..982895fa7615 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h | |||
@@ -61,6 +61,12 @@ extern char *cifs_compose_mount_options(const char *sb_mountdata, | |||
61 | const char *fullpath, const struct dfs_info3_param *ref, | 61 | const char *fullpath, const struct dfs_info3_param *ref, |
62 | char **devname); | 62 | char **devname); |
63 | /* extern void renew_parental_timestamps(struct dentry *direntry);*/ | 63 | /* extern void renew_parental_timestamps(struct dentry *direntry);*/ |
64 | extern struct mid_q_entry *AllocMidQEntry(const struct smb_hdr *smb_buffer, | ||
65 | struct TCP_Server_Info *server); | ||
66 | extern void DeleteMidQEntry(struct mid_q_entry *midEntry); | ||
67 | extern int cifs_call_async(struct TCP_Server_Info *server, | ||
68 | struct smb_hdr *in_buf, mid_callback_t *callback, | ||
69 | void *cbdata); | ||
64 | extern int SendReceive(const unsigned int /* xid */ , struct cifsSesInfo *, | 70 | extern int SendReceive(const unsigned int /* xid */ , struct cifsSesInfo *, |
65 | struct smb_hdr * /* input */ , | 71 | struct smb_hdr * /* input */ , |
66 | struct smb_hdr * /* out */ , | 72 | struct smb_hdr * /* out */ , |
@@ -347,12 +353,13 @@ extern int CIFSSMBLock(const int xid, struct cifsTconInfo *tcon, | |||
347 | const __u16 netfid, const __u64 len, | 353 | const __u16 netfid, const __u64 len, |
348 | const __u64 offset, const __u32 numUnlock, | 354 | const __u64 offset, const __u32 numUnlock, |
349 | const __u32 numLock, const __u8 lockType, | 355 | const __u32 numLock, const __u8 lockType, |
350 | const bool waitFlag); | 356 | const bool waitFlag, const __u8 oplock_level); |
351 | extern int CIFSSMBPosixLock(const int xid, struct cifsTconInfo *tcon, | 357 | extern int CIFSSMBPosixLock(const int xid, struct cifsTconInfo *tcon, |
352 | const __u16 smb_file_id, const int get_flag, | 358 | const __u16 smb_file_id, const int get_flag, |
353 | const __u64 len, struct file_lock *, | 359 | const __u64 len, struct file_lock *, |
354 | const __u16 lock_type, const bool waitFlag); | 360 | const __u16 lock_type, const bool waitFlag); |
355 | extern int CIFSSMBTDis(const int xid, struct cifsTconInfo *tcon); | 361 | extern int CIFSSMBTDis(const int xid, struct cifsTconInfo *tcon); |
362 | extern int CIFSSMBEcho(struct TCP_Server_Info *server); | ||
356 | extern int CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses); | 363 | extern int CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses); |
357 | 364 | ||
358 | extern struct cifsSesInfo *sesInfoAlloc(void); | 365 | extern struct cifsSesInfo *sesInfoAlloc(void); |
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 2f6795e524d3..37113450757b 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -706,6 +706,53 @@ CIFSSMBTDis(const int xid, struct cifsTconInfo *tcon) | |||
706 | return rc; | 706 | return rc; |
707 | } | 707 | } |
708 | 708 | ||
709 | /* | ||
710 | * This is a no-op for now. We're not really interested in the reply, but | ||
711 | * rather in the fact that the server sent one and that server->lstrp | ||
712 | * gets updated. | ||
713 | * | ||
714 | * FIXME: maybe we should consider checking that the reply matches request? | ||
715 | */ | ||
716 | static void | ||
717 | cifs_echo_callback(struct mid_q_entry *mid) | ||
718 | { | ||
719 | struct TCP_Server_Info *server = mid->callback_data; | ||
720 | |||
721 | DeleteMidQEntry(mid); | ||
722 | atomic_dec(&server->inFlight); | ||
723 | wake_up(&server->request_q); | ||
724 | } | ||
725 | |||
726 | int | ||
727 | CIFSSMBEcho(struct TCP_Server_Info *server) | ||
728 | { | ||
729 | ECHO_REQ *smb; | ||
730 | int rc = 0; | ||
731 | |||
732 | cFYI(1, "In echo request"); | ||
733 | |||
734 | rc = small_smb_init(SMB_COM_ECHO, 0, NULL, (void **)&smb); | ||
735 | if (rc) | ||
736 | return rc; | ||
737 | |||
738 | /* set up echo request */ | ||
739 | smb->hdr.Tid = cpu_to_le16(0xffff); | ||
740 | smb->hdr.WordCount = cpu_to_le16(1); | ||
741 | smb->EchoCount = cpu_to_le16(1); | ||
742 | smb->ByteCount = cpu_to_le16(1); | ||
743 | smb->Data[0] = 'a'; | ||
744 | smb->hdr.smb_buf_length += 3; | ||
745 | |||
746 | rc = cifs_call_async(server, (struct smb_hdr *)smb, | ||
747 | cifs_echo_callback, server); | ||
748 | if (rc) | ||
749 | cFYI(1, "Echo request failed: %d", rc); | ||
750 | |||
751 | cifs_small_buf_release(smb); | ||
752 | |||
753 | return rc; | ||
754 | } | ||
755 | |||
709 | int | 756 | int |
710 | CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses) | 757 | CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses) |
711 | { | 758 | { |
@@ -1193,7 +1240,7 @@ OldOpenRetry: | |||
1193 | pSMB->ByteCount = cpu_to_le16(count); | 1240 | pSMB->ByteCount = cpu_to_le16(count); |
1194 | /* long_op set to 1 to allow for oplock break timeouts */ | 1241 | /* long_op set to 1 to allow for oplock break timeouts */ |
1195 | rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB, | 1242 | rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB, |
1196 | (struct smb_hdr *)pSMBr, &bytes_returned, CIFS_LONG_OP); | 1243 | (struct smb_hdr *)pSMBr, &bytes_returned, 0); |
1197 | cifs_stats_inc(&tcon->num_opens); | 1244 | cifs_stats_inc(&tcon->num_opens); |
1198 | if (rc) { | 1245 | if (rc) { |
1199 | cFYI(1, "Error in Open = %d", rc); | 1246 | cFYI(1, "Error in Open = %d", rc); |
@@ -1306,7 +1353,7 @@ openRetry: | |||
1306 | pSMB->ByteCount = cpu_to_le16(count); | 1353 | pSMB->ByteCount = cpu_to_le16(count); |
1307 | /* long_op set to 1 to allow for oplock break timeouts */ | 1354 | /* long_op set to 1 to allow for oplock break timeouts */ |
1308 | rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB, | 1355 | rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB, |
1309 | (struct smb_hdr *)pSMBr, &bytes_returned, CIFS_LONG_OP); | 1356 | (struct smb_hdr *)pSMBr, &bytes_returned, 0); |
1310 | cifs_stats_inc(&tcon->num_opens); | 1357 | cifs_stats_inc(&tcon->num_opens); |
1311 | if (rc) { | 1358 | if (rc) { |
1312 | cFYI(1, "Error in Open = %d", rc); | 1359 | cFYI(1, "Error in Open = %d", rc); |
@@ -1388,7 +1435,7 @@ CIFSSMBRead(const int xid, struct cifsTconInfo *tcon, const int netfid, | |||
1388 | iov[0].iov_base = (char *)pSMB; | 1435 | iov[0].iov_base = (char *)pSMB; |
1389 | iov[0].iov_len = pSMB->hdr.smb_buf_length + 4; | 1436 | iov[0].iov_len = pSMB->hdr.smb_buf_length + 4; |
1390 | rc = SendReceive2(xid, tcon->ses, iov, 1 /* num iovecs */, | 1437 | rc = SendReceive2(xid, tcon->ses, iov, 1 /* num iovecs */, |
1391 | &resp_buf_type, CIFS_STD_OP | CIFS_LOG_ERROR); | 1438 | &resp_buf_type, CIFS_LOG_ERROR); |
1392 | cifs_stats_inc(&tcon->num_reads); | 1439 | cifs_stats_inc(&tcon->num_reads); |
1393 | pSMBr = (READ_RSP *)iov[0].iov_base; | 1440 | pSMBr = (READ_RSP *)iov[0].iov_base; |
1394 | if (rc) { | 1441 | if (rc) { |
@@ -1663,7 +1710,8 @@ int | |||
1663 | CIFSSMBLock(const int xid, struct cifsTconInfo *tcon, | 1710 | CIFSSMBLock(const int xid, struct cifsTconInfo *tcon, |
1664 | const __u16 smb_file_id, const __u64 len, | 1711 | const __u16 smb_file_id, const __u64 len, |
1665 | const __u64 offset, const __u32 numUnlock, | 1712 | const __u64 offset, const __u32 numUnlock, |
1666 | const __u32 numLock, const __u8 lockType, const bool waitFlag) | 1713 | const __u32 numLock, const __u8 lockType, |
1714 | const bool waitFlag, const __u8 oplock_level) | ||
1667 | { | 1715 | { |
1668 | int rc = 0; | 1716 | int rc = 0; |
1669 | LOCK_REQ *pSMB = NULL; | 1717 | LOCK_REQ *pSMB = NULL; |
@@ -1691,6 +1739,7 @@ CIFSSMBLock(const int xid, struct cifsTconInfo *tcon, | |||
1691 | pSMB->NumberOfLocks = cpu_to_le16(numLock); | 1739 | pSMB->NumberOfLocks = cpu_to_le16(numLock); |
1692 | pSMB->NumberOfUnlocks = cpu_to_le16(numUnlock); | 1740 | pSMB->NumberOfUnlocks = cpu_to_le16(numUnlock); |
1693 | pSMB->LockType = lockType; | 1741 | pSMB->LockType = lockType; |
1742 | pSMB->OplockLevel = oplock_level; | ||
1694 | pSMB->AndXCommand = 0xFF; /* none */ | 1743 | pSMB->AndXCommand = 0xFF; /* none */ |
1695 | pSMB->Fid = smb_file_id; /* netfid stays le */ | 1744 | pSMB->Fid = smb_file_id; /* netfid stays le */ |
1696 | 1745 | ||
@@ -3087,7 +3136,7 @@ CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid, | |||
3087 | iov[0].iov_len = pSMB->hdr.smb_buf_length + 4; | 3136 | iov[0].iov_len = pSMB->hdr.smb_buf_length + 4; |
3088 | 3137 | ||
3089 | rc = SendReceive2(xid, tcon->ses, iov, 1 /* num iovec */, &buf_type, | 3138 | rc = SendReceive2(xid, tcon->ses, iov, 1 /* num iovec */, &buf_type, |
3090 | CIFS_STD_OP); | 3139 | 0); |
3091 | cifs_stats_inc(&tcon->num_acl_get); | 3140 | cifs_stats_inc(&tcon->num_acl_get); |
3092 | if (rc) { | 3141 | if (rc) { |
3093 | cFYI(1, "Send error in QuerySecDesc = %d", rc); | 3142 | cFYI(1, "Send error in QuerySecDesc = %d", rc); |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 9f59887badd2..8d4657596301 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -52,6 +52,9 @@ | |||
52 | #define CIFS_PORT 445 | 52 | #define CIFS_PORT 445 |
53 | #define RFC1001_PORT 139 | 53 | #define RFC1001_PORT 139 |
54 | 54 | ||
55 | /* SMB echo "timeout" -- FIXME: tunable? */ | ||
56 | #define SMB_ECHO_INTERVAL (60 * HZ) | ||
57 | |||
55 | extern void SMBNTencrypt(unsigned char *passwd, unsigned char *c8, | 58 | extern void SMBNTencrypt(unsigned char *passwd, unsigned char *c8, |
56 | unsigned char *p24); | 59 | unsigned char *p24); |
57 | 60 | ||
@@ -152,6 +155,7 @@ cifs_reconnect(struct TCP_Server_Info *server) | |||
152 | 155 | ||
153 | /* before reconnecting the tcp session, mark the smb session (uid) | 156 | /* before reconnecting the tcp session, mark the smb session (uid) |
154 | and the tid bad so they are not used until reconnected */ | 157 | and the tid bad so they are not used until reconnected */ |
158 | cFYI(1, "%s: marking sessions and tcons for reconnect", __func__); | ||
155 | spin_lock(&cifs_tcp_ses_lock); | 159 | spin_lock(&cifs_tcp_ses_lock); |
156 | list_for_each(tmp, &server->smb_ses_list) { | 160 | list_for_each(tmp, &server->smb_ses_list) { |
157 | ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list); | 161 | ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list); |
@@ -163,7 +167,9 @@ cifs_reconnect(struct TCP_Server_Info *server) | |||
163 | } | 167 | } |
164 | } | 168 | } |
165 | spin_unlock(&cifs_tcp_ses_lock); | 169 | spin_unlock(&cifs_tcp_ses_lock); |
170 | |||
166 | /* do not want to be sending data on a socket we are freeing */ | 171 | /* do not want to be sending data on a socket we are freeing */ |
172 | cFYI(1, "%s: tearing down socket", __func__); | ||
167 | mutex_lock(&server->srv_mutex); | 173 | mutex_lock(&server->srv_mutex); |
168 | if (server->ssocket) { | 174 | if (server->ssocket) { |
169 | cFYI(1, "State: 0x%x Flags: 0x%lx", server->ssocket->state, | 175 | cFYI(1, "State: 0x%x Flags: 0x%lx", server->ssocket->state, |
@@ -180,22 +186,20 @@ cifs_reconnect(struct TCP_Server_Info *server) | |||
180 | kfree(server->session_key.response); | 186 | kfree(server->session_key.response); |
181 | server->session_key.response = NULL; | 187 | server->session_key.response = NULL; |
182 | server->session_key.len = 0; | 188 | server->session_key.len = 0; |
189 | server->lstrp = jiffies; | ||
190 | mutex_unlock(&server->srv_mutex); | ||
183 | 191 | ||
192 | /* mark submitted MIDs for retry and issue callback */ | ||
193 | cFYI(1, "%s: issuing mid callbacks", __func__); | ||
184 | spin_lock(&GlobalMid_Lock); | 194 | spin_lock(&GlobalMid_Lock); |
185 | list_for_each(tmp, &server->pending_mid_q) { | 195 | list_for_each_safe(tmp, tmp2, &server->pending_mid_q) { |
186 | mid_entry = list_entry(tmp, struct | 196 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); |
187 | mid_q_entry, | 197 | if (mid_entry->midState == MID_REQUEST_SUBMITTED) |
188 | qhead); | ||
189 | if (mid_entry->midState == MID_REQUEST_SUBMITTED) { | ||
190 | /* Mark other intransit requests as needing | ||
191 | retry so we do not immediately mark the | ||
192 | session bad again (ie after we reconnect | ||
193 | below) as they timeout too */ | ||
194 | mid_entry->midState = MID_RETRY_NEEDED; | 198 | mid_entry->midState = MID_RETRY_NEEDED; |
195 | } | 199 | list_del_init(&mid_entry->qhead); |
200 | mid_entry->callback(mid_entry); | ||
196 | } | 201 | } |
197 | spin_unlock(&GlobalMid_Lock); | 202 | spin_unlock(&GlobalMid_Lock); |
198 | mutex_unlock(&server->srv_mutex); | ||
199 | 203 | ||
200 | while ((server->tcpStatus != CifsExiting) && | 204 | while ((server->tcpStatus != CifsExiting) && |
201 | (server->tcpStatus != CifsGood)) { | 205 | (server->tcpStatus != CifsGood)) { |
@@ -212,10 +216,9 @@ cifs_reconnect(struct TCP_Server_Info *server) | |||
212 | if (server->tcpStatus != CifsExiting) | 216 | if (server->tcpStatus != CifsExiting) |
213 | server->tcpStatus = CifsGood; | 217 | server->tcpStatus = CifsGood; |
214 | spin_unlock(&GlobalMid_Lock); | 218 | spin_unlock(&GlobalMid_Lock); |
215 | /* atomic_set(&server->inFlight,0);*/ | ||
216 | wake_up(&server->response_q); | ||
217 | } | 219 | } |
218 | } | 220 | } |
221 | |||
219 | return rc; | 222 | return rc; |
220 | } | 223 | } |
221 | 224 | ||
@@ -334,6 +337,26 @@ static int coalesce_t2(struct smb_hdr *psecond, struct smb_hdr *pTargetSMB) | |||
334 | 337 | ||
335 | } | 338 | } |
336 | 339 | ||
340 | static void | ||
341 | cifs_echo_request(struct work_struct *work) | ||
342 | { | ||
343 | int rc; | ||
344 | struct TCP_Server_Info *server = container_of(work, | ||
345 | struct TCP_Server_Info, echo.work); | ||
346 | |||
347 | /* no need to ping if we got a response recently */ | ||
348 | if (time_before(jiffies, server->lstrp + SMB_ECHO_INTERVAL - HZ)) | ||
349 | goto requeue_echo; | ||
350 | |||
351 | rc = CIFSSMBEcho(server); | ||
352 | if (rc) | ||
353 | cFYI(1, "Unable to send echo request to server: %s", | ||
354 | server->hostname); | ||
355 | |||
356 | requeue_echo: | ||
357 | queue_delayed_work(system_nrt_wq, &server->echo, SMB_ECHO_INTERVAL); | ||
358 | } | ||
359 | |||
337 | static int | 360 | static int |
338 | cifs_demultiplex_thread(struct TCP_Server_Info *server) | 361 | cifs_demultiplex_thread(struct TCP_Server_Info *server) |
339 | { | 362 | { |
@@ -345,8 +368,7 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server) | |||
345 | struct msghdr smb_msg; | 368 | struct msghdr smb_msg; |
346 | struct kvec iov; | 369 | struct kvec iov; |
347 | struct socket *csocket = server->ssocket; | 370 | struct socket *csocket = server->ssocket; |
348 | struct list_head *tmp; | 371 | struct list_head *tmp, *tmp2; |
349 | struct cifsSesInfo *ses; | ||
350 | struct task_struct *task_to_wake = NULL; | 372 | struct task_struct *task_to_wake = NULL; |
351 | struct mid_q_entry *mid_entry; | 373 | struct mid_q_entry *mid_entry; |
352 | char temp; | 374 | char temp; |
@@ -399,7 +421,20 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server) | |||
399 | smb_msg.msg_control = NULL; | 421 | smb_msg.msg_control = NULL; |
400 | smb_msg.msg_controllen = 0; | 422 | smb_msg.msg_controllen = 0; |
401 | pdu_length = 4; /* enough to get RFC1001 header */ | 423 | pdu_length = 4; /* enough to get RFC1001 header */ |
424 | |||
402 | incomplete_rcv: | 425 | incomplete_rcv: |
426 | if (echo_retries > 0 && | ||
427 | time_after(jiffies, server->lstrp + | ||
428 | (echo_retries * SMB_ECHO_INTERVAL))) { | ||
429 | cERROR(1, "Server %s has not responded in %d seconds. " | ||
430 | "Reconnecting...", server->hostname, | ||
431 | (echo_retries * SMB_ECHO_INTERVAL / HZ)); | ||
432 | cifs_reconnect(server); | ||
433 | csocket = server->ssocket; | ||
434 | wake_up(&server->response_q); | ||
435 | continue; | ||
436 | } | ||
437 | |||
403 | length = | 438 | length = |
404 | kernel_recvmsg(csocket, &smb_msg, | 439 | kernel_recvmsg(csocket, &smb_msg, |
405 | &iov, 1, pdu_length, 0 /* BB other flags? */); | 440 | &iov, 1, pdu_length, 0 /* BB other flags? */); |
@@ -559,10 +594,11 @@ incomplete_rcv: | |||
559 | continue; | 594 | continue; |
560 | } | 595 | } |
561 | 596 | ||
597 | mid_entry = NULL; | ||
598 | server->lstrp = jiffies; | ||
562 | 599 | ||
563 | task_to_wake = NULL; | ||
564 | spin_lock(&GlobalMid_Lock); | 600 | spin_lock(&GlobalMid_Lock); |
565 | list_for_each(tmp, &server->pending_mid_q) { | 601 | list_for_each_safe(tmp, tmp2, &server->pending_mid_q) { |
566 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); | 602 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); |
567 | 603 | ||
568 | if ((mid_entry->mid == smb_buffer->Mid) && | 604 | if ((mid_entry->mid == smb_buffer->Mid) && |
@@ -603,20 +639,19 @@ incomplete_rcv: | |||
603 | mid_entry->resp_buf = smb_buffer; | 639 | mid_entry->resp_buf = smb_buffer; |
604 | mid_entry->largeBuf = isLargeBuf; | 640 | mid_entry->largeBuf = isLargeBuf; |
605 | multi_t2_fnd: | 641 | multi_t2_fnd: |
606 | task_to_wake = mid_entry->tsk; | ||
607 | mid_entry->midState = MID_RESPONSE_RECEIVED; | 642 | mid_entry->midState = MID_RESPONSE_RECEIVED; |
643 | list_del_init(&mid_entry->qhead); | ||
644 | mid_entry->callback(mid_entry); | ||
608 | #ifdef CONFIG_CIFS_STATS2 | 645 | #ifdef CONFIG_CIFS_STATS2 |
609 | mid_entry->when_received = jiffies; | 646 | mid_entry->when_received = jiffies; |
610 | #endif | 647 | #endif |
611 | /* so we do not time out requests to server | ||
612 | which is still responding (since server could | ||
613 | be busy but not dead) */ | ||
614 | server->lstrp = jiffies; | ||
615 | break; | 648 | break; |
616 | } | 649 | } |
650 | mid_entry = NULL; | ||
617 | } | 651 | } |
618 | spin_unlock(&GlobalMid_Lock); | 652 | spin_unlock(&GlobalMid_Lock); |
619 | if (task_to_wake) { | 653 | |
654 | if (mid_entry != NULL) { | ||
620 | /* Was previous buf put in mpx struct for multi-rsp? */ | 655 | /* Was previous buf put in mpx struct for multi-rsp? */ |
621 | if (!isMultiRsp) { | 656 | if (!isMultiRsp) { |
622 | /* smb buffer will be freed by user thread */ | 657 | /* smb buffer will be freed by user thread */ |
@@ -625,11 +660,10 @@ multi_t2_fnd: | |||
625 | else | 660 | else |
626 | smallbuf = NULL; | 661 | smallbuf = NULL; |
627 | } | 662 | } |
628 | wake_up_process(task_to_wake); | ||
629 | } else if (!is_valid_oplock_break(smb_buffer, server) && | 663 | } else if (!is_valid_oplock_break(smb_buffer, server) && |
630 | !isMultiRsp) { | 664 | !isMultiRsp) { |
631 | cERROR(1, "No task to wake, unknown frame received! " | 665 | cERROR(1, "No task to wake, unknown frame received! " |
632 | "NumMids %d", midCount.counter); | 666 | "NumMids %d", atomic_read(&midCount)); |
633 | cifs_dump_mem("Received Data is: ", (char *)smb_buffer, | 667 | cifs_dump_mem("Received Data is: ", (char *)smb_buffer, |
634 | sizeof(struct smb_hdr)); | 668 | sizeof(struct smb_hdr)); |
635 | #ifdef CONFIG_CIFS_DEBUG2 | 669 | #ifdef CONFIG_CIFS_DEBUG2 |
@@ -677,44 +711,16 @@ multi_t2_fnd: | |||
677 | if (smallbuf) /* no sense logging a debug message if NULL */ | 711 | if (smallbuf) /* no sense logging a debug message if NULL */ |
678 | cifs_small_buf_release(smallbuf); | 712 | cifs_small_buf_release(smallbuf); |
679 | 713 | ||
680 | /* | 714 | if (!list_empty(&server->pending_mid_q)) { |
681 | * BB: we shouldn't have to do any of this. It shouldn't be | ||
682 | * possible to exit from the thread with active SMB sessions | ||
683 | */ | ||
684 | spin_lock(&cifs_tcp_ses_lock); | ||
685 | if (list_empty(&server->pending_mid_q)) { | ||
686 | /* loop through server session structures attached to this and | ||
687 | mark them dead */ | ||
688 | list_for_each(tmp, &server->smb_ses_list) { | ||
689 | ses = list_entry(tmp, struct cifsSesInfo, | ||
690 | smb_ses_list); | ||
691 | ses->status = CifsExiting; | ||
692 | ses->server = NULL; | ||
693 | } | ||
694 | spin_unlock(&cifs_tcp_ses_lock); | ||
695 | } else { | ||
696 | /* although we can not zero the server struct pointer yet, | ||
697 | since there are active requests which may depnd on them, | ||
698 | mark the corresponding SMB sessions as exiting too */ | ||
699 | list_for_each(tmp, &server->smb_ses_list) { | ||
700 | ses = list_entry(tmp, struct cifsSesInfo, | ||
701 | smb_ses_list); | ||
702 | ses->status = CifsExiting; | ||
703 | } | ||
704 | |||
705 | spin_lock(&GlobalMid_Lock); | 715 | spin_lock(&GlobalMid_Lock); |
706 | list_for_each(tmp, &server->pending_mid_q) { | 716 | list_for_each_safe(tmp, tmp2, &server->pending_mid_q) { |
707 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); | 717 | mid_entry = list_entry(tmp, struct mid_q_entry, qhead); |
708 | if (mid_entry->midState == MID_REQUEST_SUBMITTED) { | 718 | cFYI(1, "Clearing Mid 0x%x - issuing callback", |
709 | cFYI(1, "Clearing Mid 0x%x - waking up ", | ||
710 | mid_entry->mid); | 719 | mid_entry->mid); |
711 | task_to_wake = mid_entry->tsk; | 720 | list_del_init(&mid_entry->qhead); |
712 | if (task_to_wake) | 721 | mid_entry->callback(mid_entry); |
713 | wake_up_process(task_to_wake); | ||
714 | } | ||
715 | } | 722 | } |
716 | spin_unlock(&GlobalMid_Lock); | 723 | spin_unlock(&GlobalMid_Lock); |
717 | spin_unlock(&cifs_tcp_ses_lock); | ||
718 | /* 1/8th of sec is more than enough time for them to exit */ | 724 | /* 1/8th of sec is more than enough time for them to exit */ |
719 | msleep(125); | 725 | msleep(125); |
720 | } | 726 | } |
@@ -732,18 +738,6 @@ multi_t2_fnd: | |||
732 | coming home not much else we can do but free the memory */ | 738 | coming home not much else we can do but free the memory */ |
733 | } | 739 | } |
734 | 740 | ||
735 | /* last chance to mark ses pointers invalid | ||
736 | if there are any pointing to this (e.g | ||
737 | if a crazy root user tried to kill cifsd | ||
738 | kernel thread explicitly this might happen) */ | ||
739 | /* BB: This shouldn't be necessary, see above */ | ||
740 | spin_lock(&cifs_tcp_ses_lock); | ||
741 | list_for_each(tmp, &server->smb_ses_list) { | ||
742 | ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list); | ||
743 | ses->server = NULL; | ||
744 | } | ||
745 | spin_unlock(&cifs_tcp_ses_lock); | ||
746 | |||
747 | kfree(server->hostname); | 741 | kfree(server->hostname); |
748 | task_to_wake = xchg(&server->tsk, NULL); | 742 | task_to_wake = xchg(&server->tsk, NULL); |
749 | kfree(server); | 743 | kfree(server); |
@@ -1612,6 +1606,8 @@ cifs_put_tcp_session(struct TCP_Server_Info *server) | |||
1612 | list_del_init(&server->tcp_ses_list); | 1606 | list_del_init(&server->tcp_ses_list); |
1613 | spin_unlock(&cifs_tcp_ses_lock); | 1607 | spin_unlock(&cifs_tcp_ses_lock); |
1614 | 1608 | ||
1609 | cancel_delayed_work_sync(&server->echo); | ||
1610 | |||
1615 | spin_lock(&GlobalMid_Lock); | 1611 | spin_lock(&GlobalMid_Lock); |
1616 | server->tcpStatus = CifsExiting; | 1612 | server->tcpStatus = CifsExiting; |
1617 | spin_unlock(&GlobalMid_Lock); | 1613 | spin_unlock(&GlobalMid_Lock); |
@@ -1701,8 +1697,10 @@ cifs_get_tcp_session(struct smb_vol *volume_info) | |||
1701 | volume_info->target_rfc1001_name, RFC1001_NAME_LEN_WITH_NULL); | 1697 | volume_info->target_rfc1001_name, RFC1001_NAME_LEN_WITH_NULL); |
1702 | tcp_ses->session_estab = false; | 1698 | tcp_ses->session_estab = false; |
1703 | tcp_ses->sequence_number = 0; | 1699 | tcp_ses->sequence_number = 0; |
1700 | tcp_ses->lstrp = jiffies; | ||
1704 | INIT_LIST_HEAD(&tcp_ses->tcp_ses_list); | 1701 | INIT_LIST_HEAD(&tcp_ses->tcp_ses_list); |
1705 | INIT_LIST_HEAD(&tcp_ses->smb_ses_list); | 1702 | INIT_LIST_HEAD(&tcp_ses->smb_ses_list); |
1703 | INIT_DELAYED_WORK(&tcp_ses->echo, cifs_echo_request); | ||
1706 | 1704 | ||
1707 | /* | 1705 | /* |
1708 | * at this point we are the only ones with the pointer | 1706 | * at this point we are the only ones with the pointer |
@@ -1751,6 +1749,9 @@ cifs_get_tcp_session(struct smb_vol *volume_info) | |||
1751 | 1749 | ||
1752 | cifs_fscache_get_client_cookie(tcp_ses); | 1750 | cifs_fscache_get_client_cookie(tcp_ses); |
1753 | 1751 | ||
1752 | /* queue echo request delayed work */ | ||
1753 | queue_delayed_work(system_nrt_wq, &tcp_ses->echo, SMB_ECHO_INTERVAL); | ||
1754 | |||
1754 | return tcp_ses; | 1755 | return tcp_ses; |
1755 | 1756 | ||
1756 | out_err_crypto_release: | 1757 | out_err_crypto_release: |
@@ -2965,7 +2966,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | |||
2965 | bcc_ptr++; /* skip password */ | 2966 | bcc_ptr++; /* skip password */ |
2966 | /* already aligned so no need to do it below */ | 2967 | /* already aligned so no need to do it below */ |
2967 | } else { | 2968 | } else { |
2968 | pSMB->PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE); | 2969 | pSMB->PasswordLength = cpu_to_le16(CIFS_AUTH_RESP_SIZE); |
2969 | /* BB FIXME add code to fail this if NTLMv2 or Kerberos | 2970 | /* BB FIXME add code to fail this if NTLMv2 or Kerberos |
2970 | specified as required (when that support is added to | 2971 | specified as required (when that support is added to |
2971 | the vfs in the future) as only NTLM or the much | 2972 | the vfs in the future) as only NTLM or the much |
@@ -2983,7 +2984,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | |||
2983 | #endif /* CIFS_WEAK_PW_HASH */ | 2984 | #endif /* CIFS_WEAK_PW_HASH */ |
2984 | SMBNTencrypt(tcon->password, ses->server->cryptkey, bcc_ptr); | 2985 | SMBNTencrypt(tcon->password, ses->server->cryptkey, bcc_ptr); |
2985 | 2986 | ||
2986 | bcc_ptr += CIFS_SESS_KEY_SIZE; | 2987 | bcc_ptr += CIFS_AUTH_RESP_SIZE; |
2987 | if (ses->capabilities & CAP_UNICODE) { | 2988 | if (ses->capabilities & CAP_UNICODE) { |
2988 | /* must align unicode strings */ | 2989 | /* must align unicode strings */ |
2989 | *bcc_ptr = 0; /* null byte password */ | 2990 | *bcc_ptr = 0; /* null byte password */ |
@@ -3021,7 +3022,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | |||
3021 | pSMB->ByteCount = cpu_to_le16(count); | 3022 | pSMB->ByteCount = cpu_to_le16(count); |
3022 | 3023 | ||
3023 | rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response, &length, | 3024 | rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response, &length, |
3024 | CIFS_STD_OP); | 3025 | 0); |
3025 | 3026 | ||
3026 | /* above now done in SendReceive */ | 3027 | /* above now done in SendReceive */ |
3027 | if ((rc == 0) && (tcon != NULL)) { | 3028 | if ((rc == 0) && (tcon != NULL)) { |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index d843631c028d..bd2a028af833 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -726,12 +726,12 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock) | |||
726 | 726 | ||
727 | /* BB we could chain these into one lock request BB */ | 727 | /* BB we could chain these into one lock request BB */ |
728 | rc = CIFSSMBLock(xid, tcon, netfid, length, pfLock->fl_start, | 728 | rc = CIFSSMBLock(xid, tcon, netfid, length, pfLock->fl_start, |
729 | 0, 1, lockType, 0 /* wait flag */ ); | 729 | 0, 1, lockType, 0 /* wait flag */, 0); |
730 | if (rc == 0) { | 730 | if (rc == 0) { |
731 | rc = CIFSSMBLock(xid, tcon, netfid, length, | 731 | rc = CIFSSMBLock(xid, tcon, netfid, length, |
732 | pfLock->fl_start, 1 /* numUnlock */ , | 732 | pfLock->fl_start, 1 /* numUnlock */ , |
733 | 0 /* numLock */ , lockType, | 733 | 0 /* numLock */ , lockType, |
734 | 0 /* wait flag */ ); | 734 | 0 /* wait flag */, 0); |
735 | pfLock->fl_type = F_UNLCK; | 735 | pfLock->fl_type = F_UNLCK; |
736 | if (rc != 0) | 736 | if (rc != 0) |
737 | cERROR(1, "Error unlocking previously locked " | 737 | cERROR(1, "Error unlocking previously locked " |
@@ -748,13 +748,13 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock) | |||
748 | rc = CIFSSMBLock(xid, tcon, netfid, length, | 748 | rc = CIFSSMBLock(xid, tcon, netfid, length, |
749 | pfLock->fl_start, 0, 1, | 749 | pfLock->fl_start, 0, 1, |
750 | lockType | LOCKING_ANDX_SHARED_LOCK, | 750 | lockType | LOCKING_ANDX_SHARED_LOCK, |
751 | 0 /* wait flag */); | 751 | 0 /* wait flag */, 0); |
752 | if (rc == 0) { | 752 | if (rc == 0) { |
753 | rc = CIFSSMBLock(xid, tcon, netfid, | 753 | rc = CIFSSMBLock(xid, tcon, netfid, |
754 | length, pfLock->fl_start, 1, 0, | 754 | length, pfLock->fl_start, 1, 0, |
755 | lockType | | 755 | lockType | |
756 | LOCKING_ANDX_SHARED_LOCK, | 756 | LOCKING_ANDX_SHARED_LOCK, |
757 | 0 /* wait flag */); | 757 | 0 /* wait flag */, 0); |
758 | pfLock->fl_type = F_RDLCK; | 758 | pfLock->fl_type = F_RDLCK; |
759 | if (rc != 0) | 759 | if (rc != 0) |
760 | cERROR(1, "Error unlocking " | 760 | cERROR(1, "Error unlocking " |
@@ -797,8 +797,8 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock) | |||
797 | 797 | ||
798 | if (numLock) { | 798 | if (numLock) { |
799 | rc = CIFSSMBLock(xid, tcon, netfid, length, | 799 | rc = CIFSSMBLock(xid, tcon, netfid, length, |
800 | pfLock->fl_start, | 800 | pfLock->fl_start, 0, numLock, lockType, |
801 | 0, numLock, lockType, wait_flag); | 801 | wait_flag, 0); |
802 | 802 | ||
803 | if (rc == 0) { | 803 | if (rc == 0) { |
804 | /* For Windows locks we must store them. */ | 804 | /* For Windows locks we must store them. */ |
@@ -818,9 +818,9 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock) | |||
818 | (pfLock->fl_start + length) >= | 818 | (pfLock->fl_start + length) >= |
819 | (li->offset + li->length)) { | 819 | (li->offset + li->length)) { |
820 | stored_rc = CIFSSMBLock(xid, tcon, | 820 | stored_rc = CIFSSMBLock(xid, tcon, |
821 | netfid, | 821 | netfid, li->length, |
822 | li->length, li->offset, | 822 | li->offset, 1, 0, |
823 | 1, 0, li->type, false); | 823 | li->type, false, 0); |
824 | if (stored_rc) | 824 | if (stored_rc) |
825 | rc = stored_rc; | 825 | rc = stored_rc; |
826 | else { | 826 | else { |
@@ -839,29 +839,6 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock) | |||
839 | return rc; | 839 | return rc; |
840 | } | 840 | } |
841 | 841 | ||
842 | /* | ||
843 | * Set the timeout on write requests past EOF. For some servers (Windows) | ||
844 | * these calls can be very long. | ||
845 | * | ||
846 | * If we're writing >10M past the EOF we give a 180s timeout. Anything less | ||
847 | * than that gets a 45s timeout. Writes not past EOF get 15s timeouts. | ||
848 | * The 10M cutoff is totally arbitrary. A better scheme for this would be | ||
849 | * welcome if someone wants to suggest one. | ||
850 | * | ||
851 | * We may be able to do a better job with this if there were some way to | ||
852 | * declare that a file should be sparse. | ||
853 | */ | ||
854 | static int | ||
855 | cifs_write_timeout(struct cifsInodeInfo *cifsi, loff_t offset) | ||
856 | { | ||
857 | if (offset <= cifsi->server_eof) | ||
858 | return CIFS_STD_OP; | ||
859 | else if (offset > (cifsi->server_eof + (10 * 1024 * 1024))) | ||
860 | return CIFS_VLONG_OP; | ||
861 | else | ||
862 | return CIFS_LONG_OP; | ||
863 | } | ||
864 | |||
865 | /* update the file size (if needed) after a write */ | 842 | /* update the file size (if needed) after a write */ |
866 | static void | 843 | static void |
867 | cifs_update_eof(struct cifsInodeInfo *cifsi, loff_t offset, | 844 | cifs_update_eof(struct cifsInodeInfo *cifsi, loff_t offset, |
@@ -882,7 +859,7 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data, | |||
882 | unsigned int total_written; | 859 | unsigned int total_written; |
883 | struct cifs_sb_info *cifs_sb; | 860 | struct cifs_sb_info *cifs_sb; |
884 | struct cifsTconInfo *pTcon; | 861 | struct cifsTconInfo *pTcon; |
885 | int xid, long_op; | 862 | int xid; |
886 | struct cifsFileInfo *open_file; | 863 | struct cifsFileInfo *open_file; |
887 | struct cifsInodeInfo *cifsi = CIFS_I(inode); | 864 | struct cifsInodeInfo *cifsi = CIFS_I(inode); |
888 | 865 | ||
@@ -903,7 +880,6 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data, | |||
903 | 880 | ||
904 | xid = GetXid(); | 881 | xid = GetXid(); |
905 | 882 | ||
906 | long_op = cifs_write_timeout(cifsi, *poffset); | ||
907 | for (total_written = 0; write_size > total_written; | 883 | for (total_written = 0; write_size > total_written; |
908 | total_written += bytes_written) { | 884 | total_written += bytes_written) { |
909 | rc = -EAGAIN; | 885 | rc = -EAGAIN; |
@@ -931,7 +907,7 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data, | |||
931 | min_t(const int, cifs_sb->wsize, | 907 | min_t(const int, cifs_sb->wsize, |
932 | write_size - total_written), | 908 | write_size - total_written), |
933 | *poffset, &bytes_written, | 909 | *poffset, &bytes_written, |
934 | NULL, write_data + total_written, long_op); | 910 | NULL, write_data + total_written, 0); |
935 | } | 911 | } |
936 | if (rc || (bytes_written == 0)) { | 912 | if (rc || (bytes_written == 0)) { |
937 | if (total_written) | 913 | if (total_written) |
@@ -944,8 +920,6 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data, | |||
944 | cifs_update_eof(cifsi, *poffset, bytes_written); | 920 | cifs_update_eof(cifsi, *poffset, bytes_written); |
945 | *poffset += bytes_written; | 921 | *poffset += bytes_written; |
946 | } | 922 | } |
947 | long_op = CIFS_STD_OP; /* subsequent writes fast - | ||
948 | 15 seconds is plenty */ | ||
949 | } | 923 | } |
950 | 924 | ||
951 | cifs_stats_bytes_written(pTcon, total_written); | 925 | cifs_stats_bytes_written(pTcon, total_written); |
@@ -974,7 +948,7 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file, | |||
974 | unsigned int total_written; | 948 | unsigned int total_written; |
975 | struct cifs_sb_info *cifs_sb; | 949 | struct cifs_sb_info *cifs_sb; |
976 | struct cifsTconInfo *pTcon; | 950 | struct cifsTconInfo *pTcon; |
977 | int xid, long_op; | 951 | int xid; |
978 | struct dentry *dentry = open_file->dentry; | 952 | struct dentry *dentry = open_file->dentry; |
979 | struct cifsInodeInfo *cifsi = CIFS_I(dentry->d_inode); | 953 | struct cifsInodeInfo *cifsi = CIFS_I(dentry->d_inode); |
980 | 954 | ||
@@ -987,7 +961,6 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file, | |||
987 | 961 | ||
988 | xid = GetXid(); | 962 | xid = GetXid(); |
989 | 963 | ||
990 | long_op = cifs_write_timeout(cifsi, *poffset); | ||
991 | for (total_written = 0; write_size > total_written; | 964 | for (total_written = 0; write_size > total_written; |
992 | total_written += bytes_written) { | 965 | total_written += bytes_written) { |
993 | rc = -EAGAIN; | 966 | rc = -EAGAIN; |
@@ -1017,7 +990,7 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file, | |||
1017 | rc = CIFSSMBWrite2(xid, pTcon, | 990 | rc = CIFSSMBWrite2(xid, pTcon, |
1018 | open_file->netfid, len, | 991 | open_file->netfid, len, |
1019 | *poffset, &bytes_written, | 992 | *poffset, &bytes_written, |
1020 | iov, 1, long_op); | 993 | iov, 1, 0); |
1021 | } else | 994 | } else |
1022 | rc = CIFSSMBWrite(xid, pTcon, | 995 | rc = CIFSSMBWrite(xid, pTcon, |
1023 | open_file->netfid, | 996 | open_file->netfid, |
@@ -1025,7 +998,7 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file, | |||
1025 | write_size - total_written), | 998 | write_size - total_written), |
1026 | *poffset, &bytes_written, | 999 | *poffset, &bytes_written, |
1027 | write_data + total_written, | 1000 | write_data + total_written, |
1028 | NULL, long_op); | 1001 | NULL, 0); |
1029 | } | 1002 | } |
1030 | if (rc || (bytes_written == 0)) { | 1003 | if (rc || (bytes_written == 0)) { |
1031 | if (total_written) | 1004 | if (total_written) |
@@ -1038,8 +1011,6 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file, | |||
1038 | cifs_update_eof(cifsi, *poffset, bytes_written); | 1011 | cifs_update_eof(cifsi, *poffset, bytes_written); |
1039 | *poffset += bytes_written; | 1012 | *poffset += bytes_written; |
1040 | } | 1013 | } |
1041 | long_op = CIFS_STD_OP; /* subsequent writes fast - | ||
1042 | 15 seconds is plenty */ | ||
1043 | } | 1014 | } |
1044 | 1015 | ||
1045 | cifs_stats_bytes_written(pTcon, total_written); | 1016 | cifs_stats_bytes_written(pTcon, total_written); |
@@ -1239,7 +1210,7 @@ static int cifs_writepages(struct address_space *mapping, | |||
1239 | struct pagevec pvec; | 1210 | struct pagevec pvec; |
1240 | int rc = 0; | 1211 | int rc = 0; |
1241 | int scanned = 0; | 1212 | int scanned = 0; |
1242 | int xid, long_op; | 1213 | int xid; |
1243 | 1214 | ||
1244 | cifs_sb = CIFS_SB(mapping->host->i_sb); | 1215 | cifs_sb = CIFS_SB(mapping->host->i_sb); |
1245 | 1216 | ||
@@ -1377,43 +1348,67 @@ retry: | |||
1377 | break; | 1348 | break; |
1378 | } | 1349 | } |
1379 | if (n_iov) { | 1350 | if (n_iov) { |
1351 | retry_write: | ||
1380 | open_file = find_writable_file(CIFS_I(mapping->host), | 1352 | open_file = find_writable_file(CIFS_I(mapping->host), |
1381 | false); | 1353 | false); |
1382 | if (!open_file) { | 1354 | if (!open_file) { |
1383 | cERROR(1, "No writable handles for inode"); | 1355 | cERROR(1, "No writable handles for inode"); |
1384 | rc = -EBADF; | 1356 | rc = -EBADF; |
1385 | } else { | 1357 | } else { |
1386 | long_op = cifs_write_timeout(cifsi, offset); | ||
1387 | rc = CIFSSMBWrite2(xid, tcon, open_file->netfid, | 1358 | rc = CIFSSMBWrite2(xid, tcon, open_file->netfid, |
1388 | bytes_to_write, offset, | 1359 | bytes_to_write, offset, |
1389 | &bytes_written, iov, n_iov, | 1360 | &bytes_written, iov, n_iov, |
1390 | long_op); | 1361 | 0); |
1391 | cifsFileInfo_put(open_file); | 1362 | cifsFileInfo_put(open_file); |
1392 | cifs_update_eof(cifsi, offset, bytes_written); | ||
1393 | } | 1363 | } |
1394 | 1364 | ||
1395 | if (rc || bytes_written < bytes_to_write) { | 1365 | cFYI(1, "Write2 rc=%d, wrote=%u", rc, bytes_written); |
1396 | cERROR(1, "Write2 ret %d, wrote %d", | 1366 | |
1397 | rc, bytes_written); | 1367 | /* |
1398 | mapping_set_error(mapping, rc); | 1368 | * For now, treat a short write as if nothing got |
1399 | } else { | 1369 | * written. A zero length write however indicates |
1370 | * ENOSPC or EFBIG. We have no way to know which | ||
1371 | * though, so call it ENOSPC for now. EFBIG would | ||
1372 | * get translated to AS_EIO anyway. | ||
1373 | * | ||
1374 | * FIXME: make it take into account the data that did | ||
1375 | * get written | ||
1376 | */ | ||
1377 | if (rc == 0) { | ||
1378 | if (bytes_written == 0) | ||
1379 | rc = -ENOSPC; | ||
1380 | else if (bytes_written < bytes_to_write) | ||
1381 | rc = -EAGAIN; | ||
1382 | } | ||
1383 | |||
1384 | /* retry on data-integrity flush */ | ||
1385 | if (wbc->sync_mode == WB_SYNC_ALL && rc == -EAGAIN) | ||
1386 | goto retry_write; | ||
1387 | |||
1388 | /* fix the stats and EOF */ | ||
1389 | if (bytes_written > 0) { | ||
1400 | cifs_stats_bytes_written(tcon, bytes_written); | 1390 | cifs_stats_bytes_written(tcon, bytes_written); |
1391 | cifs_update_eof(cifsi, offset, bytes_written); | ||
1401 | } | 1392 | } |
1402 | 1393 | ||
1403 | for (i = 0; i < n_iov; i++) { | 1394 | for (i = 0; i < n_iov; i++) { |
1404 | page = pvec.pages[first + i]; | 1395 | page = pvec.pages[first + i]; |
1405 | /* Should we also set page error on | 1396 | /* on retryable write error, redirty page */ |
1406 | success rc but too little data written? */ | 1397 | if (rc == -EAGAIN) |
1407 | /* BB investigate retry logic on temporary | 1398 | redirty_page_for_writepage(wbc, page); |
1408 | server crash cases and how recovery works | 1399 | else if (rc != 0) |
1409 | when page marked as error */ | ||
1410 | if (rc) | ||
1411 | SetPageError(page); | 1400 | SetPageError(page); |
1412 | kunmap(page); | 1401 | kunmap(page); |
1413 | unlock_page(page); | 1402 | unlock_page(page); |
1414 | end_page_writeback(page); | 1403 | end_page_writeback(page); |
1415 | page_cache_release(page); | 1404 | page_cache_release(page); |
1416 | } | 1405 | } |
1406 | |||
1407 | if (rc != -EAGAIN) | ||
1408 | mapping_set_error(mapping, rc); | ||
1409 | else | ||
1410 | rc = 0; | ||
1411 | |||
1417 | if ((wbc->nr_to_write -= n_iov) <= 0) | 1412 | if ((wbc->nr_to_write -= n_iov) <= 0) |
1418 | done = 1; | 1413 | done = 1; |
1419 | index = next; | 1414 | index = next; |
@@ -2192,7 +2187,8 @@ void cifs_oplock_break(struct work_struct *work) | |||
2192 | */ | 2187 | */ |
2193 | if (!cfile->oplock_break_cancelled) { | 2188 | if (!cfile->oplock_break_cancelled) { |
2194 | rc = CIFSSMBLock(0, tlink_tcon(cfile->tlink), cfile->netfid, 0, | 2189 | rc = CIFSSMBLock(0, tlink_tcon(cfile->tlink), cfile->netfid, 0, |
2195 | 0, 0, 0, LOCKING_ANDX_OPLOCK_RELEASE, false); | 2190 | 0, 0, 0, LOCKING_ANDX_OPLOCK_RELEASE, false, |
2191 | cinode->clientCanCacheRead ? 1 : 0); | ||
2196 | cFYI(1, "Oplock release rc = %d", rc); | 2192 | cFYI(1, "Oplock release rc = %d", rc); |
2197 | } | 2193 | } |
2198 | 2194 | ||
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 43f10281bc19..09bfcf08a90f 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c | |||
@@ -571,7 +571,7 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv) | |||
571 | pCifsInode = CIFS_I(netfile->dentry->d_inode); | 571 | pCifsInode = CIFS_I(netfile->dentry->d_inode); |
572 | 572 | ||
573 | cifs_set_oplock_level(pCifsInode, | 573 | cifs_set_oplock_level(pCifsInode, |
574 | pSMB->OplockLevel); | 574 | pSMB->OplockLevel ? OPLOCK_READ : 0); |
575 | /* | 575 | /* |
576 | * cifs_oplock_break_put() can't be called | 576 | * cifs_oplock_break_put() can't be called |
577 | * from here. Get reference after queueing | 577 | * from here. Get reference after queueing |
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index eb746486e49e..1cffd82c4f13 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c | |||
@@ -879,7 +879,7 @@ ssetup_ntlmssp_authenticate: | |||
879 | BCC_LE(smb_buf) = cpu_to_le16(count); | 879 | BCC_LE(smb_buf) = cpu_to_le16(count); |
880 | 880 | ||
881 | rc = SendReceive2(xid, ses, iov, 3 /* num_iovecs */, &resp_buf_type, | 881 | rc = SendReceive2(xid, ses, iov, 3 /* num_iovecs */, &resp_buf_type, |
882 | CIFS_STD_OP /* not long */ | CIFS_LOG_ERROR); | 882 | CIFS_LOG_ERROR); |
883 | /* SMB request buf freed in SendReceive2 */ | 883 | /* SMB request buf freed in SendReceive2 */ |
884 | 884 | ||
885 | pSMB = (SESSION_SETUP_ANDX *)iov[0].iov_base; | 885 | pSMB = (SESSION_SETUP_ANDX *)iov[0].iov_base; |
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 59ca81b16919..c8e2808cd5e6 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c | |||
@@ -36,7 +36,13 @@ | |||
36 | 36 | ||
37 | extern mempool_t *cifs_mid_poolp; | 37 | extern mempool_t *cifs_mid_poolp; |
38 | 38 | ||
39 | static struct mid_q_entry * | 39 | static void |
40 | wake_up_task(struct mid_q_entry *mid) | ||
41 | { | ||
42 | wake_up_process(mid->callback_data); | ||
43 | } | ||
44 | |||
45 | struct mid_q_entry * | ||
40 | AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server) | 46 | AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server) |
41 | { | 47 | { |
42 | struct mid_q_entry *temp; | 48 | struct mid_q_entry *temp; |
@@ -58,28 +64,28 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server) | |||
58 | /* do_gettimeofday(&temp->when_sent);*/ /* easier to use jiffies */ | 64 | /* do_gettimeofday(&temp->when_sent);*/ /* easier to use jiffies */ |
59 | /* when mid allocated can be before when sent */ | 65 | /* when mid allocated can be before when sent */ |
60 | temp->when_alloc = jiffies; | 66 | temp->when_alloc = jiffies; |
61 | temp->tsk = current; | 67 | |
68 | /* | ||
69 | * The default is for the mid to be synchronous, so the | ||
70 | * default callback just wakes up the current task. | ||
71 | */ | ||
72 | temp->callback = wake_up_task; | ||
73 | temp->callback_data = current; | ||
62 | } | 74 | } |
63 | 75 | ||
64 | spin_lock(&GlobalMid_Lock); | ||
65 | list_add_tail(&temp->qhead, &server->pending_mid_q); | ||
66 | atomic_inc(&midCount); | 76 | atomic_inc(&midCount); |
67 | temp->midState = MID_REQUEST_ALLOCATED; | 77 | temp->midState = MID_REQUEST_ALLOCATED; |
68 | spin_unlock(&GlobalMid_Lock); | ||
69 | return temp; | 78 | return temp; |
70 | } | 79 | } |
71 | 80 | ||
72 | static void | 81 | void |
73 | DeleteMidQEntry(struct mid_q_entry *midEntry) | 82 | DeleteMidQEntry(struct mid_q_entry *midEntry) |
74 | { | 83 | { |
75 | #ifdef CONFIG_CIFS_STATS2 | 84 | #ifdef CONFIG_CIFS_STATS2 |
76 | unsigned long now; | 85 | unsigned long now; |
77 | #endif | 86 | #endif |
78 | spin_lock(&GlobalMid_Lock); | ||
79 | midEntry->midState = MID_FREE; | 87 | midEntry->midState = MID_FREE; |
80 | list_del(&midEntry->qhead); | ||
81 | atomic_dec(&midCount); | 88 | atomic_dec(&midCount); |
82 | spin_unlock(&GlobalMid_Lock); | ||
83 | if (midEntry->largeBuf) | 89 | if (midEntry->largeBuf) |
84 | cifs_buf_release(midEntry->resp_buf); | 90 | cifs_buf_release(midEntry->resp_buf); |
85 | else | 91 | else |
@@ -103,6 +109,16 @@ DeleteMidQEntry(struct mid_q_entry *midEntry) | |||
103 | mempool_free(midEntry, cifs_mid_poolp); | 109 | mempool_free(midEntry, cifs_mid_poolp); |
104 | } | 110 | } |
105 | 111 | ||
112 | static void | ||
113 | delete_mid(struct mid_q_entry *mid) | ||
114 | { | ||
115 | spin_lock(&GlobalMid_Lock); | ||
116 | list_del(&mid->qhead); | ||
117 | spin_unlock(&GlobalMid_Lock); | ||
118 | |||
119 | DeleteMidQEntry(mid); | ||
120 | } | ||
121 | |||
106 | static int | 122 | static int |
107 | smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec) | 123 | smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec) |
108 | { | 124 | { |
@@ -244,31 +260,31 @@ smb_send(struct TCP_Server_Info *server, struct smb_hdr *smb_buffer, | |||
244 | return smb_sendv(server, &iov, 1); | 260 | return smb_sendv(server, &iov, 1); |
245 | } | 261 | } |
246 | 262 | ||
247 | static int wait_for_free_request(struct cifsSesInfo *ses, const int long_op) | 263 | static int wait_for_free_request(struct TCP_Server_Info *server, |
264 | const int long_op) | ||
248 | { | 265 | { |
249 | if (long_op == CIFS_ASYNC_OP) { | 266 | if (long_op == CIFS_ASYNC_OP) { |
250 | /* oplock breaks must not be held up */ | 267 | /* oplock breaks must not be held up */ |
251 | atomic_inc(&ses->server->inFlight); | 268 | atomic_inc(&server->inFlight); |
252 | return 0; | 269 | return 0; |
253 | } | 270 | } |
254 | 271 | ||
255 | spin_lock(&GlobalMid_Lock); | 272 | spin_lock(&GlobalMid_Lock); |
256 | while (1) { | 273 | while (1) { |
257 | if (atomic_read(&ses->server->inFlight) >= | 274 | if (atomic_read(&server->inFlight) >= cifs_max_pending) { |
258 | cifs_max_pending){ | ||
259 | spin_unlock(&GlobalMid_Lock); | 275 | spin_unlock(&GlobalMid_Lock); |
260 | #ifdef CONFIG_CIFS_STATS2 | 276 | #ifdef CONFIG_CIFS_STATS2 |
261 | atomic_inc(&ses->server->num_waiters); | 277 | atomic_inc(&server->num_waiters); |
262 | #endif | 278 | #endif |
263 | wait_event(ses->server->request_q, | 279 | wait_event(server->request_q, |
264 | atomic_read(&ses->server->inFlight) | 280 | atomic_read(&server->inFlight) |
265 | < cifs_max_pending); | 281 | < cifs_max_pending); |
266 | #ifdef CONFIG_CIFS_STATS2 | 282 | #ifdef CONFIG_CIFS_STATS2 |
267 | atomic_dec(&ses->server->num_waiters); | 283 | atomic_dec(&server->num_waiters); |
268 | #endif | 284 | #endif |
269 | spin_lock(&GlobalMid_Lock); | 285 | spin_lock(&GlobalMid_Lock); |
270 | } else { | 286 | } else { |
271 | if (ses->server->tcpStatus == CifsExiting) { | 287 | if (server->tcpStatus == CifsExiting) { |
272 | spin_unlock(&GlobalMid_Lock); | 288 | spin_unlock(&GlobalMid_Lock); |
273 | return -ENOENT; | 289 | return -ENOENT; |
274 | } | 290 | } |
@@ -278,7 +294,7 @@ static int wait_for_free_request(struct cifsSesInfo *ses, const int long_op) | |||
278 | 294 | ||
279 | /* update # of requests on the wire to server */ | 295 | /* update # of requests on the wire to server */ |
280 | if (long_op != CIFS_BLOCKING_OP) | 296 | if (long_op != CIFS_BLOCKING_OP) |
281 | atomic_inc(&ses->server->inFlight); | 297 | atomic_inc(&server->inFlight); |
282 | spin_unlock(&GlobalMid_Lock); | 298 | spin_unlock(&GlobalMid_Lock); |
283 | break; | 299 | break; |
284 | } | 300 | } |
@@ -308,53 +324,81 @@ static int allocate_mid(struct cifsSesInfo *ses, struct smb_hdr *in_buf, | |||
308 | *ppmidQ = AllocMidQEntry(in_buf, ses->server); | 324 | *ppmidQ = AllocMidQEntry(in_buf, ses->server); |
309 | if (*ppmidQ == NULL) | 325 | if (*ppmidQ == NULL) |
310 | return -ENOMEM; | 326 | return -ENOMEM; |
327 | spin_lock(&GlobalMid_Lock); | ||
328 | list_add_tail(&(*ppmidQ)->qhead, &ses->server->pending_mid_q); | ||
329 | spin_unlock(&GlobalMid_Lock); | ||
311 | return 0; | 330 | return 0; |
312 | } | 331 | } |
313 | 332 | ||
314 | static int wait_for_response(struct cifsSesInfo *ses, | 333 | static int |
315 | struct mid_q_entry *midQ, | 334 | wait_for_response(struct TCP_Server_Info *server, struct mid_q_entry *midQ) |
316 | unsigned long timeout, | ||
317 | unsigned long time_to_wait) | ||
318 | { | 335 | { |
319 | unsigned long curr_timeout; | 336 | int error; |
320 | 337 | ||
321 | for (;;) { | 338 | error = wait_event_killable(server->response_q, |
322 | curr_timeout = timeout + jiffies; | 339 | midQ->midState != MID_REQUEST_SUBMITTED); |
323 | wait_event_timeout(ses->server->response_q, | 340 | if (error < 0) |
324 | midQ->midState != MID_REQUEST_SUBMITTED, timeout); | 341 | return -ERESTARTSYS; |
325 | 342 | ||
326 | if (time_after(jiffies, curr_timeout) && | 343 | return 0; |
327 | (midQ->midState == MID_REQUEST_SUBMITTED) && | 344 | } |
328 | ((ses->server->tcpStatus == CifsGood) || | ||
329 | (ses->server->tcpStatus == CifsNew))) { | ||
330 | 345 | ||
331 | unsigned long lrt; | ||
332 | 346 | ||
333 | /* We timed out. Is the server still | 347 | /* |
334 | sending replies ? */ | 348 | * Send a SMB request and set the callback function in the mid to handle |
335 | spin_lock(&GlobalMid_Lock); | 349 | * the result. Caller is responsible for dealing with timeouts. |
336 | lrt = ses->server->lstrp; | 350 | */ |
337 | spin_unlock(&GlobalMid_Lock); | 351 | int |
352 | cifs_call_async(struct TCP_Server_Info *server, struct smb_hdr *in_buf, | ||
353 | mid_callback_t *callback, void *cbdata) | ||
354 | { | ||
355 | int rc; | ||
356 | struct mid_q_entry *mid; | ||
338 | 357 | ||
339 | /* Calculate time_to_wait past last receive time. | 358 | rc = wait_for_free_request(server, CIFS_ASYNC_OP); |
340 | Although we prefer not to time out if the | 359 | if (rc) |
341 | server is still responding - we will time | 360 | return rc; |
342 | out if the server takes more than 15 (or 45 | 361 | |
343 | or 180) seconds to respond to this request | 362 | mutex_lock(&server->srv_mutex); |
344 | and has not responded to any request from | 363 | mid = AllocMidQEntry(in_buf, server); |
345 | other threads on the client within 10 seconds */ | 364 | if (mid == NULL) { |
346 | lrt += time_to_wait; | 365 | mutex_unlock(&server->srv_mutex); |
347 | if (time_after(jiffies, lrt)) { | 366 | return -ENOMEM; |
348 | /* No replies for time_to_wait. */ | ||
349 | cERROR(1, "server not responding"); | ||
350 | return -1; | ||
351 | } | ||
352 | } else { | ||
353 | return 0; | ||
354 | } | ||
355 | } | 367 | } |
356 | } | ||
357 | 368 | ||
369 | /* put it on the pending_mid_q */ | ||
370 | spin_lock(&GlobalMid_Lock); | ||
371 | list_add_tail(&mid->qhead, &server->pending_mid_q); | ||
372 | spin_unlock(&GlobalMid_Lock); | ||
373 | |||
374 | rc = cifs_sign_smb(in_buf, server, &mid->sequence_number); | ||
375 | if (rc) { | ||
376 | mutex_unlock(&server->srv_mutex); | ||
377 | goto out_err; | ||
378 | } | ||
379 | |||
380 | mid->callback = callback; | ||
381 | mid->callback_data = cbdata; | ||
382 | mid->midState = MID_REQUEST_SUBMITTED; | ||
383 | #ifdef CONFIG_CIFS_STATS2 | ||
384 | atomic_inc(&server->inSend); | ||
385 | #endif | ||
386 | rc = smb_send(server, in_buf, in_buf->smb_buf_length); | ||
387 | #ifdef CONFIG_CIFS_STATS2 | ||
388 | atomic_dec(&server->inSend); | ||
389 | mid->when_sent = jiffies; | ||
390 | #endif | ||
391 | mutex_unlock(&server->srv_mutex); | ||
392 | if (rc) | ||
393 | goto out_err; | ||
394 | |||
395 | return rc; | ||
396 | out_err: | ||
397 | delete_mid(mid); | ||
398 | atomic_dec(&server->inFlight); | ||
399 | wake_up(&server->request_q); | ||
400 | return rc; | ||
401 | } | ||
358 | 402 | ||
359 | /* | 403 | /* |
360 | * | 404 | * |
@@ -382,6 +426,81 @@ SendReceiveNoRsp(const unsigned int xid, struct cifsSesInfo *ses, | |||
382 | return rc; | 426 | return rc; |
383 | } | 427 | } |
384 | 428 | ||
429 | static int | ||
430 | sync_mid_result(struct mid_q_entry *mid, struct TCP_Server_Info *server) | ||
431 | { | ||
432 | int rc = 0; | ||
433 | |||
434 | cFYI(1, "%s: cmd=%d mid=%d state=%d", __func__, mid->command, | ||
435 | mid->mid, mid->midState); | ||
436 | |||
437 | spin_lock(&GlobalMid_Lock); | ||
438 | /* ensure that it's no longer on the pending_mid_q */ | ||
439 | list_del_init(&mid->qhead); | ||
440 | |||
441 | switch (mid->midState) { | ||
442 | case MID_RESPONSE_RECEIVED: | ||
443 | spin_unlock(&GlobalMid_Lock); | ||
444 | return rc; | ||
445 | case MID_REQUEST_SUBMITTED: | ||
446 | /* socket is going down, reject all calls */ | ||
447 | if (server->tcpStatus == CifsExiting) { | ||
448 | cERROR(1, "%s: canceling mid=%d cmd=0x%x state=%d", | ||
449 | __func__, mid->mid, mid->command, mid->midState); | ||
450 | rc = -EHOSTDOWN; | ||
451 | break; | ||
452 | } | ||
453 | case MID_RETRY_NEEDED: | ||
454 | rc = -EAGAIN; | ||
455 | break; | ||
456 | default: | ||
457 | cERROR(1, "%s: invalid mid state mid=%d state=%d", __func__, | ||
458 | mid->mid, mid->midState); | ||
459 | rc = -EIO; | ||
460 | } | ||
461 | spin_unlock(&GlobalMid_Lock); | ||
462 | |||
463 | DeleteMidQEntry(mid); | ||
464 | return rc; | ||
465 | } | ||
466 | |||
467 | /* | ||
468 | * An NT cancel request header looks just like the original request except: | ||
469 | * | ||
470 | * The Command is SMB_COM_NT_CANCEL | ||
471 | * The WordCount is zeroed out | ||
472 | * The ByteCount is zeroed out | ||
473 | * | ||
474 | * This function mangles an existing request buffer into a | ||
475 | * SMB_COM_NT_CANCEL request and then sends it. | ||
476 | */ | ||
477 | static int | ||
478 | send_nt_cancel(struct TCP_Server_Info *server, struct smb_hdr *in_buf, | ||
479 | struct mid_q_entry *mid) | ||
480 | { | ||
481 | int rc = 0; | ||
482 | |||
483 | /* -4 for RFC1001 length and +2 for BCC field */ | ||
484 | in_buf->smb_buf_length = sizeof(struct smb_hdr) - 4 + 2; | ||
485 | in_buf->Command = SMB_COM_NT_CANCEL; | ||
486 | in_buf->WordCount = 0; | ||
487 | BCC_LE(in_buf) = 0; | ||
488 | |||
489 | mutex_lock(&server->srv_mutex); | ||
490 | rc = cifs_sign_smb(in_buf, server, &mid->sequence_number); | ||
491 | if (rc) { | ||
492 | mutex_unlock(&server->srv_mutex); | ||
493 | return rc; | ||
494 | } | ||
495 | rc = smb_send(server, in_buf, in_buf->smb_buf_length); | ||
496 | mutex_unlock(&server->srv_mutex); | ||
497 | |||
498 | cFYI(1, "issued NT_CANCEL for mid %u, rc = %d", | ||
499 | in_buf->Mid, rc); | ||
500 | |||
501 | return rc; | ||
502 | } | ||
503 | |||
385 | int | 504 | int |
386 | SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | 505 | SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, |
387 | struct kvec *iov, int n_vec, int *pRespBufType /* ret */, | 506 | struct kvec *iov, int n_vec, int *pRespBufType /* ret */, |
@@ -390,7 +509,6 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | |||
390 | int rc = 0; | 509 | int rc = 0; |
391 | int long_op; | 510 | int long_op; |
392 | unsigned int receive_len; | 511 | unsigned int receive_len; |
393 | unsigned long timeout; | ||
394 | struct mid_q_entry *midQ; | 512 | struct mid_q_entry *midQ; |
395 | struct smb_hdr *in_buf = iov[0].iov_base; | 513 | struct smb_hdr *in_buf = iov[0].iov_base; |
396 | 514 | ||
@@ -413,7 +531,7 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | |||
413 | to the same server. We may make this configurable later or | 531 | to the same server. We may make this configurable later or |
414 | use ses->maxReq */ | 532 | use ses->maxReq */ |
415 | 533 | ||
416 | rc = wait_for_free_request(ses, long_op); | 534 | rc = wait_for_free_request(ses->server, long_op); |
417 | if (rc) { | 535 | if (rc) { |
418 | cifs_small_buf_release(in_buf); | 536 | cifs_small_buf_release(in_buf); |
419 | return rc; | 537 | return rc; |
@@ -457,65 +575,20 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | |||
457 | if (rc < 0) | 575 | if (rc < 0) |
458 | goto out; | 576 | goto out; |
459 | 577 | ||
460 | if (long_op == CIFS_STD_OP) | 578 | if (long_op == CIFS_ASYNC_OP) |
461 | timeout = 15 * HZ; | ||
462 | else if (long_op == CIFS_VLONG_OP) /* e.g. slow writes past EOF */ | ||
463 | timeout = 180 * HZ; | ||
464 | else if (long_op == CIFS_LONG_OP) | ||
465 | timeout = 45 * HZ; /* should be greater than | ||
466 | servers oplock break timeout (about 43 seconds) */ | ||
467 | else if (long_op == CIFS_ASYNC_OP) | ||
468 | goto out; | 579 | goto out; |
469 | else if (long_op == CIFS_BLOCKING_OP) | ||
470 | timeout = 0x7FFFFFFF; /* large, but not so large as to wrap */ | ||
471 | else { | ||
472 | cERROR(1, "unknown timeout flag %d", long_op); | ||
473 | rc = -EIO; | ||
474 | goto out; | ||
475 | } | ||
476 | |||
477 | /* wait for 15 seconds or until woken up due to response arriving or | ||
478 | due to last connection to this server being unmounted */ | ||
479 | if (signal_pending(current)) { | ||
480 | /* if signal pending do not hold up user for full smb timeout | ||
481 | but we still give response a chance to complete */ | ||
482 | timeout = 2 * HZ; | ||
483 | } | ||
484 | |||
485 | /* No user interrupts in wait - wreaks havoc with performance */ | ||
486 | wait_for_response(ses, midQ, timeout, 10 * HZ); | ||
487 | |||
488 | spin_lock(&GlobalMid_Lock); | ||
489 | 580 | ||
490 | if (midQ->resp_buf == NULL) { | 581 | rc = wait_for_response(ses->server, midQ); |
491 | cERROR(1, "No response to cmd %d mid %d", | 582 | if (rc != 0) |
492 | midQ->command, midQ->mid); | 583 | goto out; |
493 | if (midQ->midState == MID_REQUEST_SUBMITTED) { | ||
494 | if (ses->server->tcpStatus == CifsExiting) | ||
495 | rc = -EHOSTDOWN; | ||
496 | else { | ||
497 | ses->server->tcpStatus = CifsNeedReconnect; | ||
498 | midQ->midState = MID_RETRY_NEEDED; | ||
499 | } | ||
500 | } | ||
501 | 584 | ||
502 | if (rc != -EHOSTDOWN) { | 585 | rc = sync_mid_result(midQ, ses->server); |
503 | if (midQ->midState == MID_RETRY_NEEDED) { | 586 | if (rc != 0) { |
504 | rc = -EAGAIN; | ||
505 | cFYI(1, "marking request for retry"); | ||
506 | } else { | ||
507 | rc = -EIO; | ||
508 | } | ||
509 | } | ||
510 | spin_unlock(&GlobalMid_Lock); | ||
511 | DeleteMidQEntry(midQ); | ||
512 | /* Update # of requests on wire to server */ | ||
513 | atomic_dec(&ses->server->inFlight); | 587 | atomic_dec(&ses->server->inFlight); |
514 | wake_up(&ses->server->request_q); | 588 | wake_up(&ses->server->request_q); |
515 | return rc; | 589 | return rc; |
516 | } | 590 | } |
517 | 591 | ||
518 | spin_unlock(&GlobalMid_Lock); | ||
519 | receive_len = midQ->resp_buf->smb_buf_length; | 592 | receive_len = midQ->resp_buf->smb_buf_length; |
520 | 593 | ||
521 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { | 594 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { |
@@ -564,14 +637,14 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | |||
564 | if ((flags & CIFS_NO_RESP) == 0) | 637 | if ((flags & CIFS_NO_RESP) == 0) |
565 | midQ->resp_buf = NULL; /* mark it so buf will | 638 | midQ->resp_buf = NULL; /* mark it so buf will |
566 | not be freed by | 639 | not be freed by |
567 | DeleteMidQEntry */ | 640 | delete_mid */ |
568 | } else { | 641 | } else { |
569 | rc = -EIO; | 642 | rc = -EIO; |
570 | cFYI(1, "Bad MID state?"); | 643 | cFYI(1, "Bad MID state?"); |
571 | } | 644 | } |
572 | 645 | ||
573 | out: | 646 | out: |
574 | DeleteMidQEntry(midQ); | 647 | delete_mid(midQ); |
575 | atomic_dec(&ses->server->inFlight); | 648 | atomic_dec(&ses->server->inFlight); |
576 | wake_up(&ses->server->request_q); | 649 | wake_up(&ses->server->request_q); |
577 | 650 | ||
@@ -585,7 +658,6 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses, | |||
585 | { | 658 | { |
586 | int rc = 0; | 659 | int rc = 0; |
587 | unsigned int receive_len; | 660 | unsigned int receive_len; |
588 | unsigned long timeout; | ||
589 | struct mid_q_entry *midQ; | 661 | struct mid_q_entry *midQ; |
590 | 662 | ||
591 | if (ses == NULL) { | 663 | if (ses == NULL) { |
@@ -610,7 +682,7 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses, | |||
610 | return -EIO; | 682 | return -EIO; |
611 | } | 683 | } |
612 | 684 | ||
613 | rc = wait_for_free_request(ses, long_op); | 685 | rc = wait_for_free_request(ses->server, long_op); |
614 | if (rc) | 686 | if (rc) |
615 | return rc; | 687 | return rc; |
616 | 688 | ||
@@ -649,64 +721,20 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses, | |||
649 | if (rc < 0) | 721 | if (rc < 0) |
650 | goto out; | 722 | goto out; |
651 | 723 | ||
652 | if (long_op == CIFS_STD_OP) | 724 | if (long_op == CIFS_ASYNC_OP) |
653 | timeout = 15 * HZ; | ||
654 | /* wait for 15 seconds or until woken up due to response arriving or | ||
655 | due to last connection to this server being unmounted */ | ||
656 | else if (long_op == CIFS_ASYNC_OP) | ||
657 | goto out; | 725 | goto out; |
658 | else if (long_op == CIFS_VLONG_OP) /* writes past EOF can be slow */ | ||
659 | timeout = 180 * HZ; | ||
660 | else if (long_op == CIFS_LONG_OP) | ||
661 | timeout = 45 * HZ; /* should be greater than | ||
662 | servers oplock break timeout (about 43 seconds) */ | ||
663 | else if (long_op == CIFS_BLOCKING_OP) | ||
664 | timeout = 0x7FFFFFFF; /* large but no so large as to wrap */ | ||
665 | else { | ||
666 | cERROR(1, "unknown timeout flag %d", long_op); | ||
667 | rc = -EIO; | ||
668 | goto out; | ||
669 | } | ||
670 | 726 | ||
671 | if (signal_pending(current)) { | 727 | rc = wait_for_response(ses->server, midQ); |
672 | /* if signal pending do not hold up user for full smb timeout | 728 | if (rc != 0) |
673 | but we still give response a chance to complete */ | 729 | goto out; |
674 | timeout = 2 * HZ; | ||
675 | } | ||
676 | |||
677 | /* No user interrupts in wait - wreaks havoc with performance */ | ||
678 | wait_for_response(ses, midQ, timeout, 10 * HZ); | ||
679 | |||
680 | spin_lock(&GlobalMid_Lock); | ||
681 | if (midQ->resp_buf == NULL) { | ||
682 | cERROR(1, "No response for cmd %d mid %d", | ||
683 | midQ->command, midQ->mid); | ||
684 | if (midQ->midState == MID_REQUEST_SUBMITTED) { | ||
685 | if (ses->server->tcpStatus == CifsExiting) | ||
686 | rc = -EHOSTDOWN; | ||
687 | else { | ||
688 | ses->server->tcpStatus = CifsNeedReconnect; | ||
689 | midQ->midState = MID_RETRY_NEEDED; | ||
690 | } | ||
691 | } | ||
692 | 730 | ||
693 | if (rc != -EHOSTDOWN) { | 731 | rc = sync_mid_result(midQ, ses->server); |
694 | if (midQ->midState == MID_RETRY_NEEDED) { | 732 | if (rc != 0) { |
695 | rc = -EAGAIN; | ||
696 | cFYI(1, "marking request for retry"); | ||
697 | } else { | ||
698 | rc = -EIO; | ||
699 | } | ||
700 | } | ||
701 | spin_unlock(&GlobalMid_Lock); | ||
702 | DeleteMidQEntry(midQ); | ||
703 | /* Update # of requests on wire to server */ | ||
704 | atomic_dec(&ses->server->inFlight); | 733 | atomic_dec(&ses->server->inFlight); |
705 | wake_up(&ses->server->request_q); | 734 | wake_up(&ses->server->request_q); |
706 | return rc; | 735 | return rc; |
707 | } | 736 | } |
708 | 737 | ||
709 | spin_unlock(&GlobalMid_Lock); | ||
710 | receive_len = midQ->resp_buf->smb_buf_length; | 738 | receive_len = midQ->resp_buf->smb_buf_length; |
711 | 739 | ||
712 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { | 740 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { |
@@ -755,36 +783,13 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses, | |||
755 | } | 783 | } |
756 | 784 | ||
757 | out: | 785 | out: |
758 | DeleteMidQEntry(midQ); | 786 | delete_mid(midQ); |
759 | atomic_dec(&ses->server->inFlight); | 787 | atomic_dec(&ses->server->inFlight); |
760 | wake_up(&ses->server->request_q); | 788 | wake_up(&ses->server->request_q); |
761 | 789 | ||
762 | return rc; | 790 | return rc; |
763 | } | 791 | } |
764 | 792 | ||
765 | /* Send an NT_CANCEL SMB to cause the POSIX blocking lock to return. */ | ||
766 | |||
767 | static int | ||
768 | send_nt_cancel(struct cifsTconInfo *tcon, struct smb_hdr *in_buf, | ||
769 | struct mid_q_entry *midQ) | ||
770 | { | ||
771 | int rc = 0; | ||
772 | struct cifsSesInfo *ses = tcon->ses; | ||
773 | __u16 mid = in_buf->Mid; | ||
774 | |||
775 | header_assemble(in_buf, SMB_COM_NT_CANCEL, tcon, 0); | ||
776 | in_buf->Mid = mid; | ||
777 | mutex_lock(&ses->server->srv_mutex); | ||
778 | rc = cifs_sign_smb(in_buf, ses->server, &midQ->sequence_number); | ||
779 | if (rc) { | ||
780 | mutex_unlock(&ses->server->srv_mutex); | ||
781 | return rc; | ||
782 | } | ||
783 | rc = smb_send(ses->server, in_buf, in_buf->smb_buf_length); | ||
784 | mutex_unlock(&ses->server->srv_mutex); | ||
785 | return rc; | ||
786 | } | ||
787 | |||
788 | /* We send a LOCKINGX_CANCEL_LOCK to cause the Windows | 793 | /* We send a LOCKINGX_CANCEL_LOCK to cause the Windows |
789 | blocking lock to return. */ | 794 | blocking lock to return. */ |
790 | 795 | ||
@@ -807,7 +812,7 @@ send_lock_cancel(const unsigned int xid, struct cifsTconInfo *tcon, | |||
807 | pSMB->hdr.Mid = GetNextMid(ses->server); | 812 | pSMB->hdr.Mid = GetNextMid(ses->server); |
808 | 813 | ||
809 | return SendReceive(xid, ses, in_buf, out_buf, | 814 | return SendReceive(xid, ses, in_buf, out_buf, |
810 | &bytes_returned, CIFS_STD_OP); | 815 | &bytes_returned, 0); |
811 | } | 816 | } |
812 | 817 | ||
813 | int | 818 | int |
@@ -845,7 +850,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
845 | return -EIO; | 850 | return -EIO; |
846 | } | 851 | } |
847 | 852 | ||
848 | rc = wait_for_free_request(ses, CIFS_BLOCKING_OP); | 853 | rc = wait_for_free_request(ses->server, CIFS_BLOCKING_OP); |
849 | if (rc) | 854 | if (rc) |
850 | return rc; | 855 | return rc; |
851 | 856 | ||
@@ -863,7 +868,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
863 | 868 | ||
864 | rc = cifs_sign_smb(in_buf, ses->server, &midQ->sequence_number); | 869 | rc = cifs_sign_smb(in_buf, ses->server, &midQ->sequence_number); |
865 | if (rc) { | 870 | if (rc) { |
866 | DeleteMidQEntry(midQ); | 871 | delete_mid(midQ); |
867 | mutex_unlock(&ses->server->srv_mutex); | 872 | mutex_unlock(&ses->server->srv_mutex); |
868 | return rc; | 873 | return rc; |
869 | } | 874 | } |
@@ -880,7 +885,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
880 | mutex_unlock(&ses->server->srv_mutex); | 885 | mutex_unlock(&ses->server->srv_mutex); |
881 | 886 | ||
882 | if (rc < 0) { | 887 | if (rc < 0) { |
883 | DeleteMidQEntry(midQ); | 888 | delete_mid(midQ); |
884 | return rc; | 889 | return rc; |
885 | } | 890 | } |
886 | 891 | ||
@@ -899,10 +904,9 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
899 | if (in_buf->Command == SMB_COM_TRANSACTION2) { | 904 | if (in_buf->Command == SMB_COM_TRANSACTION2) { |
900 | /* POSIX lock. We send a NT_CANCEL SMB to cause the | 905 | /* POSIX lock. We send a NT_CANCEL SMB to cause the |
901 | blocking lock to return. */ | 906 | blocking lock to return. */ |
902 | 907 | rc = send_nt_cancel(ses->server, in_buf, midQ); | |
903 | rc = send_nt_cancel(tcon, in_buf, midQ); | ||
904 | if (rc) { | 908 | if (rc) { |
905 | DeleteMidQEntry(midQ); | 909 | delete_mid(midQ); |
906 | return rc; | 910 | return rc; |
907 | } | 911 | } |
908 | } else { | 912 | } else { |
@@ -914,47 +918,22 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
914 | /* If we get -ENOLCK back the lock may have | 918 | /* If we get -ENOLCK back the lock may have |
915 | already been removed. Don't exit in this case. */ | 919 | already been removed. Don't exit in this case. */ |
916 | if (rc && rc != -ENOLCK) { | 920 | if (rc && rc != -ENOLCK) { |
917 | DeleteMidQEntry(midQ); | 921 | delete_mid(midQ); |
918 | return rc; | 922 | return rc; |
919 | } | 923 | } |
920 | } | 924 | } |
921 | 925 | ||
922 | /* Wait 5 seconds for the response. */ | 926 | if (wait_for_response(ses->server, midQ) == 0) { |
923 | if (wait_for_response(ses, midQ, 5 * HZ, 5 * HZ) == 0) { | ||
924 | /* We got the response - restart system call. */ | 927 | /* We got the response - restart system call. */ |
925 | rstart = 1; | 928 | rstart = 1; |
926 | } | 929 | } |
927 | } | 930 | } |
928 | 931 | ||
929 | spin_lock(&GlobalMid_Lock); | 932 | rc = sync_mid_result(midQ, ses->server); |
930 | if (midQ->resp_buf) { | 933 | if (rc != 0) |
931 | spin_unlock(&GlobalMid_Lock); | ||
932 | receive_len = midQ->resp_buf->smb_buf_length; | ||
933 | } else { | ||
934 | cERROR(1, "No response for cmd %d mid %d", | ||
935 | midQ->command, midQ->mid); | ||
936 | if (midQ->midState == MID_REQUEST_SUBMITTED) { | ||
937 | if (ses->server->tcpStatus == CifsExiting) | ||
938 | rc = -EHOSTDOWN; | ||
939 | else { | ||
940 | ses->server->tcpStatus = CifsNeedReconnect; | ||
941 | midQ->midState = MID_RETRY_NEEDED; | ||
942 | } | ||
943 | } | ||
944 | |||
945 | if (rc != -EHOSTDOWN) { | ||
946 | if (midQ->midState == MID_RETRY_NEEDED) { | ||
947 | rc = -EAGAIN; | ||
948 | cFYI(1, "marking request for retry"); | ||
949 | } else { | ||
950 | rc = -EIO; | ||
951 | } | ||
952 | } | ||
953 | spin_unlock(&GlobalMid_Lock); | ||
954 | DeleteMidQEntry(midQ); | ||
955 | return rc; | 934 | return rc; |
956 | } | ||
957 | 935 | ||
936 | receive_len = midQ->resp_buf->smb_buf_length; | ||
958 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { | 937 | if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) { |
959 | cERROR(1, "Frame too large received. Length: %d Xid: %d", | 938 | cERROR(1, "Frame too large received. Length: %d Xid: %d", |
960 | receive_len, xid); | 939 | receive_len, xid); |
@@ -1001,7 +980,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon, | |||
1001 | BCC(out_buf) = le16_to_cpu(BCC_LE(out_buf)); | 980 | BCC(out_buf) = le16_to_cpu(BCC_LE(out_buf)); |
1002 | 981 | ||
1003 | out: | 982 | out: |
1004 | DeleteMidQEntry(midQ); | 983 | delete_mid(midQ); |
1005 | if (rstart && rc == -EACCES) | 984 | if (rstart && rc == -EACCES) |
1006 | return -ERESTARTSYS; | 985 | return -ERESTARTSYS; |
1007 | return rc; | 986 | return rc; |
diff --git a/fs/direct-io.c b/fs/direct-io.c index 85882f6ba5f7..b044705eedd4 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -325,12 +325,16 @@ void dio_end_io(struct bio *bio, int error) | |||
325 | } | 325 | } |
326 | EXPORT_SYMBOL_GPL(dio_end_io); | 326 | EXPORT_SYMBOL_GPL(dio_end_io); |
327 | 327 | ||
328 | static int | 328 | static void |
329 | dio_bio_alloc(struct dio *dio, struct block_device *bdev, | 329 | dio_bio_alloc(struct dio *dio, struct block_device *bdev, |
330 | sector_t first_sector, int nr_vecs) | 330 | sector_t first_sector, int nr_vecs) |
331 | { | 331 | { |
332 | struct bio *bio; | 332 | struct bio *bio; |
333 | 333 | ||
334 | /* | ||
335 | * bio_alloc() is guaranteed to return a bio when called with | ||
336 | * __GFP_WAIT and we request a valid number of vectors. | ||
337 | */ | ||
334 | bio = bio_alloc(GFP_KERNEL, nr_vecs); | 338 | bio = bio_alloc(GFP_KERNEL, nr_vecs); |
335 | 339 | ||
336 | bio->bi_bdev = bdev; | 340 | bio->bi_bdev = bdev; |
@@ -342,7 +346,6 @@ dio_bio_alloc(struct dio *dio, struct block_device *bdev, | |||
342 | 346 | ||
343 | dio->bio = bio; | 347 | dio->bio = bio; |
344 | dio->logical_offset_in_bio = dio->cur_page_fs_offset; | 348 | dio->logical_offset_in_bio = dio->cur_page_fs_offset; |
345 | return 0; | ||
346 | } | 349 | } |
347 | 350 | ||
348 | /* | 351 | /* |
@@ -583,8 +586,9 @@ static int dio_new_bio(struct dio *dio, sector_t start_sector) | |||
583 | goto out; | 586 | goto out; |
584 | sector = start_sector << (dio->blkbits - 9); | 587 | sector = start_sector << (dio->blkbits - 9); |
585 | nr_pages = min(dio->pages_in_io, bio_get_nr_vecs(dio->map_bh.b_bdev)); | 588 | nr_pages = min(dio->pages_in_io, bio_get_nr_vecs(dio->map_bh.b_bdev)); |
589 | nr_pages = min(nr_pages, BIO_MAX_PAGES); | ||
586 | BUG_ON(nr_pages <= 0); | 590 | BUG_ON(nr_pages <= 0); |
587 | ret = dio_bio_alloc(dio, dio->map_bh.b_bdev, sector, nr_pages); | 591 | dio_bio_alloc(dio, dio->map_bh.b_bdev, sector, nr_pages); |
588 | dio->boundary = 0; | 592 | dio->boundary = 0; |
589 | out: | 593 | out: |
590 | return ret; | 594 | return ret; |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 7aa767d4f06f..85c8cc8f2473 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -754,7 +754,7 @@ static int ext3_release_dquot(struct dquot *dquot); | |||
754 | static int ext3_mark_dquot_dirty(struct dquot *dquot); | 754 | static int ext3_mark_dquot_dirty(struct dquot *dquot); |
755 | static int ext3_write_info(struct super_block *sb, int type); | 755 | static int ext3_write_info(struct super_block *sb, int type); |
756 | static int ext3_quota_on(struct super_block *sb, int type, int format_id, | 756 | static int ext3_quota_on(struct super_block *sb, int type, int format_id, |
757 | char *path); | 757 | struct path *path); |
758 | static int ext3_quota_on_mount(struct super_block *sb, int type); | 758 | static int ext3_quota_on_mount(struct super_block *sb, int type); |
759 | static ssize_t ext3_quota_read(struct super_block *sb, int type, char *data, | 759 | static ssize_t ext3_quota_read(struct super_block *sb, int type, char *data, |
760 | size_t len, loff_t off); | 760 | size_t len, loff_t off); |
@@ -2877,27 +2877,20 @@ static int ext3_quota_on_mount(struct super_block *sb, int type) | |||
2877 | * Standard function to be called on quota_on | 2877 | * Standard function to be called on quota_on |
2878 | */ | 2878 | */ |
2879 | static int ext3_quota_on(struct super_block *sb, int type, int format_id, | 2879 | static int ext3_quota_on(struct super_block *sb, int type, int format_id, |
2880 | char *name) | 2880 | struct path *path) |
2881 | { | 2881 | { |
2882 | int err; | 2882 | int err; |
2883 | struct path path; | ||
2884 | 2883 | ||
2885 | if (!test_opt(sb, QUOTA)) | 2884 | if (!test_opt(sb, QUOTA)) |
2886 | return -EINVAL; | 2885 | return -EINVAL; |
2887 | 2886 | ||
2888 | err = kern_path(name, LOOKUP_FOLLOW, &path); | ||
2889 | if (err) | ||
2890 | return err; | ||
2891 | |||
2892 | /* Quotafile not on the same filesystem? */ | 2887 | /* Quotafile not on the same filesystem? */ |
2893 | if (path.mnt->mnt_sb != sb) { | 2888 | if (path->mnt->mnt_sb != sb) |
2894 | path_put(&path); | ||
2895 | return -EXDEV; | 2889 | return -EXDEV; |
2896 | } | ||
2897 | /* Journaling quota? */ | 2890 | /* Journaling quota? */ |
2898 | if (EXT3_SB(sb)->s_qf_names[type]) { | 2891 | if (EXT3_SB(sb)->s_qf_names[type]) { |
2899 | /* Quotafile not of fs root? */ | 2892 | /* Quotafile not of fs root? */ |
2900 | if (path.dentry->d_parent != sb->s_root) | 2893 | if (path->dentry->d_parent != sb->s_root) |
2901 | ext3_msg(sb, KERN_WARNING, | 2894 | ext3_msg(sb, KERN_WARNING, |
2902 | "warning: Quota file not on filesystem root. " | 2895 | "warning: Quota file not on filesystem root. " |
2903 | "Journaled quota will not work."); | 2896 | "Journaled quota will not work."); |
@@ -2907,7 +2900,7 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id, | |||
2907 | * When we journal data on quota file, we have to flush journal to see | 2900 | * When we journal data on quota file, we have to flush journal to see |
2908 | * all updates to the file when we bypass pagecache... | 2901 | * all updates to the file when we bypass pagecache... |
2909 | */ | 2902 | */ |
2910 | if (ext3_should_journal_data(path.dentry->d_inode)) { | 2903 | if (ext3_should_journal_data(path->dentry->d_inode)) { |
2911 | /* | 2904 | /* |
2912 | * We don't need to lock updates but journal_flush() could | 2905 | * We don't need to lock updates but journal_flush() could |
2913 | * otherwise be livelocked... | 2906 | * otherwise be livelocked... |
@@ -2915,15 +2908,11 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id, | |||
2915 | journal_lock_updates(EXT3_SB(sb)->s_journal); | 2908 | journal_lock_updates(EXT3_SB(sb)->s_journal); |
2916 | err = journal_flush(EXT3_SB(sb)->s_journal); | 2909 | err = journal_flush(EXT3_SB(sb)->s_journal); |
2917 | journal_unlock_updates(EXT3_SB(sb)->s_journal); | 2910 | journal_unlock_updates(EXT3_SB(sb)->s_journal); |
2918 | if (err) { | 2911 | if (err) |
2919 | path_put(&path); | ||
2920 | return err; | 2912 | return err; |
2921 | } | ||
2922 | } | 2913 | } |
2923 | 2914 | ||
2924 | err = dquot_quota_on_path(sb, type, format_id, &path); | 2915 | return dquot_quota_on(sb, type, format_id, path); |
2925 | path_put(&path); | ||
2926 | return err; | ||
2927 | } | 2916 | } |
2928 | 2917 | ||
2929 | /* Read data from quotafile - avoid pagecache and such because we cannot afford | 2918 | /* Read data from quotafile - avoid pagecache and such because we cannot afford |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index cb10a06775e4..48ce561fafac 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -1161,7 +1161,7 @@ static int ext4_release_dquot(struct dquot *dquot); | |||
1161 | static int ext4_mark_dquot_dirty(struct dquot *dquot); | 1161 | static int ext4_mark_dquot_dirty(struct dquot *dquot); |
1162 | static int ext4_write_info(struct super_block *sb, int type); | 1162 | static int ext4_write_info(struct super_block *sb, int type); |
1163 | static int ext4_quota_on(struct super_block *sb, int type, int format_id, | 1163 | static int ext4_quota_on(struct super_block *sb, int type, int format_id, |
1164 | char *path); | 1164 | struct path *path); |
1165 | static int ext4_quota_off(struct super_block *sb, int type); | 1165 | static int ext4_quota_off(struct super_block *sb, int type); |
1166 | static int ext4_quota_on_mount(struct super_block *sb, int type); | 1166 | static int ext4_quota_on_mount(struct super_block *sb, int type); |
1167 | static ssize_t ext4_quota_read(struct super_block *sb, int type, char *data, | 1167 | static ssize_t ext4_quota_read(struct super_block *sb, int type, char *data, |
@@ -4558,27 +4558,20 @@ static int ext4_quota_on_mount(struct super_block *sb, int type) | |||
4558 | * Standard function to be called on quota_on | 4558 | * Standard function to be called on quota_on |
4559 | */ | 4559 | */ |
4560 | static int ext4_quota_on(struct super_block *sb, int type, int format_id, | 4560 | static int ext4_quota_on(struct super_block *sb, int type, int format_id, |
4561 | char *name) | 4561 | struct path *path) |
4562 | { | 4562 | { |
4563 | int err; | 4563 | int err; |
4564 | struct path path; | ||
4565 | 4564 | ||
4566 | if (!test_opt(sb, QUOTA)) | 4565 | if (!test_opt(sb, QUOTA)) |
4567 | return -EINVAL; | 4566 | return -EINVAL; |
4568 | 4567 | ||
4569 | err = kern_path(name, LOOKUP_FOLLOW, &path); | ||
4570 | if (err) | ||
4571 | return err; | ||
4572 | |||
4573 | /* Quotafile not on the same filesystem? */ | 4568 | /* Quotafile not on the same filesystem? */ |
4574 | if (path.mnt->mnt_sb != sb) { | 4569 | if (path->mnt->mnt_sb != sb) |
4575 | path_put(&path); | ||
4576 | return -EXDEV; | 4570 | return -EXDEV; |
4577 | } | ||
4578 | /* Journaling quota? */ | 4571 | /* Journaling quota? */ |
4579 | if (EXT4_SB(sb)->s_qf_names[type]) { | 4572 | if (EXT4_SB(sb)->s_qf_names[type]) { |
4580 | /* Quotafile not in fs root? */ | 4573 | /* Quotafile not in fs root? */ |
4581 | if (path.dentry->d_parent != sb->s_root) | 4574 | if (path->dentry->d_parent != sb->s_root) |
4582 | ext4_msg(sb, KERN_WARNING, | 4575 | ext4_msg(sb, KERN_WARNING, |
4583 | "Quota file not on filesystem root. " | 4576 | "Quota file not on filesystem root. " |
4584 | "Journaled quota will not work"); | 4577 | "Journaled quota will not work"); |
@@ -4589,7 +4582,7 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id, | |||
4589 | * all updates to the file when we bypass pagecache... | 4582 | * all updates to the file when we bypass pagecache... |
4590 | */ | 4583 | */ |
4591 | if (EXT4_SB(sb)->s_journal && | 4584 | if (EXT4_SB(sb)->s_journal && |
4592 | ext4_should_journal_data(path.dentry->d_inode)) { | 4585 | ext4_should_journal_data(path->dentry->d_inode)) { |
4593 | /* | 4586 | /* |
4594 | * We don't need to lock updates but journal_flush() could | 4587 | * We don't need to lock updates but journal_flush() could |
4595 | * otherwise be livelocked... | 4588 | * otherwise be livelocked... |
@@ -4597,15 +4590,11 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id, | |||
4597 | jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal); | 4590 | jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal); |
4598 | err = jbd2_journal_flush(EXT4_SB(sb)->s_journal); | 4591 | err = jbd2_journal_flush(EXT4_SB(sb)->s_journal); |
4599 | jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); | 4592 | jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); |
4600 | if (err) { | 4593 | if (err) |
4601 | path_put(&path); | ||
4602 | return err; | 4594 | return err; |
4603 | } | ||
4604 | } | 4595 | } |
4605 | 4596 | ||
4606 | err = dquot_quota_on_path(sb, type, format_id, &path); | 4597 | return dquot_quota_on(sb, type, format_id, path); |
4607 | path_put(&path); | ||
4608 | return err; | ||
4609 | } | 4598 | } |
4610 | 4599 | ||
4611 | static int ext4_quota_off(struct super_block *sb, int type) | 4600 | static int ext4_quota_off(struct super_block *sb, int type) |
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 2232b3c780bd..7aa7d4f8984a 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
@@ -74,16 +74,14 @@ static struct inode *gfs2_iget(struct super_block *sb, u64 no_addr) | |||
74 | } | 74 | } |
75 | 75 | ||
76 | /** | 76 | /** |
77 | * GFS2 lookup code fills in vfs inode contents based on info obtained | 77 | * gfs2_set_iop - Sets inode operations |
78 | * from directory entry inside gfs2_inode_lookup(). This has caused issues | 78 | * @inode: The inode with correct i_mode filled in |
79 | * with NFS code path since its get_dentry routine doesn't have the relevant | ||
80 | * directory entry when gfs2_inode_lookup() is invoked. Part of the code | ||
81 | * segment inside gfs2_inode_lookup code needs to get moved around. | ||
82 | * | 79 | * |
83 | * Clears I_NEW as well. | 80 | * GFS2 lookup code fills in vfs inode contents based on info obtained |
84 | **/ | 81 | * from directory entry inside gfs2_inode_lookup(). |
82 | */ | ||
85 | 83 | ||
86 | void gfs2_set_iop(struct inode *inode) | 84 | static void gfs2_set_iop(struct inode *inode) |
87 | { | 85 | { |
88 | struct gfs2_sbd *sdp = GFS2_SB(inode); | 86 | struct gfs2_sbd *sdp = GFS2_SB(inode); |
89 | umode_t mode = inode->i_mode; | 87 | umode_t mode = inode->i_mode; |
@@ -106,8 +104,6 @@ void gfs2_set_iop(struct inode *inode) | |||
106 | inode->i_op = &gfs2_file_iops; | 104 | inode->i_op = &gfs2_file_iops; |
107 | init_special_inode(inode, inode->i_mode, inode->i_rdev); | 105 | init_special_inode(inode, inode->i_mode, inode->i_rdev); |
108 | } | 106 | } |
109 | |||
110 | unlock_new_inode(inode); | ||
111 | } | 107 | } |
112 | 108 | ||
113 | /** | 109 | /** |
@@ -119,10 +115,8 @@ void gfs2_set_iop(struct inode *inode) | |||
119 | * Returns: A VFS inode, or an error | 115 | * Returns: A VFS inode, or an error |
120 | */ | 116 | */ |
121 | 117 | ||
122 | struct inode *gfs2_inode_lookup(struct super_block *sb, | 118 | struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type, |
123 | unsigned int type, | 119 | u64 no_addr, u64 no_formal_ino) |
124 | u64 no_addr, | ||
125 | u64 no_formal_ino) | ||
126 | { | 120 | { |
127 | struct inode *inode; | 121 | struct inode *inode; |
128 | struct gfs2_inode *ip; | 122 | struct gfs2_inode *ip; |
@@ -152,51 +146,37 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, | |||
152 | error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh); | 146 | error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh); |
153 | if (unlikely(error)) | 147 | if (unlikely(error)) |
154 | goto fail_iopen; | 148 | goto fail_iopen; |
155 | ip->i_iopen_gh.gh_gl->gl_object = ip; | ||
156 | 149 | ||
150 | ip->i_iopen_gh.gh_gl->gl_object = ip; | ||
157 | gfs2_glock_put(io_gl); | 151 | gfs2_glock_put(io_gl); |
158 | io_gl = NULL; | 152 | io_gl = NULL; |
159 | 153 | ||
160 | if ((type == DT_UNKNOWN) && (no_formal_ino == 0)) | ||
161 | goto gfs2_nfsbypass; | ||
162 | |||
163 | inode->i_mode = DT2IF(type); | ||
164 | |||
165 | /* | ||
166 | * We must read the inode in order to work out its type in | ||
167 | * this case. Note that this doesn't happen often as we normally | ||
168 | * know the type beforehand. This code path only occurs during | ||
169 | * unlinked inode recovery (where it is safe to do this glock, | ||
170 | * which is not true in the general case). | ||
171 | */ | ||
172 | if (type == DT_UNKNOWN) { | 154 | if (type == DT_UNKNOWN) { |
173 | struct gfs2_holder gh; | 155 | /* Inode glock must be locked already */ |
174 | error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); | 156 | error = gfs2_inode_refresh(GFS2_I(inode)); |
175 | if (unlikely(error)) | 157 | if (error) |
176 | goto fail_glock; | 158 | goto fail_refresh; |
177 | /* Inode is now uptodate */ | 159 | } else { |
178 | gfs2_glock_dq_uninit(&gh); | 160 | inode->i_mode = DT2IF(type); |
179 | } | 161 | } |
180 | 162 | ||
181 | gfs2_set_iop(inode); | 163 | gfs2_set_iop(inode); |
164 | unlock_new_inode(inode); | ||
182 | } | 165 | } |
183 | 166 | ||
184 | gfs2_nfsbypass: | ||
185 | return inode; | 167 | return inode; |
186 | fail_glock: | 168 | |
187 | gfs2_glock_dq(&ip->i_iopen_gh); | 169 | fail_refresh: |
170 | ip->i_iopen_gh.gh_gl->gl_object = NULL; | ||
171 | gfs2_glock_dq_uninit(&ip->i_iopen_gh); | ||
188 | fail_iopen: | 172 | fail_iopen: |
189 | if (io_gl) | 173 | if (io_gl) |
190 | gfs2_glock_put(io_gl); | 174 | gfs2_glock_put(io_gl); |
191 | fail_put: | 175 | fail_put: |
192 | if (inode->i_state & I_NEW) | 176 | ip->i_gl->gl_object = NULL; |
193 | ip->i_gl->gl_object = NULL; | ||
194 | gfs2_glock_put(ip->i_gl); | 177 | gfs2_glock_put(ip->i_gl); |
195 | fail: | 178 | fail: |
196 | if (inode->i_state & I_NEW) | 179 | iget_failed(inode); |
197 | iget_failed(inode); | ||
198 | else | ||
199 | iput(inode); | ||
200 | return ERR_PTR(error); | 180 | return ERR_PTR(error); |
201 | } | 181 | } |
202 | 182 | ||
@@ -221,14 +201,6 @@ struct inode *gfs2_lookup_by_inum(struct gfs2_sbd *sdp, u64 no_addr, | |||
221 | if (IS_ERR(inode)) | 201 | if (IS_ERR(inode)) |
222 | goto fail; | 202 | goto fail; |
223 | 203 | ||
224 | error = gfs2_inode_refresh(GFS2_I(inode)); | ||
225 | if (error) | ||
226 | goto fail_iput; | ||
227 | |||
228 | /* Pick up the works we bypass in gfs2_inode_lookup */ | ||
229 | if (inode->i_state & I_NEW) | ||
230 | gfs2_set_iop(inode); | ||
231 | |||
232 | /* Two extra checks for NFS only */ | 204 | /* Two extra checks for NFS only */ |
233 | if (no_formal_ino) { | 205 | if (no_formal_ino) { |
234 | error = -ESTALE; | 206 | error = -ESTALE; |
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h index 732a183efdb3..3e00a66e7cbd 100644 --- a/fs/gfs2/inode.h +++ b/fs/gfs2/inode.h | |||
@@ -96,7 +96,6 @@ err: | |||
96 | return -EIO; | 96 | return -EIO; |
97 | } | 97 | } |
98 | 98 | ||
99 | extern void gfs2_set_iop(struct inode *inode); | ||
100 | extern struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned type, | 99 | extern struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned type, |
101 | u64 no_addr, u64 no_formal_ino); | 100 | u64 no_addr, u64 no_formal_ino); |
102 | extern struct inode *gfs2_lookup_by_inum(struct gfs2_sbd *sdp, u64 no_addr, | 101 | extern struct inode *gfs2_lookup_by_inum(struct gfs2_sbd *sdp, u64 no_addr, |
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 16c2ecac7eb7..ec73ed70bae1 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -1336,6 +1336,7 @@ static void gfs2_evict_inode(struct inode *inode) | |||
1336 | if (error) | 1336 | if (error) |
1337 | goto out_truncate; | 1337 | goto out_truncate; |
1338 | 1338 | ||
1339 | ip->i_iopen_gh.gh_flags |= GL_NOCACHE; | ||
1339 | gfs2_glock_dq_wait(&ip->i_iopen_gh); | 1340 | gfs2_glock_dq_wait(&ip->i_iopen_gh); |
1340 | gfs2_holder_reinit(LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB | GL_NOCACHE, &ip->i_iopen_gh); | 1341 | gfs2_holder_reinit(LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB | GL_NOCACHE, &ip->i_iopen_gh); |
1341 | error = gfs2_glock_nq(&ip->i_iopen_gh); | 1342 | error = gfs2_glock_nq(&ip->i_iopen_gh); |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 06d1f749ca89..38f986d2447e 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -993,8 +993,7 @@ static void ocfs2_disable_quotas(struct ocfs2_super *osb) | |||
993 | } | 993 | } |
994 | 994 | ||
995 | /* Handle quota on quotactl */ | 995 | /* Handle quota on quotactl */ |
996 | static int ocfs2_quota_on(struct super_block *sb, int type, int format_id, | 996 | static int ocfs2_quota_on(struct super_block *sb, int type, int format_id) |
997 | char *path) | ||
998 | { | 997 | { |
999 | unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA, | 998 | unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA, |
1000 | OCFS2_FEATURE_RO_COMPAT_GRPQUOTA}; | 999 | OCFS2_FEATURE_RO_COMPAT_GRPQUOTA}; |
@@ -1013,7 +1012,7 @@ static int ocfs2_quota_off(struct super_block *sb, int type) | |||
1013 | } | 1012 | } |
1014 | 1013 | ||
1015 | static const struct quotactl_ops ocfs2_quotactl_ops = { | 1014 | static const struct quotactl_ops ocfs2_quotactl_ops = { |
1016 | .quota_on = ocfs2_quota_on, | 1015 | .quota_on_meta = ocfs2_quota_on, |
1017 | .quota_off = ocfs2_quota_off, | 1016 | .quota_off = ocfs2_quota_off, |
1018 | .quota_sync = dquot_quota_sync, | 1017 | .quota_sync = dquot_quota_sync, |
1019 | .get_info = dquot_get_dqinfo, | 1018 | .get_info = dquot_get_dqinfo, |
@@ -441,7 +441,7 @@ redo: | |||
441 | break; | 441 | break; |
442 | } | 442 | } |
443 | if (do_wakeup) { | 443 | if (do_wakeup) { |
444 | wake_up_interruptible_sync_poll(&pipe->wait, POLLOUT); | 444 | wake_up_interruptible_sync_poll(&pipe->wait, POLLOUT | POLLWRNORM); |
445 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); | 445 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); |
446 | } | 446 | } |
447 | pipe_wait(pipe); | 447 | pipe_wait(pipe); |
@@ -450,7 +450,7 @@ redo: | |||
450 | 450 | ||
451 | /* Signal writers asynchronously that there is more room. */ | 451 | /* Signal writers asynchronously that there is more room. */ |
452 | if (do_wakeup) { | 452 | if (do_wakeup) { |
453 | wake_up_interruptible_sync_poll(&pipe->wait, POLLOUT); | 453 | wake_up_interruptible_sync_poll(&pipe->wait, POLLOUT | POLLWRNORM); |
454 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); | 454 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); |
455 | } | 455 | } |
456 | if (ret > 0) | 456 | if (ret > 0) |
@@ -612,7 +612,7 @@ redo2: | |||
612 | break; | 612 | break; |
613 | } | 613 | } |
614 | if (do_wakeup) { | 614 | if (do_wakeup) { |
615 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN); | 615 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLRDNORM); |
616 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); | 616 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); |
617 | do_wakeup = 0; | 617 | do_wakeup = 0; |
618 | } | 618 | } |
@@ -623,7 +623,7 @@ redo2: | |||
623 | out: | 623 | out: |
624 | mutex_unlock(&inode->i_mutex); | 624 | mutex_unlock(&inode->i_mutex); |
625 | if (do_wakeup) { | 625 | if (do_wakeup) { |
626 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN); | 626 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLRDNORM); |
627 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); | 627 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); |
628 | } | 628 | } |
629 | if (ret > 0) | 629 | if (ret > 0) |
@@ -715,7 +715,7 @@ pipe_release(struct inode *inode, int decr, int decw) | |||
715 | if (!pipe->readers && !pipe->writers) { | 715 | if (!pipe->readers && !pipe->writers) { |
716 | free_pipe_info(inode); | 716 | free_pipe_info(inode); |
717 | } else { | 717 | } else { |
718 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT); | 718 | wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP); |
719 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); | 719 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); |
720 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); | 720 | kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); |
721 | } | 721 | } |
diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig index 6a0068841d96..15af6222f8a4 100644 --- a/fs/proc/Kconfig +++ b/fs/proc/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | config PROC_FS | 1 | config PROC_FS |
2 | bool "/proc file system support" if EMBEDDED | 2 | bool "/proc file system support" if EXPERT |
3 | default y | 3 | default y |
4 | help | 4 | help |
5 | This is a virtual file system providing information about the status | 5 | This is a virtual file system providing information about the status |
@@ -40,7 +40,7 @@ config PROC_VMCORE | |||
40 | Exports the dump image of crashed kernel in ELF format. | 40 | Exports the dump image of crashed kernel in ELF format. |
41 | 41 | ||
42 | config PROC_SYSCTL | 42 | config PROC_SYSCTL |
43 | bool "Sysctl support (/proc/sys)" if EMBEDDED | 43 | bool "Sysctl support (/proc/sys)" if EXPERT |
44 | depends on PROC_FS | 44 | depends on PROC_FS |
45 | select SYSCTL | 45 | select SYSCTL |
46 | default y | 46 | default y |
@@ -61,7 +61,7 @@ config PROC_SYSCTL | |||
61 | config PROC_PAGE_MONITOR | 61 | config PROC_PAGE_MONITOR |
62 | default y | 62 | default y |
63 | depends on PROC_FS && MMU | 63 | depends on PROC_FS && MMU |
64 | bool "Enable /proc page monitoring" if EMBEDDED | 64 | bool "Enable /proc page monitoring" if EXPERT |
65 | help | 65 | help |
66 | Various /proc files exist to monitor process memory utilization: | 66 | Various /proc files exist to monitor process memory utilization: |
67 | /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap, | 67 | /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap, |
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 84becd3e4772..a2a622e079f0 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c | |||
@@ -2189,8 +2189,8 @@ int dquot_resume(struct super_block *sb, int type) | |||
2189 | } | 2189 | } |
2190 | EXPORT_SYMBOL(dquot_resume); | 2190 | EXPORT_SYMBOL(dquot_resume); |
2191 | 2191 | ||
2192 | int dquot_quota_on_path(struct super_block *sb, int type, int format_id, | 2192 | int dquot_quota_on(struct super_block *sb, int type, int format_id, |
2193 | struct path *path) | 2193 | struct path *path) |
2194 | { | 2194 | { |
2195 | int error = security_quota_on(path->dentry); | 2195 | int error = security_quota_on(path->dentry); |
2196 | if (error) | 2196 | if (error) |
@@ -2204,20 +2204,6 @@ int dquot_quota_on_path(struct super_block *sb, int type, int format_id, | |||
2204 | DQUOT_LIMITS_ENABLED); | 2204 | DQUOT_LIMITS_ENABLED); |
2205 | return error; | 2205 | return error; |
2206 | } | 2206 | } |
2207 | EXPORT_SYMBOL(dquot_quota_on_path); | ||
2208 | |||
2209 | int dquot_quota_on(struct super_block *sb, int type, int format_id, char *name) | ||
2210 | { | ||
2211 | struct path path; | ||
2212 | int error; | ||
2213 | |||
2214 | error = kern_path(name, LOOKUP_FOLLOW, &path); | ||
2215 | if (!error) { | ||
2216 | error = dquot_quota_on_path(sb, type, format_id, &path); | ||
2217 | path_put(&path); | ||
2218 | } | ||
2219 | return error; | ||
2220 | } | ||
2221 | EXPORT_SYMBOL(dquot_quota_on); | 2207 | EXPORT_SYMBOL(dquot_quota_on); |
2222 | 2208 | ||
2223 | /* | 2209 | /* |
diff --git a/fs/quota/quota.c b/fs/quota/quota.c index b299961e1edb..b34bdb25490c 100644 --- a/fs/quota/quota.c +++ b/fs/quota/quota.c | |||
@@ -64,18 +64,15 @@ static int quota_sync_all(int type) | |||
64 | } | 64 | } |
65 | 65 | ||
66 | static int quota_quotaon(struct super_block *sb, int type, int cmd, qid_t id, | 66 | static int quota_quotaon(struct super_block *sb, int type, int cmd, qid_t id, |
67 | void __user *addr) | 67 | struct path *path) |
68 | { | 68 | { |
69 | char *pathname; | 69 | if (!sb->s_qcop->quota_on && !sb->s_qcop->quota_on_meta) |
70 | int ret = -ENOSYS; | 70 | return -ENOSYS; |
71 | 71 | if (sb->s_qcop->quota_on_meta) | |
72 | pathname = getname(addr); | 72 | return sb->s_qcop->quota_on_meta(sb, type, id); |
73 | if (IS_ERR(pathname)) | 73 | if (IS_ERR(path)) |
74 | return PTR_ERR(pathname); | 74 | return PTR_ERR(path); |
75 | if (sb->s_qcop->quota_on) | 75 | return sb->s_qcop->quota_on(sb, type, id, path); |
76 | ret = sb->s_qcop->quota_on(sb, type, id, pathname); | ||
77 | putname(pathname); | ||
78 | return ret; | ||
79 | } | 76 | } |
80 | 77 | ||
81 | static int quota_getfmt(struct super_block *sb, int type, void __user *addr) | 78 | static int quota_getfmt(struct super_block *sb, int type, void __user *addr) |
@@ -241,7 +238,7 @@ static int quota_getxquota(struct super_block *sb, int type, qid_t id, | |||
241 | 238 | ||
242 | /* Copy parameters and call proper function */ | 239 | /* Copy parameters and call proper function */ |
243 | static int do_quotactl(struct super_block *sb, int type, int cmd, qid_t id, | 240 | static int do_quotactl(struct super_block *sb, int type, int cmd, qid_t id, |
244 | void __user *addr) | 241 | void __user *addr, struct path *path) |
245 | { | 242 | { |
246 | int ret; | 243 | int ret; |
247 | 244 | ||
@@ -256,7 +253,7 @@ static int do_quotactl(struct super_block *sb, int type, int cmd, qid_t id, | |||
256 | 253 | ||
257 | switch (cmd) { | 254 | switch (cmd) { |
258 | case Q_QUOTAON: | 255 | case Q_QUOTAON: |
259 | return quota_quotaon(sb, type, cmd, id, addr); | 256 | return quota_quotaon(sb, type, cmd, id, path); |
260 | case Q_QUOTAOFF: | 257 | case Q_QUOTAOFF: |
261 | if (!sb->s_qcop->quota_off) | 258 | if (!sb->s_qcop->quota_off) |
262 | return -ENOSYS; | 259 | return -ENOSYS; |
@@ -335,6 +332,7 @@ SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special, | |||
335 | { | 332 | { |
336 | uint cmds, type; | 333 | uint cmds, type; |
337 | struct super_block *sb = NULL; | 334 | struct super_block *sb = NULL; |
335 | struct path path, *pathp = NULL; | ||
338 | int ret; | 336 | int ret; |
339 | 337 | ||
340 | cmds = cmd >> SUBCMDSHIFT; | 338 | cmds = cmd >> SUBCMDSHIFT; |
@@ -351,12 +349,27 @@ SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special, | |||
351 | return -ENODEV; | 349 | return -ENODEV; |
352 | } | 350 | } |
353 | 351 | ||
352 | /* | ||
353 | * Path for quotaon has to be resolved before grabbing superblock | ||
354 | * because that gets s_umount sem which is also possibly needed by path | ||
355 | * resolution (think about autofs) and thus deadlocks could arise. | ||
356 | */ | ||
357 | if (cmds == Q_QUOTAON) { | ||
358 | ret = user_path_at(AT_FDCWD, addr, LOOKUP_FOLLOW, &path); | ||
359 | if (ret) | ||
360 | pathp = ERR_PTR(ret); | ||
361 | else | ||
362 | pathp = &path; | ||
363 | } | ||
364 | |||
354 | sb = quotactl_block(special); | 365 | sb = quotactl_block(special); |
355 | if (IS_ERR(sb)) | 366 | if (IS_ERR(sb)) |
356 | return PTR_ERR(sb); | 367 | return PTR_ERR(sb); |
357 | 368 | ||
358 | ret = do_quotactl(sb, type, cmds, id, addr); | 369 | ret = do_quotactl(sb, type, cmds, id, addr, pathp); |
359 | 370 | ||
360 | drop_super(sb); | 371 | drop_super(sb); |
372 | if (pathp && !IS_ERR(pathp)) | ||
373 | path_put(pathp); | ||
361 | return ret; | 374 | return ret; |
362 | } | 375 | } |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 2575682a9ead..0aab04f46827 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -632,7 +632,7 @@ static int reiserfs_acquire_dquot(struct dquot *); | |||
632 | static int reiserfs_release_dquot(struct dquot *); | 632 | static int reiserfs_release_dquot(struct dquot *); |
633 | static int reiserfs_mark_dquot_dirty(struct dquot *); | 633 | static int reiserfs_mark_dquot_dirty(struct dquot *); |
634 | static int reiserfs_write_info(struct super_block *, int); | 634 | static int reiserfs_write_info(struct super_block *, int); |
635 | static int reiserfs_quota_on(struct super_block *, int, int, char *); | 635 | static int reiserfs_quota_on(struct super_block *, int, int, struct path *); |
636 | 636 | ||
637 | static const struct dquot_operations reiserfs_quota_operations = { | 637 | static const struct dquot_operations reiserfs_quota_operations = { |
638 | .write_dquot = reiserfs_write_dquot, | 638 | .write_dquot = reiserfs_write_dquot, |
@@ -2048,25 +2048,21 @@ static int reiserfs_quota_on_mount(struct super_block *sb, int type) | |||
2048 | * Standard function to be called on quota_on | 2048 | * Standard function to be called on quota_on |
2049 | */ | 2049 | */ |
2050 | static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | 2050 | static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, |
2051 | char *name) | 2051 | struct path *path) |
2052 | { | 2052 | { |
2053 | int err; | 2053 | int err; |
2054 | struct path path; | ||
2055 | struct inode *inode; | 2054 | struct inode *inode; |
2056 | struct reiserfs_transaction_handle th; | 2055 | struct reiserfs_transaction_handle th; |
2057 | 2056 | ||
2058 | if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) | 2057 | if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) |
2059 | return -EINVAL; | 2058 | return -EINVAL; |
2060 | 2059 | ||
2061 | err = kern_path(name, LOOKUP_FOLLOW, &path); | ||
2062 | if (err) | ||
2063 | return err; | ||
2064 | /* Quotafile not on the same filesystem? */ | 2060 | /* Quotafile not on the same filesystem? */ |
2065 | if (path.mnt->mnt_sb != sb) { | 2061 | if (path->mnt->mnt_sb != sb) { |
2066 | err = -EXDEV; | 2062 | err = -EXDEV; |
2067 | goto out; | 2063 | goto out; |
2068 | } | 2064 | } |
2069 | inode = path.dentry->d_inode; | 2065 | inode = path->dentry->d_inode; |
2070 | /* We must not pack tails for quota files on reiserfs for quota IO to work */ | 2066 | /* We must not pack tails for quota files on reiserfs for quota IO to work */ |
2071 | if (!(REISERFS_I(inode)->i_flags & i_nopack_mask)) { | 2067 | if (!(REISERFS_I(inode)->i_flags & i_nopack_mask)) { |
2072 | err = reiserfs_unpack(inode, NULL); | 2068 | err = reiserfs_unpack(inode, NULL); |
@@ -2082,7 +2078,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | |||
2082 | /* Journaling quota? */ | 2078 | /* Journaling quota? */ |
2083 | if (REISERFS_SB(sb)->s_qf_names[type]) { | 2079 | if (REISERFS_SB(sb)->s_qf_names[type]) { |
2084 | /* Quotafile not of fs root? */ | 2080 | /* Quotafile not of fs root? */ |
2085 | if (path.dentry->d_parent != sb->s_root) | 2081 | if (path->dentry->d_parent != sb->s_root) |
2086 | reiserfs_warning(sb, "super-6521", | 2082 | reiserfs_warning(sb, "super-6521", |
2087 | "Quota file not on filesystem root. " | 2083 | "Quota file not on filesystem root. " |
2088 | "Journalled quota will not work."); | 2084 | "Journalled quota will not work."); |
@@ -2101,9 +2097,8 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | |||
2101 | if (err) | 2097 | if (err) |
2102 | goto out; | 2098 | goto out; |
2103 | } | 2099 | } |
2104 | err = dquot_quota_on_path(sb, type, format_id, &path); | 2100 | err = dquot_quota_on(sb, type, format_id, path); |
2105 | out: | 2101 | out: |
2106 | path_put(&path); | ||
2107 | return err; | 2102 | return err; |
2108 | } | 2103 | } |
2109 | 2104 | ||
diff --git a/fs/sysfs/Kconfig b/fs/sysfs/Kconfig index f4b67588b9d6..8c41feacbac5 100644 --- a/fs/sysfs/Kconfig +++ b/fs/sysfs/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | config SYSFS | 1 | config SYSFS |
2 | bool "sysfs file system support" if EMBEDDED | 2 | bool "sysfs file system support" if EXPERT |
3 | default y | 3 | default y |
4 | help | 4 | help |
5 | The sysfs filesystem is a virtual filesystem that the kernel uses to | 5 | The sysfs filesystem is a virtual filesystem that the kernel uses to |
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 17714beb868e..5b6c391efc8e 100644 --- a/include/acpi/acexcep.h +++ b/include/acpi/acexcep.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/acnames.h b/include/acpi/acnames.h index 9cf736ea4691..fc1575fd4596 100644 --- a/include/acpi/acnames.h +++ b/include/acpi/acnames.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h index bc4a6deb73b0..ef1cef77d32b 100644 --- a/include/acpi/acoutput.h +++ b/include/acpi/acoutput.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/acpi.h b/include/acpi/acpi.h index a091cabca4b1..de39915f6b7f 100644 --- a/include/acpi/acpi.h +++ b/include/acpi/acpi.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h index 65b3f5888f42..a3252a5ead66 100644 --- a/include/acpi/acpiosxf.h +++ b/include/acpi/acpiosxf.h | |||
@@ -8,7 +8,7 @@ | |||
8 | *****************************************************************************/ | 8 | *****************************************************************************/ |
9 | 9 | ||
10 | /* | 10 | /* |
11 | * Copyright (C) 2000 - 2010, Intel Corp. | 11 | * Copyright (C) 2000 - 2011, Intel Corp. |
12 | * All rights reserved. | 12 | * All rights reserved. |
13 | * | 13 | * |
14 | * Redistribution and use in source and binary forms, with or without | 14 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 241b8a04c83c..e46ec95a8ada 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -6,7 +6,7 @@ | |||
6 | *****************************************************************************/ | 6 | *****************************************************************************/ |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Copyright (C) 2000 - 2010, Intel Corp. | 9 | * Copyright (C) 2000 - 2011, Intel Corp. |
10 | * All rights reserved. | 10 | * All rights reserved. |
11 | * | 11 | * |
12 | * Redistribution and use in source and binary forms, with or without | 12 | * Redistribution and use in source and binary forms, with or without |
@@ -47,7 +47,7 @@ | |||
47 | 47 | ||
48 | /* Current ACPICA subsystem version in YYYYMMDD format */ | 48 | /* Current ACPICA subsystem version in YYYYMMDD format */ |
49 | 49 | ||
50 | #define ACPI_CA_VERSION 0x20101209 | 50 | #define ACPI_CA_VERSION 0x20110112 |
51 | 51 | ||
52 | #include "actypes.h" | 52 | #include "actypes.h" |
53 | #include "actbl.h" | 53 | #include "actbl.h" |
diff --git a/include/acpi/acrestyp.h b/include/acpi/acrestyp.h index e5526354ba5e..0a66cc45dd6b 100644 --- a/include/acpi/acrestyp.h +++ b/include/acpi/acrestyp.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h index ad2001683ba7..7e42bfee0e29 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index cd77aa75c962..7504bc99b29b 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index d4136b28011f..0fc15dfb2e22 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 939a431a6ab6..64f838beaabf 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h index a3e334ab1119..5af3ed52ef98 100644 --- a/include/acpi/platform/acenv.h +++ b/include/acpi/platform/acenv.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/platform/acgcc.h b/include/acpi/platform/acgcc.h index 5dcb9537343c..e228893591a9 100644 --- a/include/acpi/platform/acgcc.h +++ b/include/acpi/platform/acgcc.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 572189e37133..5d2a5e9544d9 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2010, Intel Corp. | 8 | * Copyright (C) 2000 - 2011, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index eb176bb1b15b..a2e910e01293 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -306,9 +306,6 @@ extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, | |||
306 | u32 *mask, u32 req); | 306 | u32 *mask, u32 req); |
307 | extern void acpi_early_init(void); | 307 | extern void acpi_early_init(void); |
308 | 308 | ||
309 | int acpi_os_map_generic_address(struct acpi_generic_address *addr); | ||
310 | void acpi_os_unmap_generic_address(struct acpi_generic_address *addr); | ||
311 | |||
312 | #else /* !CONFIG_ACPI */ | 309 | #else /* !CONFIG_ACPI */ |
313 | 310 | ||
314 | #define acpi_disabled 1 | 311 | #define acpi_disabled 1 |
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h new file mode 100644 index 000000000000..7180013a4a3a --- /dev/null +++ b/include/linux/acpi_io.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _ACPI_IO_H_ | ||
2 | #define _ACPI_IO_H_ | ||
3 | |||
4 | #include <linux/io.h> | ||
5 | #include <acpi/acpi.h> | ||
6 | |||
7 | static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys, | ||
8 | acpi_size size) | ||
9 | { | ||
10 | return ioremap_cache(phys, size); | ||
11 | } | ||
12 | |||
13 | int acpi_os_map_generic_address(struct acpi_generic_address *addr); | ||
14 | void acpi_os_unmap_generic_address(struct acpi_generic_address *addr); | ||
15 | |||
16 | #endif | ||
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 6042228954a7..294169e31364 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -959,7 +959,7 @@ struct ieee80211_ht_info { | |||
959 | /* block-ack parameters */ | 959 | /* block-ack parameters */ |
960 | #define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002 | 960 | #define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002 |
961 | #define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C | 961 | #define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C |
962 | #define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFA0 | 962 | #define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0 |
963 | #define IEEE80211_DELBA_PARAM_TID_MASK 0xF000 | 963 | #define IEEE80211_DELBA_PARAM_TID_MASK 0xF000 |
964 | #define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800 | 964 | #define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800 |
965 | 965 | ||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 5a9d9059520b..d07d8057e440 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -243,6 +243,8 @@ extern int test_taint(unsigned flag); | |||
243 | extern unsigned long get_taint(void); | 243 | extern unsigned long get_taint(void); |
244 | extern int root_mountflags; | 244 | extern int root_mountflags; |
245 | 245 | ||
246 | extern bool early_boot_irqs_disabled; | ||
247 | |||
246 | /* Values used for system_state */ | 248 | /* Values used for system_state */ |
247 | extern enum system_states { | 249 | extern enum system_states { |
248 | SYSTEM_BOOTING, | 250 | SYSTEM_BOOTING, |
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 71c09b26c759..f638fd78d106 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
@@ -436,16 +436,8 @@ do { \ | |||
436 | #endif /* CONFIG_LOCKDEP */ | 436 | #endif /* CONFIG_LOCKDEP */ |
437 | 437 | ||
438 | #ifdef CONFIG_TRACE_IRQFLAGS | 438 | #ifdef CONFIG_TRACE_IRQFLAGS |
439 | extern void early_boot_irqs_off(void); | ||
440 | extern void early_boot_irqs_on(void); | ||
441 | extern void print_irqtrace_events(struct task_struct *curr); | 439 | extern void print_irqtrace_events(struct task_struct *curr); |
442 | #else | 440 | #else |
443 | static inline void early_boot_irqs_off(void) | ||
444 | { | ||
445 | } | ||
446 | static inline void early_boot_irqs_on(void) | ||
447 | { | ||
448 | } | ||
449 | static inline void print_irqtrace_events(struct task_struct *curr) | 441 | static inline void print_irqtrace_events(struct task_struct *curr) |
450 | { | 442 | { |
451 | } | 443 | } |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 6a576f989437..f512e189be5a 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -146,6 +146,10 @@ unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | |||
146 | gfp_t gfp_mask); | 146 | gfp_t gfp_mask); |
147 | u64 mem_cgroup_get_limit(struct mem_cgroup *mem); | 147 | u64 mem_cgroup_get_limit(struct mem_cgroup *mem); |
148 | 148 | ||
149 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
150 | void mem_cgroup_split_huge_fixup(struct page *head, struct page *tail); | ||
151 | #endif | ||
152 | |||
149 | #else /* CONFIG_CGROUP_MEM_RES_CTLR */ | 153 | #else /* CONFIG_CGROUP_MEM_RES_CTLR */ |
150 | struct mem_cgroup; | 154 | struct mem_cgroup; |
151 | 155 | ||
@@ -335,6 +339,11 @@ u64 mem_cgroup_get_limit(struct mem_cgroup *mem) | |||
335 | return 0; | 339 | return 0; |
336 | } | 340 | } |
337 | 341 | ||
342 | static inline void mem_cgroup_split_huge_fixup(struct page *head, | ||
343 | struct page *tail) | ||
344 | { | ||
345 | } | ||
346 | |||
338 | #endif /* CONFIG_CGROUP_MEM_CONT */ | 347 | #endif /* CONFIG_CGROUP_MEM_CONT */ |
339 | 348 | ||
340 | #endif /* _LINUX_MEMCONTROL_H */ | 349 | #endif /* _LINUX_MEMCONTROL_H */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 956a35532f47..f6385fc17ad4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -470,6 +470,7 @@ static inline void set_compound_order(struct page *page, unsigned long order) | |||
470 | page[1].lru.prev = (void *)order; | 470 | page[1].lru.prev = (void *)order; |
471 | } | 471 | } |
472 | 472 | ||
473 | #ifdef CONFIG_MMU | ||
473 | /* | 474 | /* |
474 | * Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when | 475 | * Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when |
475 | * servicing faults for write access. In the normal case, do always want | 476 | * servicing faults for write access. In the normal case, do always want |
@@ -482,6 +483,7 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) | |||
482 | pte = pte_mkwrite(pte); | 483 | pte = pte_mkwrite(pte); |
483 | return pte; | 484 | return pte; |
484 | } | 485 | } |
486 | #endif | ||
485 | 487 | ||
486 | /* | 488 | /* |
487 | * Multiple processes may "see" the same page. E.g. for untouched | 489 | * Multiple processes may "see" the same page. E.g. for untouched |
diff --git a/include/linux/quota.h b/include/linux/quota.h index 94c1f03b50eb..9a85412e0db6 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -322,9 +322,12 @@ struct dquot_operations { | |||
322 | qsize_t *(*get_reserved_space) (struct inode *); | 322 | qsize_t *(*get_reserved_space) (struct inode *); |
323 | }; | 323 | }; |
324 | 324 | ||
325 | struct path; | ||
326 | |||
325 | /* Operations handling requests from userspace */ | 327 | /* Operations handling requests from userspace */ |
326 | struct quotactl_ops { | 328 | struct quotactl_ops { |
327 | int (*quota_on)(struct super_block *, int, int, char *); | 329 | int (*quota_on)(struct super_block *, int, int, struct path *); |
330 | int (*quota_on_meta)(struct super_block *, int, int); | ||
328 | int (*quota_off)(struct super_block *, int); | 331 | int (*quota_off)(struct super_block *, int); |
329 | int (*quota_sync)(struct super_block *, int, int); | 332 | int (*quota_sync)(struct super_block *, int, int); |
330 | int (*get_info)(struct super_block *, int, struct if_dqinfo *); | 333 | int (*get_info)(struct super_block *, int, struct if_dqinfo *); |
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 223b14cd129c..eb354f6f26b3 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
@@ -76,11 +76,9 @@ int dquot_mark_dquot_dirty(struct dquot *dquot); | |||
76 | 76 | ||
77 | int dquot_file_open(struct inode *inode, struct file *file); | 77 | int dquot_file_open(struct inode *inode, struct file *file); |
78 | 78 | ||
79 | int dquot_quota_on(struct super_block *sb, int type, int format_id, | ||
80 | char *path); | ||
81 | int dquot_enable(struct inode *inode, int type, int format_id, | 79 | int dquot_enable(struct inode *inode, int type, int format_id, |
82 | unsigned int flags); | 80 | unsigned int flags); |
83 | int dquot_quota_on_path(struct super_block *sb, int type, int format_id, | 81 | int dquot_quota_on(struct super_block *sb, int type, int format_id, |
84 | struct path *path); | 82 | struct path *path); |
85 | int dquot_quota_on_mount(struct super_block *sb, char *qf_name, | 83 | int dquot_quota_on_mount(struct super_block *sb, char *qf_name, |
86 | int format_id, int type); | 84 | int format_id, int type); |
diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h index 2a128c8c2718..e73ebdae323d 100644 --- a/include/net/sctp/user.h +++ b/include/net/sctp/user.h | |||
@@ -78,6 +78,7 @@ typedef __s32 sctp_assoc_t; | |||
78 | #define SCTP_GET_PEER_ADDR_INFO 15 | 78 | #define SCTP_GET_PEER_ADDR_INFO 15 |
79 | #define SCTP_DELAYED_ACK_TIME 16 | 79 | #define SCTP_DELAYED_ACK_TIME 16 |
80 | #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME | 80 | #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME |
81 | #define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME | ||
81 | #define SCTP_CONTEXT 17 | 82 | #define SCTP_CONTEXT 17 |
82 | #define SCTP_FRAGMENT_INTERLEAVE 18 | 83 | #define SCTP_FRAGMENT_INTERLEAVE 18 |
83 | #define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */ | 84 | #define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */ |
diff --git a/init/Kconfig b/init/Kconfig index 4e337906016e..be788c0957d4 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -745,8 +745,8 @@ config DEBUG_BLK_CGROUP | |||
745 | endif # CGROUPS | 745 | endif # CGROUPS |
746 | 746 | ||
747 | menuconfig NAMESPACES | 747 | menuconfig NAMESPACES |
748 | bool "Namespaces support" if EMBEDDED | 748 | bool "Namespaces support" if EXPERT |
749 | default !EMBEDDED | 749 | default !EXPERT |
750 | help | 750 | help |
751 | Provides the way to make tasks work with different objects using | 751 | Provides the way to make tasks work with different objects using |
752 | the same id. For example same IPC id may refer to different objects | 752 | the same id. For example same IPC id may refer to different objects |
@@ -899,23 +899,31 @@ config SYSCTL | |||
899 | config ANON_INODES | 899 | config ANON_INODES |
900 | bool | 900 | bool |
901 | 901 | ||
902 | menuconfig EMBEDDED | 902 | menuconfig EXPERT |
903 | bool "Configure standard kernel features (for small systems)" | 903 | bool "Configure standard kernel features (expert users)" |
904 | help | 904 | help |
905 | This option allows certain base kernel options and settings | 905 | This option allows certain base kernel options and settings |
906 | to be disabled or tweaked. This is for specialized | 906 | to be disabled or tweaked. This is for specialized |
907 | environments which can tolerate a "non-standard" kernel. | 907 | environments which can tolerate a "non-standard" kernel. |
908 | Only use this if you really know what you are doing. | 908 | Only use this if you really know what you are doing. |
909 | 909 | ||
910 | config EMBEDDED | ||
911 | bool "Embedded system" | ||
912 | select EXPERT | ||
913 | help | ||
914 | This option should be enabled if compiling the kernel for | ||
915 | an embedded system so certain expert options are available | ||
916 | for configuration. | ||
917 | |||
910 | config UID16 | 918 | config UID16 |
911 | bool "Enable 16-bit UID system calls" if EMBEDDED | 919 | bool "Enable 16-bit UID system calls" if EXPERT |
912 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) | 920 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) |
913 | default y | 921 | default y |
914 | help | 922 | help |
915 | This enables the legacy 16-bit UID syscall wrappers. | 923 | This enables the legacy 16-bit UID syscall wrappers. |
916 | 924 | ||
917 | config SYSCTL_SYSCALL | 925 | config SYSCTL_SYSCALL |
918 | bool "Sysctl syscall support" if EMBEDDED | 926 | bool "Sysctl syscall support" if EXPERT |
919 | depends on PROC_SYSCTL | 927 | depends on PROC_SYSCTL |
920 | default y | 928 | default y |
921 | select SYSCTL | 929 | select SYSCTL |
@@ -932,7 +940,7 @@ config SYSCTL_SYSCALL | |||
932 | If unsure say Y here. | 940 | If unsure say Y here. |
933 | 941 | ||
934 | config KALLSYMS | 942 | config KALLSYMS |
935 | bool "Load all symbols for debugging/ksymoops" if EMBEDDED | 943 | bool "Load all symbols for debugging/ksymoops" if EXPERT |
936 | default y | 944 | default y |
937 | help | 945 | help |
938 | Say Y here to let the kernel print out symbolic crash information and | 946 | Say Y here to let the kernel print out symbolic crash information and |
@@ -963,7 +971,7 @@ config KALLSYMS_EXTRA_PASS | |||
963 | 971 | ||
964 | 972 | ||
965 | config HOTPLUG | 973 | config HOTPLUG |
966 | bool "Support for hot-pluggable devices" if EMBEDDED | 974 | bool "Support for hot-pluggable devices" if EXPERT |
967 | default y | 975 | default y |
968 | help | 976 | help |
969 | This option is provided for the case where no hotplug or uevent | 977 | This option is provided for the case where no hotplug or uevent |
@@ -973,7 +981,7 @@ config HOTPLUG | |||
973 | 981 | ||
974 | config PRINTK | 982 | config PRINTK |
975 | default y | 983 | default y |
976 | bool "Enable support for printk" if EMBEDDED | 984 | bool "Enable support for printk" if EXPERT |
977 | help | 985 | help |
978 | This option enables normal printk support. Removing it | 986 | This option enables normal printk support. Removing it |
979 | eliminates most of the message strings from the kernel image | 987 | eliminates most of the message strings from the kernel image |
@@ -982,7 +990,7 @@ config PRINTK | |||
982 | strongly discouraged. | 990 | strongly discouraged. |
983 | 991 | ||
984 | config BUG | 992 | config BUG |
985 | bool "BUG() support" if EMBEDDED | 993 | bool "BUG() support" if EXPERT |
986 | default y | 994 | default y |
987 | help | 995 | help |
988 | Disabling this option eliminates support for BUG and WARN, reducing | 996 | Disabling this option eliminates support for BUG and WARN, reducing |
@@ -993,12 +1001,12 @@ config BUG | |||
993 | 1001 | ||
994 | config ELF_CORE | 1002 | config ELF_CORE |
995 | default y | 1003 | default y |
996 | bool "Enable ELF core dumps" if EMBEDDED | 1004 | bool "Enable ELF core dumps" if EXPERT |
997 | help | 1005 | help |
998 | Enable support for generating core dumps. Disabling saves about 4k. | 1006 | Enable support for generating core dumps. Disabling saves about 4k. |
999 | 1007 | ||
1000 | config PCSPKR_PLATFORM | 1008 | config PCSPKR_PLATFORM |
1001 | bool "Enable PC-Speaker support" if EMBEDDED | 1009 | bool "Enable PC-Speaker support" if EXPERT |
1002 | depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES | 1010 | depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES |
1003 | default y | 1011 | default y |
1004 | help | 1012 | help |
@@ -1007,14 +1015,14 @@ config PCSPKR_PLATFORM | |||
1007 | 1015 | ||
1008 | config BASE_FULL | 1016 | config BASE_FULL |
1009 | default y | 1017 | default y |
1010 | bool "Enable full-sized data structures for core" if EMBEDDED | 1018 | bool "Enable full-sized data structures for core" if EXPERT |
1011 | help | 1019 | help |
1012 | Disabling this option reduces the size of miscellaneous core | 1020 | Disabling this option reduces the size of miscellaneous core |
1013 | kernel data structures. This saves memory on small machines, | 1021 | kernel data structures. This saves memory on small machines, |
1014 | but may reduce performance. | 1022 | but may reduce performance. |
1015 | 1023 | ||
1016 | config FUTEX | 1024 | config FUTEX |
1017 | bool "Enable futex support" if EMBEDDED | 1025 | bool "Enable futex support" if EXPERT |
1018 | default y | 1026 | default y |
1019 | select RT_MUTEXES | 1027 | select RT_MUTEXES |
1020 | help | 1028 | help |
@@ -1023,7 +1031,7 @@ config FUTEX | |||
1023 | run glibc-based applications correctly. | 1031 | run glibc-based applications correctly. |
1024 | 1032 | ||
1025 | config EPOLL | 1033 | config EPOLL |
1026 | bool "Enable eventpoll support" if EMBEDDED | 1034 | bool "Enable eventpoll support" if EXPERT |
1027 | default y | 1035 | default y |
1028 | select ANON_INODES | 1036 | select ANON_INODES |
1029 | help | 1037 | help |
@@ -1031,7 +1039,7 @@ config EPOLL | |||
1031 | support for epoll family of system calls. | 1039 | support for epoll family of system calls. |
1032 | 1040 | ||
1033 | config SIGNALFD | 1041 | config SIGNALFD |
1034 | bool "Enable signalfd() system call" if EMBEDDED | 1042 | bool "Enable signalfd() system call" if EXPERT |
1035 | select ANON_INODES | 1043 | select ANON_INODES |
1036 | default y | 1044 | default y |
1037 | help | 1045 | help |
@@ -1041,7 +1049,7 @@ config SIGNALFD | |||
1041 | If unsure, say Y. | 1049 | If unsure, say Y. |
1042 | 1050 | ||
1043 | config TIMERFD | 1051 | config TIMERFD |
1044 | bool "Enable timerfd() system call" if EMBEDDED | 1052 | bool "Enable timerfd() system call" if EXPERT |
1045 | select ANON_INODES | 1053 | select ANON_INODES |
1046 | default y | 1054 | default y |
1047 | help | 1055 | help |
@@ -1051,7 +1059,7 @@ config TIMERFD | |||
1051 | If unsure, say Y. | 1059 | If unsure, say Y. |
1052 | 1060 | ||
1053 | config EVENTFD | 1061 | config EVENTFD |
1054 | bool "Enable eventfd() system call" if EMBEDDED | 1062 | bool "Enable eventfd() system call" if EXPERT |
1055 | select ANON_INODES | 1063 | select ANON_INODES |
1056 | default y | 1064 | default y |
1057 | help | 1065 | help |
@@ -1061,7 +1069,7 @@ config EVENTFD | |||
1061 | If unsure, say Y. | 1069 | If unsure, say Y. |
1062 | 1070 | ||
1063 | config SHMEM | 1071 | config SHMEM |
1064 | bool "Use full shmem filesystem" if EMBEDDED | 1072 | bool "Use full shmem filesystem" if EXPERT |
1065 | default y | 1073 | default y |
1066 | depends on MMU | 1074 | depends on MMU |
1067 | help | 1075 | help |
@@ -1072,7 +1080,7 @@ config SHMEM | |||
1072 | which may be appropriate on small systems without swap. | 1080 | which may be appropriate on small systems without swap. |
1073 | 1081 | ||
1074 | config AIO | 1082 | config AIO |
1075 | bool "Enable AIO support" if EMBEDDED | 1083 | bool "Enable AIO support" if EXPERT |
1076 | default y | 1084 | default y |
1077 | help | 1085 | help |
1078 | This option enables POSIX asynchronous I/O which may by used | 1086 | This option enables POSIX asynchronous I/O which may by used |
@@ -1149,16 +1157,16 @@ endmenu | |||
1149 | 1157 | ||
1150 | config VM_EVENT_COUNTERS | 1158 | config VM_EVENT_COUNTERS |
1151 | default y | 1159 | default y |
1152 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED | 1160 | bool "Enable VM event counters for /proc/vmstat" if EXPERT |
1153 | help | 1161 | help |
1154 | VM event counters are needed for event counts to be shown. | 1162 | VM event counters are needed for event counts to be shown. |
1155 | This option allows the disabling of the VM event counters | 1163 | This option allows the disabling of the VM event counters |
1156 | on EMBEDDED systems. /proc/vmstat will only show page counts | 1164 | on EXPERT systems. /proc/vmstat will only show page counts |
1157 | if VM event counters are disabled. | 1165 | if VM event counters are disabled. |
1158 | 1166 | ||
1159 | config PCI_QUIRKS | 1167 | config PCI_QUIRKS |
1160 | default y | 1168 | default y |
1161 | bool "Enable PCI quirk workarounds" if EMBEDDED | 1169 | bool "Enable PCI quirk workarounds" if EXPERT |
1162 | depends on PCI | 1170 | depends on PCI |
1163 | help | 1171 | help |
1164 | This enables workarounds for various PCI chipset | 1172 | This enables workarounds for various PCI chipset |
@@ -1167,7 +1175,7 @@ config PCI_QUIRKS | |||
1167 | 1175 | ||
1168 | config SLUB_DEBUG | 1176 | config SLUB_DEBUG |
1169 | default y | 1177 | default y |
1170 | bool "Enable SLUB debugging support" if EMBEDDED | 1178 | bool "Enable SLUB debugging support" if EXPERT |
1171 | depends on SLUB && SYSFS | 1179 | depends on SLUB && SYSFS |
1172 | help | 1180 | help |
1173 | SLUB has extensive debug support features. Disabling these can | 1181 | SLUB has extensive debug support features. Disabling these can |
@@ -1211,7 +1219,7 @@ config SLUB | |||
1211 | a slab allocator. | 1219 | a slab allocator. |
1212 | 1220 | ||
1213 | config SLOB | 1221 | config SLOB |
1214 | depends on EMBEDDED | 1222 | depends on EXPERT |
1215 | bool "SLOB (Simple Allocator)" | 1223 | bool "SLOB (Simple Allocator)" |
1216 | help | 1224 | help |
1217 | SLOB replaces the stock allocator with a drastically simpler | 1225 | SLOB replaces the stock allocator with a drastically simpler |
@@ -1222,7 +1230,7 @@ endchoice | |||
1222 | 1230 | ||
1223 | config MMAP_ALLOW_UNINITIALIZED | 1231 | config MMAP_ALLOW_UNINITIALIZED |
1224 | bool "Allow mmapped anonymous memory to be uninitialized" | 1232 | bool "Allow mmapped anonymous memory to be uninitialized" |
1225 | depends on EMBEDDED && !MMU | 1233 | depends on EXPERT && !MMU |
1226 | default n | 1234 | default n |
1227 | help | 1235 | help |
1228 | Normally, and according to the Linux spec, anonymous memory obtained | 1236 | Normally, and according to the Linux spec, anonymous memory obtained |
diff --git a/init/main.c b/init/main.c index 00799c1d4628..33c37c379e96 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -96,6 +96,15 @@ static inline void mark_rodata_ro(void) { } | |||
96 | extern void tc_init(void); | 96 | extern void tc_init(void); |
97 | #endif | 97 | #endif |
98 | 98 | ||
99 | /* | ||
100 | * Debug helper: via this flag we know that we are in 'early bootup code' | ||
101 | * where only the boot processor is running with IRQ disabled. This means | ||
102 | * two things - IRQ must not be enabled before the flag is cleared and some | ||
103 | * operations which are not allowed with IRQ disabled are allowed while the | ||
104 | * flag is set. | ||
105 | */ | ||
106 | bool early_boot_irqs_disabled __read_mostly; | ||
107 | |||
99 | enum system_states system_state __read_mostly; | 108 | enum system_states system_state __read_mostly; |
100 | EXPORT_SYMBOL(system_state); | 109 | EXPORT_SYMBOL(system_state); |
101 | 110 | ||
@@ -554,7 +563,7 @@ asmlinkage void __init start_kernel(void) | |||
554 | cgroup_init_early(); | 563 | cgroup_init_early(); |
555 | 564 | ||
556 | local_irq_disable(); | 565 | local_irq_disable(); |
557 | early_boot_irqs_off(); | 566 | early_boot_irqs_disabled = true; |
558 | 567 | ||
559 | /* | 568 | /* |
560 | * Interrupts are still disabled. Do necessary setups, then | 569 | * Interrupts are still disabled. Do necessary setups, then |
@@ -621,7 +630,7 @@ asmlinkage void __init start_kernel(void) | |||
621 | if (!irqs_disabled()) | 630 | if (!irqs_disabled()) |
622 | printk(KERN_CRIT "start_kernel(): bug: interrupts were " | 631 | printk(KERN_CRIT "start_kernel(): bug: interrupts were " |
623 | "enabled early\n"); | 632 | "enabled early\n"); |
624 | early_boot_irqs_on(); | 633 | early_boot_irqs_disabled = false; |
625 | local_irq_enable(); | 634 | local_irq_enable(); |
626 | 635 | ||
627 | /* Interrupts are enabled now so all GFP allocations are safe. */ | 636 | /* Interrupts are enabled now so all GFP allocations are safe. */ |
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 42ba65dff7d9..0d2058da80f5 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
@@ -2292,22 +2292,6 @@ mark_held_locks(struct task_struct *curr, enum mark_type mark) | |||
2292 | } | 2292 | } |
2293 | 2293 | ||
2294 | /* | 2294 | /* |
2295 | * Debugging helper: via this flag we know that we are in | ||
2296 | * 'early bootup code', and will warn about any invalid irqs-on event: | ||
2297 | */ | ||
2298 | static int early_boot_irqs_enabled; | ||
2299 | |||
2300 | void early_boot_irqs_off(void) | ||
2301 | { | ||
2302 | early_boot_irqs_enabled = 0; | ||
2303 | } | ||
2304 | |||
2305 | void early_boot_irqs_on(void) | ||
2306 | { | ||
2307 | early_boot_irqs_enabled = 1; | ||
2308 | } | ||
2309 | |||
2310 | /* | ||
2311 | * Hardirqs will be enabled: | 2295 | * Hardirqs will be enabled: |
2312 | */ | 2296 | */ |
2313 | void trace_hardirqs_on_caller(unsigned long ip) | 2297 | void trace_hardirqs_on_caller(unsigned long ip) |
@@ -2319,7 +2303,7 @@ void trace_hardirqs_on_caller(unsigned long ip) | |||
2319 | if (unlikely(!debug_locks || current->lockdep_recursion)) | 2303 | if (unlikely(!debug_locks || current->lockdep_recursion)) |
2320 | return; | 2304 | return; |
2321 | 2305 | ||
2322 | if (DEBUG_LOCKS_WARN_ON(unlikely(!early_boot_irqs_enabled))) | 2306 | if (DEBUG_LOCKS_WARN_ON(unlikely(early_boot_irqs_disabled))) |
2323 | return; | 2307 | return; |
2324 | 2308 | ||
2325 | if (unlikely(curr->hardirqs_enabled)) { | 2309 | if (unlikely(curr->hardirqs_enabled)) { |
diff --git a/kernel/sched.c b/kernel/sched.c index ea3e5eff3878..18d38e4ec7ba 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -553,9 +553,6 @@ struct rq { | |||
553 | /* try_to_wake_up() stats */ | 553 | /* try_to_wake_up() stats */ |
554 | unsigned int ttwu_count; | 554 | unsigned int ttwu_count; |
555 | unsigned int ttwu_local; | 555 | unsigned int ttwu_local; |
556 | |||
557 | /* BKL stats */ | ||
558 | unsigned int bkl_count; | ||
559 | #endif | 556 | #endif |
560 | }; | 557 | }; |
561 | 558 | ||
@@ -609,6 +606,9 @@ static inline struct task_group *task_group(struct task_struct *p) | |||
609 | struct task_group *tg; | 606 | struct task_group *tg; |
610 | struct cgroup_subsys_state *css; | 607 | struct cgroup_subsys_state *css; |
611 | 608 | ||
609 | if (p->flags & PF_EXITING) | ||
610 | return &root_task_group; | ||
611 | |||
612 | css = task_subsys_state_check(p, cpu_cgroup_subsys_id, | 612 | css = task_subsys_state_check(p, cpu_cgroup_subsys_id, |
613 | lockdep_is_held(&task_rq(p)->lock)); | 613 | lockdep_is_held(&task_rq(p)->lock)); |
614 | tg = container_of(css, struct task_group, css); | 614 | tg = container_of(css, struct task_group, css); |
@@ -3887,7 +3887,7 @@ static inline void schedule_debug(struct task_struct *prev) | |||
3887 | schedstat_inc(this_rq(), sched_count); | 3887 | schedstat_inc(this_rq(), sched_count); |
3888 | #ifdef CONFIG_SCHEDSTATS | 3888 | #ifdef CONFIG_SCHEDSTATS |
3889 | if (unlikely(prev->lock_depth >= 0)) { | 3889 | if (unlikely(prev->lock_depth >= 0)) { |
3890 | schedstat_inc(this_rq(), bkl_count); | 3890 | schedstat_inc(this_rq(), rq_sched_info.bkl_count); |
3891 | schedstat_inc(prev, sched_info.bkl_count); | 3891 | schedstat_inc(prev, sched_info.bkl_count); |
3892 | } | 3892 | } |
3893 | #endif | 3893 | #endif |
@@ -4871,7 +4871,8 @@ recheck: | |||
4871 | * assigned. | 4871 | * assigned. |
4872 | */ | 4872 | */ |
4873 | if (rt_bandwidth_enabled() && rt_policy(policy) && | 4873 | if (rt_bandwidth_enabled() && rt_policy(policy) && |
4874 | task_group(p)->rt_bandwidth.rt_runtime == 0) { | 4874 | task_group(p)->rt_bandwidth.rt_runtime == 0 && |
4875 | !task_group_is_autogroup(task_group(p))) { | ||
4875 | __task_rq_unlock(rq); | 4876 | __task_rq_unlock(rq); |
4876 | raw_spin_unlock_irqrestore(&p->pi_lock, flags); | 4877 | raw_spin_unlock_irqrestore(&p->pi_lock, flags); |
4877 | return -EPERM; | 4878 | return -EPERM; |
@@ -8882,6 +8883,20 @@ cpu_cgroup_attach(struct cgroup_subsys *ss, struct cgroup *cgrp, | |||
8882 | } | 8883 | } |
8883 | } | 8884 | } |
8884 | 8885 | ||
8886 | static void | ||
8887 | cpu_cgroup_exit(struct cgroup_subsys *ss, struct task_struct *task) | ||
8888 | { | ||
8889 | /* | ||
8890 | * cgroup_exit() is called in the copy_process() failure path. | ||
8891 | * Ignore this case since the task hasn't ran yet, this avoids | ||
8892 | * trying to poke a half freed task state from generic code. | ||
8893 | */ | ||
8894 | if (!(task->flags & PF_EXITING)) | ||
8895 | return; | ||
8896 | |||
8897 | sched_move_task(task); | ||
8898 | } | ||
8899 | |||
8885 | #ifdef CONFIG_FAIR_GROUP_SCHED | 8900 | #ifdef CONFIG_FAIR_GROUP_SCHED |
8886 | static int cpu_shares_write_u64(struct cgroup *cgrp, struct cftype *cftype, | 8901 | static int cpu_shares_write_u64(struct cgroup *cgrp, struct cftype *cftype, |
8887 | u64 shareval) | 8902 | u64 shareval) |
@@ -8954,6 +8969,7 @@ struct cgroup_subsys cpu_cgroup_subsys = { | |||
8954 | .destroy = cpu_cgroup_destroy, | 8969 | .destroy = cpu_cgroup_destroy, |
8955 | .can_attach = cpu_cgroup_can_attach, | 8970 | .can_attach = cpu_cgroup_can_attach, |
8956 | .attach = cpu_cgroup_attach, | 8971 | .attach = cpu_cgroup_attach, |
8972 | .exit = cpu_cgroup_exit, | ||
8957 | .populate = cpu_cgroup_populate, | 8973 | .populate = cpu_cgroup_populate, |
8958 | .subsys_id = cpu_cgroup_subsys_id, | 8974 | .subsys_id = cpu_cgroup_subsys_id, |
8959 | .early_init = 1, | 8975 | .early_init = 1, |
diff --git a/kernel/sched_autogroup.c b/kernel/sched_autogroup.c index 32a723b8f84c..9fb656283157 100644 --- a/kernel/sched_autogroup.c +++ b/kernel/sched_autogroup.c | |||
@@ -27,6 +27,11 @@ static inline void autogroup_destroy(struct kref *kref) | |||
27 | { | 27 | { |
28 | struct autogroup *ag = container_of(kref, struct autogroup, kref); | 28 | struct autogroup *ag = container_of(kref, struct autogroup, kref); |
29 | 29 | ||
30 | #ifdef CONFIG_RT_GROUP_SCHED | ||
31 | /* We've redirected RT tasks to the root task group... */ | ||
32 | ag->tg->rt_se = NULL; | ||
33 | ag->tg->rt_rq = NULL; | ||
34 | #endif | ||
30 | sched_destroy_group(ag->tg); | 35 | sched_destroy_group(ag->tg); |
31 | } | 36 | } |
32 | 37 | ||
@@ -55,6 +60,10 @@ static inline struct autogroup *autogroup_task_get(struct task_struct *p) | |||
55 | return ag; | 60 | return ag; |
56 | } | 61 | } |
57 | 62 | ||
63 | #ifdef CONFIG_RT_GROUP_SCHED | ||
64 | static void free_rt_sched_group(struct task_group *tg); | ||
65 | #endif | ||
66 | |||
58 | static inline struct autogroup *autogroup_create(void) | 67 | static inline struct autogroup *autogroup_create(void) |
59 | { | 68 | { |
60 | struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL); | 69 | struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL); |
@@ -72,6 +81,19 @@ static inline struct autogroup *autogroup_create(void) | |||
72 | init_rwsem(&ag->lock); | 81 | init_rwsem(&ag->lock); |
73 | ag->id = atomic_inc_return(&autogroup_seq_nr); | 82 | ag->id = atomic_inc_return(&autogroup_seq_nr); |
74 | ag->tg = tg; | 83 | ag->tg = tg; |
84 | #ifdef CONFIG_RT_GROUP_SCHED | ||
85 | /* | ||
86 | * Autogroup RT tasks are redirected to the root task group | ||
87 | * so we don't have to move tasks around upon policy change, | ||
88 | * or flail around trying to allocate bandwidth on the fly. | ||
89 | * A bandwidth exception in __sched_setscheduler() allows | ||
90 | * the policy change to proceed. Thereafter, task_group() | ||
91 | * returns &root_task_group, so zero bandwidth is required. | ||
92 | */ | ||
93 | free_rt_sched_group(tg); | ||
94 | tg->rt_se = root_task_group.rt_se; | ||
95 | tg->rt_rq = root_task_group.rt_rq; | ||
96 | #endif | ||
75 | tg->autogroup = ag; | 97 | tg->autogroup = ag; |
76 | 98 | ||
77 | return ag; | 99 | return ag; |
@@ -106,6 +128,11 @@ task_wants_autogroup(struct task_struct *p, struct task_group *tg) | |||
106 | return true; | 128 | return true; |
107 | } | 129 | } |
108 | 130 | ||
131 | static inline bool task_group_is_autogroup(struct task_group *tg) | ||
132 | { | ||
133 | return tg != &root_task_group && tg->autogroup; | ||
134 | } | ||
135 | |||
109 | static inline struct task_group * | 136 | static inline struct task_group * |
110 | autogroup_task_group(struct task_struct *p, struct task_group *tg) | 137 | autogroup_task_group(struct task_struct *p, struct task_group *tg) |
111 | { | 138 | { |
@@ -231,6 +258,11 @@ void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m) | |||
231 | #ifdef CONFIG_SCHED_DEBUG | 258 | #ifdef CONFIG_SCHED_DEBUG |
232 | static inline int autogroup_path(struct task_group *tg, char *buf, int buflen) | 259 | static inline int autogroup_path(struct task_group *tg, char *buf, int buflen) |
233 | { | 260 | { |
261 | int enabled = ACCESS_ONCE(sysctl_sched_autogroup_enabled); | ||
262 | |||
263 | if (!enabled || !tg->autogroup) | ||
264 | return 0; | ||
265 | |||
234 | return snprintf(buf, buflen, "%s-%ld", "/autogroup", tg->autogroup->id); | 266 | return snprintf(buf, buflen, "%s-%ld", "/autogroup", tg->autogroup->id); |
235 | } | 267 | } |
236 | #endif /* CONFIG_SCHED_DEBUG */ | 268 | #endif /* CONFIG_SCHED_DEBUG */ |
diff --git a/kernel/sched_autogroup.h b/kernel/sched_autogroup.h index 5358e241cb20..7b859ffe5dad 100644 --- a/kernel/sched_autogroup.h +++ b/kernel/sched_autogroup.h | |||
@@ -15,6 +15,10 @@ autogroup_task_group(struct task_struct *p, struct task_group *tg); | |||
15 | 15 | ||
16 | static inline void autogroup_init(struct task_struct *init_task) { } | 16 | static inline void autogroup_init(struct task_struct *init_task) { } |
17 | static inline void autogroup_free(struct task_group *tg) { } | 17 | static inline void autogroup_free(struct task_group *tg) { } |
18 | static inline bool task_group_is_autogroup(struct task_group *tg) | ||
19 | { | ||
20 | return 0; | ||
21 | } | ||
18 | 22 | ||
19 | static inline struct task_group * | 23 | static inline struct task_group * |
20 | autogroup_task_group(struct task_struct *p, struct task_group *tg) | 24 | autogroup_task_group(struct task_struct *p, struct task_group *tg) |
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c index 1dfae3d014b5..eb6cb8edd075 100644 --- a/kernel/sched_debug.c +++ b/kernel/sched_debug.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/kallsyms.h> | 16 | #include <linux/kallsyms.h> |
17 | #include <linux/utsname.h> | 17 | #include <linux/utsname.h> |
18 | 18 | ||
19 | static DEFINE_SPINLOCK(sched_debug_lock); | ||
20 | |||
19 | /* | 21 | /* |
20 | * This allows printing both to /proc/sched_debug and | 22 | * This allows printing both to /proc/sched_debug and |
21 | * to the console | 23 | * to the console |
@@ -86,6 +88,26 @@ static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group | |||
86 | } | 88 | } |
87 | #endif | 89 | #endif |
88 | 90 | ||
91 | #ifdef CONFIG_CGROUP_SCHED | ||
92 | static char group_path[PATH_MAX]; | ||
93 | |||
94 | static char *task_group_path(struct task_group *tg) | ||
95 | { | ||
96 | if (autogroup_path(tg, group_path, PATH_MAX)) | ||
97 | return group_path; | ||
98 | |||
99 | /* | ||
100 | * May be NULL if the underlying cgroup isn't fully-created yet | ||
101 | */ | ||
102 | if (!tg->css.cgroup) { | ||
103 | group_path[0] = '\0'; | ||
104 | return group_path; | ||
105 | } | ||
106 | cgroup_path(tg->css.cgroup, group_path, PATH_MAX); | ||
107 | return group_path; | ||
108 | } | ||
109 | #endif | ||
110 | |||
89 | static void | 111 | static void |
90 | print_task(struct seq_file *m, struct rq *rq, struct task_struct *p) | 112 | print_task(struct seq_file *m, struct rq *rq, struct task_struct *p) |
91 | { | 113 | { |
@@ -108,6 +130,9 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p) | |||
108 | SEQ_printf(m, "%15Ld %15Ld %15Ld.%06ld %15Ld.%06ld %15Ld.%06ld", | 130 | SEQ_printf(m, "%15Ld %15Ld %15Ld.%06ld %15Ld.%06ld %15Ld.%06ld", |
109 | 0LL, 0LL, 0LL, 0L, 0LL, 0L, 0LL, 0L); | 131 | 0LL, 0LL, 0LL, 0L, 0LL, 0L, 0LL, 0L); |
110 | #endif | 132 | #endif |
133 | #ifdef CONFIG_CGROUP_SCHED | ||
134 | SEQ_printf(m, " %s", task_group_path(task_group(p))); | ||
135 | #endif | ||
111 | 136 | ||
112 | SEQ_printf(m, "\n"); | 137 | SEQ_printf(m, "\n"); |
113 | } | 138 | } |
@@ -144,7 +169,11 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) | |||
144 | struct sched_entity *last; | 169 | struct sched_entity *last; |
145 | unsigned long flags; | 170 | unsigned long flags; |
146 | 171 | ||
172 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
173 | SEQ_printf(m, "\ncfs_rq[%d]:%s\n", cpu, task_group_path(cfs_rq->tg)); | ||
174 | #else | ||
147 | SEQ_printf(m, "\ncfs_rq[%d]:\n", cpu); | 175 | SEQ_printf(m, "\ncfs_rq[%d]:\n", cpu); |
176 | #endif | ||
148 | SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "exec_clock", | 177 | SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "exec_clock", |
149 | SPLIT_NS(cfs_rq->exec_clock)); | 178 | SPLIT_NS(cfs_rq->exec_clock)); |
150 | 179 | ||
@@ -191,7 +220,11 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) | |||
191 | 220 | ||
192 | void print_rt_rq(struct seq_file *m, int cpu, struct rt_rq *rt_rq) | 221 | void print_rt_rq(struct seq_file *m, int cpu, struct rt_rq *rt_rq) |
193 | { | 222 | { |
223 | #ifdef CONFIG_RT_GROUP_SCHED | ||
224 | SEQ_printf(m, "\nrt_rq[%d]:%s\n", cpu, task_group_path(rt_rq->tg)); | ||
225 | #else | ||
194 | SEQ_printf(m, "\nrt_rq[%d]:\n", cpu); | 226 | SEQ_printf(m, "\nrt_rq[%d]:\n", cpu); |
227 | #endif | ||
195 | 228 | ||
196 | #define P(x) \ | 229 | #define P(x) \ |
197 | SEQ_printf(m, " .%-30s: %Ld\n", #x, (long long)(rt_rq->x)) | 230 | SEQ_printf(m, " .%-30s: %Ld\n", #x, (long long)(rt_rq->x)) |
@@ -212,6 +245,7 @@ extern __read_mostly int sched_clock_running; | |||
212 | static void print_cpu(struct seq_file *m, int cpu) | 245 | static void print_cpu(struct seq_file *m, int cpu) |
213 | { | 246 | { |
214 | struct rq *rq = cpu_rq(cpu); | 247 | struct rq *rq = cpu_rq(cpu); |
248 | unsigned long flags; | ||
215 | 249 | ||
216 | #ifdef CONFIG_X86 | 250 | #ifdef CONFIG_X86 |
217 | { | 251 | { |
@@ -262,14 +296,20 @@ static void print_cpu(struct seq_file *m, int cpu) | |||
262 | P(ttwu_count); | 296 | P(ttwu_count); |
263 | P(ttwu_local); | 297 | P(ttwu_local); |
264 | 298 | ||
265 | P(bkl_count); | 299 | SEQ_printf(m, " .%-30s: %d\n", "bkl_count", |
300 | rq->rq_sched_info.bkl_count); | ||
266 | 301 | ||
267 | #undef P | 302 | #undef P |
303 | #undef P64 | ||
268 | #endif | 304 | #endif |
305 | spin_lock_irqsave(&sched_debug_lock, flags); | ||
269 | print_cfs_stats(m, cpu); | 306 | print_cfs_stats(m, cpu); |
270 | print_rt_stats(m, cpu); | 307 | print_rt_stats(m, cpu); |
271 | 308 | ||
309 | rcu_read_lock(); | ||
272 | print_rq(m, rq, cpu); | 310 | print_rq(m, rq, cpu); |
311 | rcu_read_unlock(); | ||
312 | spin_unlock_irqrestore(&sched_debug_lock, flags); | ||
273 | } | 313 | } |
274 | 314 | ||
275 | static const char *sched_tunable_scaling_names[] = { | 315 | static const char *sched_tunable_scaling_names[] = { |
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index c62ebae65cf0..77e9166d7bbf 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1062,6 +1062,9 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) | |||
1062 | struct sched_entity *se = __pick_next_entity(cfs_rq); | 1062 | struct sched_entity *se = __pick_next_entity(cfs_rq); |
1063 | s64 delta = curr->vruntime - se->vruntime; | 1063 | s64 delta = curr->vruntime - se->vruntime; |
1064 | 1064 | ||
1065 | if (delta < 0) | ||
1066 | return; | ||
1067 | |||
1065 | if (delta > ideal_runtime) | 1068 | if (delta > ideal_runtime) |
1066 | resched_task(rq_of(cfs_rq)->curr); | 1069 | resched_task(rq_of(cfs_rq)->curr); |
1067 | } | 1070 | } |
@@ -1362,27 +1365,27 @@ static long effective_load(struct task_group *tg, int cpu, long wl, long wg) | |||
1362 | return wl; | 1365 | return wl; |
1363 | 1366 | ||
1364 | for_each_sched_entity(se) { | 1367 | for_each_sched_entity(se) { |
1365 | long S, rw, s, a, b; | 1368 | long lw, w; |
1366 | 1369 | ||
1367 | S = se->my_q->tg->shares; | 1370 | tg = se->my_q->tg; |
1368 | s = se->load.weight; | 1371 | w = se->my_q->load.weight; |
1369 | rw = se->my_q->load.weight; | ||
1370 | 1372 | ||
1371 | a = S*(rw + wl); | 1373 | /* use this cpu's instantaneous contribution */ |
1372 | b = S*rw + s*wg; | 1374 | lw = atomic_read(&tg->load_weight); |
1375 | lw -= se->my_q->load_contribution; | ||
1376 | lw += w + wg; | ||
1373 | 1377 | ||
1374 | wl = s*(a-b); | 1378 | wl += w; |
1375 | 1379 | ||
1376 | if (likely(b)) | 1380 | if (lw > 0 && wl < lw) |
1377 | wl /= b; | 1381 | wl = (wl * tg->shares) / lw; |
1382 | else | ||
1383 | wl = tg->shares; | ||
1378 | 1384 | ||
1379 | /* | 1385 | /* zero point is MIN_SHARES */ |
1380 | * Assume the group is already running and will | 1386 | if (wl < MIN_SHARES) |
1381 | * thus already be accounted for in the weight. | 1387 | wl = MIN_SHARES; |
1382 | * | 1388 | wl -= se->load.weight; |
1383 | * That is, moving shares between CPUs, does not | ||
1384 | * alter the group weight. | ||
1385 | */ | ||
1386 | wg = 0; | 1389 | wg = 0; |
1387 | } | 1390 | } |
1388 | 1391 | ||
diff --git a/kernel/smp.c b/kernel/smp.c index 4ec30e069987..9910744f0856 100644 --- a/kernel/smp.c +++ b/kernel/smp.c | |||
@@ -194,23 +194,52 @@ void generic_smp_call_function_interrupt(void) | |||
194 | */ | 194 | */ |
195 | list_for_each_entry_rcu(data, &call_function.queue, csd.list) { | 195 | list_for_each_entry_rcu(data, &call_function.queue, csd.list) { |
196 | int refs; | 196 | int refs; |
197 | void (*func) (void *info); | ||
197 | 198 | ||
198 | if (!cpumask_test_and_clear_cpu(cpu, data->cpumask)) | 199 | /* |
200 | * Since we walk the list without any locks, we might | ||
201 | * see an entry that was completed, removed from the | ||
202 | * list and is in the process of being reused. | ||
203 | * | ||
204 | * We must check that the cpu is in the cpumask before | ||
205 | * checking the refs, and both must be set before | ||
206 | * executing the callback on this cpu. | ||
207 | */ | ||
208 | |||
209 | if (!cpumask_test_cpu(cpu, data->cpumask)) | ||
210 | continue; | ||
211 | |||
212 | smp_rmb(); | ||
213 | |||
214 | if (atomic_read(&data->refs) == 0) | ||
199 | continue; | 215 | continue; |
200 | 216 | ||
217 | func = data->csd.func; /* for later warn */ | ||
201 | data->csd.func(data->csd.info); | 218 | data->csd.func(data->csd.info); |
202 | 219 | ||
220 | /* | ||
221 | * If the cpu mask is not still set then it enabled interrupts, | ||
222 | * we took another smp interrupt, and executed the function | ||
223 | * twice on this cpu. In theory that copy decremented refs. | ||
224 | */ | ||
225 | if (!cpumask_test_and_clear_cpu(cpu, data->cpumask)) { | ||
226 | WARN(1, "%pS enabled interrupts and double executed\n", | ||
227 | func); | ||
228 | continue; | ||
229 | } | ||
230 | |||
203 | refs = atomic_dec_return(&data->refs); | 231 | refs = atomic_dec_return(&data->refs); |
204 | WARN_ON(refs < 0); | 232 | WARN_ON(refs < 0); |
205 | if (!refs) { | ||
206 | raw_spin_lock(&call_function.lock); | ||
207 | list_del_rcu(&data->csd.list); | ||
208 | raw_spin_unlock(&call_function.lock); | ||
209 | } | ||
210 | 233 | ||
211 | if (refs) | 234 | if (refs) |
212 | continue; | 235 | continue; |
213 | 236 | ||
237 | WARN_ON(!cpumask_empty(data->cpumask)); | ||
238 | |||
239 | raw_spin_lock(&call_function.lock); | ||
240 | list_del_rcu(&data->csd.list); | ||
241 | raw_spin_unlock(&call_function.lock); | ||
242 | |||
214 | csd_unlock(&data->csd); | 243 | csd_unlock(&data->csd); |
215 | } | 244 | } |
216 | 245 | ||
@@ -430,7 +459,7 @@ void smp_call_function_many(const struct cpumask *mask, | |||
430 | * can't happen. | 459 | * can't happen. |
431 | */ | 460 | */ |
432 | WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() | 461 | WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() |
433 | && !oops_in_progress); | 462 | && !oops_in_progress && !early_boot_irqs_disabled); |
434 | 463 | ||
435 | /* So, what's a CPU they want? Ignoring this one. */ | 464 | /* So, what's a CPU they want? Ignoring this one. */ |
436 | cpu = cpumask_first_and(mask, cpu_online_mask); | 465 | cpu = cpumask_first_and(mask, cpu_online_mask); |
@@ -454,11 +483,21 @@ void smp_call_function_many(const struct cpumask *mask, | |||
454 | 483 | ||
455 | data = &__get_cpu_var(cfd_data); | 484 | data = &__get_cpu_var(cfd_data); |
456 | csd_lock(&data->csd); | 485 | csd_lock(&data->csd); |
486 | BUG_ON(atomic_read(&data->refs) || !cpumask_empty(data->cpumask)); | ||
457 | 487 | ||
458 | data->csd.func = func; | 488 | data->csd.func = func; |
459 | data->csd.info = info; | 489 | data->csd.info = info; |
460 | cpumask_and(data->cpumask, mask, cpu_online_mask); | 490 | cpumask_and(data->cpumask, mask, cpu_online_mask); |
461 | cpumask_clear_cpu(this_cpu, data->cpumask); | 491 | cpumask_clear_cpu(this_cpu, data->cpumask); |
492 | |||
493 | /* | ||
494 | * To ensure the interrupt handler gets an complete view | ||
495 | * we order the cpumask and refs writes and order the read | ||
496 | * of them in the interrupt handler. In addition we may | ||
497 | * only clear our own cpu bit from the mask. | ||
498 | */ | ||
499 | smp_wmb(); | ||
500 | |||
462 | atomic_set(&data->refs, cpumask_weight(data->cpumask)); | 501 | atomic_set(&data->refs, cpumask_weight(data->cpumask)); |
463 | 502 | ||
464 | raw_spin_lock_irqsave(&call_function.lock, flags); | 503 | raw_spin_lock_irqsave(&call_function.lock, flags); |
@@ -533,17 +572,20 @@ void ipi_call_unlock_irq(void) | |||
533 | #endif /* USE_GENERIC_SMP_HELPERS */ | 572 | #endif /* USE_GENERIC_SMP_HELPERS */ |
534 | 573 | ||
535 | /* | 574 | /* |
536 | * Call a function on all processors | 575 | * Call a function on all processors. May be used during early boot while |
576 | * early_boot_irqs_disabled is set. Use local_irq_save/restore() instead | ||
577 | * of local_irq_disable/enable(). | ||
537 | */ | 578 | */ |
538 | int on_each_cpu(void (*func) (void *info), void *info, int wait) | 579 | int on_each_cpu(void (*func) (void *info), void *info, int wait) |
539 | { | 580 | { |
581 | unsigned long flags; | ||
540 | int ret = 0; | 582 | int ret = 0; |
541 | 583 | ||
542 | preempt_disable(); | 584 | preempt_disable(); |
543 | ret = smp_call_function(func, info, wait); | 585 | ret = smp_call_function(func, info, wait); |
544 | local_irq_disable(); | 586 | local_irq_save(flags); |
545 | func(info); | 587 | func(info); |
546 | local_irq_enable(); | 588 | local_irq_restore(flags); |
547 | preempt_enable(); | 589 | preempt_enable(); |
548 | return ret; | 590 | return ret; |
549 | } | 591 | } |
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c index 5cf8c602b880..92b6e1e12d98 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c | |||
@@ -453,14 +453,6 @@ void time_hardirqs_off(unsigned long a0, unsigned long a1) | |||
453 | * Stubs: | 453 | * Stubs: |
454 | */ | 454 | */ |
455 | 455 | ||
456 | void early_boot_irqs_off(void) | ||
457 | { | ||
458 | } | ||
459 | |||
460 | void early_boot_irqs_on(void) | ||
461 | { | ||
462 | } | ||
463 | |||
464 | void trace_softirqs_on(unsigned long ip) | 456 | void trace_softirqs_on(unsigned long ip) |
465 | { | 457 | { |
466 | } | 458 | } |
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 2d05adb98401..3967c2356e37 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -657,7 +657,7 @@ config DEBUG_HIGHMEM | |||
657 | Disable for production systems. | 657 | Disable for production systems. |
658 | 658 | ||
659 | config DEBUG_BUGVERBOSE | 659 | config DEBUG_BUGVERBOSE |
660 | bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED | 660 | bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT |
661 | depends on BUG | 661 | depends on BUG |
662 | depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \ | 662 | depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \ |
663 | FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 | 663 | FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 |
@@ -729,8 +729,8 @@ config DEBUG_WRITECOUNT | |||
729 | If unsure, say N. | 729 | If unsure, say N. |
730 | 730 | ||
731 | config DEBUG_MEMORY_INIT | 731 | config DEBUG_MEMORY_INIT |
732 | bool "Debug memory initialisation" if EMBEDDED | 732 | bool "Debug memory initialisation" if EXPERT |
733 | default !EMBEDDED | 733 | default !EXPERT |
734 | help | 734 | help |
735 | Enable this for additional checks during memory initialisation. | 735 | Enable this for additional checks during memory initialisation. |
736 | The sanity checks verify aspects of the VM such as the memory model | 736 | The sanity checks verify aspects of the VM such as the memory model |
diff --git a/lib/xz/Kconfig b/lib/xz/Kconfig index e3b6e18fdac5..60a6088d0e5e 100644 --- a/lib/xz/Kconfig +++ b/lib/xz/Kconfig | |||
@@ -7,37 +7,37 @@ config XZ_DEC | |||
7 | CRC32 is supported. See Documentation/xz.txt for more information. | 7 | CRC32 is supported. See Documentation/xz.txt for more information. |
8 | 8 | ||
9 | config XZ_DEC_X86 | 9 | config XZ_DEC_X86 |
10 | bool "x86 BCJ filter decoder" if EMBEDDED | 10 | bool "x86 BCJ filter decoder" if EXPERT |
11 | default y | 11 | default y |
12 | depends on XZ_DEC | 12 | depends on XZ_DEC |
13 | select XZ_DEC_BCJ | 13 | select XZ_DEC_BCJ |
14 | 14 | ||
15 | config XZ_DEC_POWERPC | 15 | config XZ_DEC_POWERPC |
16 | bool "PowerPC BCJ filter decoder" if EMBEDDED | 16 | bool "PowerPC BCJ filter decoder" if EXPERT |
17 | default y | 17 | default y |
18 | depends on XZ_DEC | 18 | depends on XZ_DEC |
19 | select XZ_DEC_BCJ | 19 | select XZ_DEC_BCJ |
20 | 20 | ||
21 | config XZ_DEC_IA64 | 21 | config XZ_DEC_IA64 |
22 | bool "IA-64 BCJ filter decoder" if EMBEDDED | 22 | bool "IA-64 BCJ filter decoder" if EXPERT |
23 | default y | 23 | default y |
24 | depends on XZ_DEC | 24 | depends on XZ_DEC |
25 | select XZ_DEC_BCJ | 25 | select XZ_DEC_BCJ |
26 | 26 | ||
27 | config XZ_DEC_ARM | 27 | config XZ_DEC_ARM |
28 | bool "ARM BCJ filter decoder" if EMBEDDED | 28 | bool "ARM BCJ filter decoder" if EXPERT |
29 | default y | 29 | default y |
30 | depends on XZ_DEC | 30 | depends on XZ_DEC |
31 | select XZ_DEC_BCJ | 31 | select XZ_DEC_BCJ |
32 | 32 | ||
33 | config XZ_DEC_ARMTHUMB | 33 | config XZ_DEC_ARMTHUMB |
34 | bool "ARM-Thumb BCJ filter decoder" if EMBEDDED | 34 | bool "ARM-Thumb BCJ filter decoder" if EXPERT |
35 | default y | 35 | default y |
36 | depends on XZ_DEC | 36 | depends on XZ_DEC |
37 | select XZ_DEC_BCJ | 37 | select XZ_DEC_BCJ |
38 | 38 | ||
39 | config XZ_DEC_SPARC | 39 | config XZ_DEC_SPARC |
40 | bool "SPARC BCJ filter decoder" if EMBEDDED | 40 | bool "SPARC BCJ filter decoder" if EXPERT |
41 | default y | 41 | default y |
42 | depends on XZ_DEC | 42 | depends on XZ_DEC |
43 | select XZ_DEC_BCJ | 43 | select XZ_DEC_BCJ |
diff --git a/mm/compaction.c b/mm/compaction.c index 6d592a021072..8be430b812de 100644 --- a/mm/compaction.c +++ b/mm/compaction.c | |||
@@ -406,6 +406,10 @@ static int compact_finished(struct zone *zone, | |||
406 | if (!zone_watermark_ok(zone, cc->order, watermark, 0, 0)) | 406 | if (!zone_watermark_ok(zone, cc->order, watermark, 0, 0)) |
407 | return COMPACT_CONTINUE; | 407 | return COMPACT_CONTINUE; |
408 | 408 | ||
409 | /* | ||
410 | * order == -1 is expected when compacting via | ||
411 | * /proc/sys/vm/compact_memory | ||
412 | */ | ||
409 | if (cc->order == -1) | 413 | if (cc->order == -1) |
410 | return COMPACT_CONTINUE; | 414 | return COMPACT_CONTINUE; |
411 | 415 | ||
@@ -454,6 +458,13 @@ unsigned long compaction_suitable(struct zone *zone, int order) | |||
454 | return COMPACT_SKIPPED; | 458 | return COMPACT_SKIPPED; |
455 | 459 | ||
456 | /* | 460 | /* |
461 | * order == -1 is expected when compacting via | ||
462 | * /proc/sys/vm/compact_memory | ||
463 | */ | ||
464 | if (order == -1) | ||
465 | return COMPACT_CONTINUE; | ||
466 | |||
467 | /* | ||
457 | * fragmentation index determines if allocation failures are due to | 468 | * fragmentation index determines if allocation failures are due to |
458 | * low memory or external fragmentation | 469 | * low memory or external fragmentation |
459 | * | 470 | * |
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 004c9c2aac78..e187454d82f6 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c | |||
@@ -1203,6 +1203,8 @@ static void __split_huge_page_refcount(struct page *page) | |||
1203 | BUG_ON(!PageDirty(page_tail)); | 1203 | BUG_ON(!PageDirty(page_tail)); |
1204 | BUG_ON(!PageSwapBacked(page_tail)); | 1204 | BUG_ON(!PageSwapBacked(page_tail)); |
1205 | 1205 | ||
1206 | mem_cgroup_split_huge_fixup(page, page_tail); | ||
1207 | |||
1206 | lru_add_page_tail(zone, page, page_tail); | 1208 | lru_add_page_tail(zone, page, page_tail); |
1207 | } | 1209 | } |
1208 | 1210 | ||
@@ -1837,9 +1839,9 @@ static void collapse_huge_page(struct mm_struct *mm, | |||
1837 | spin_lock(ptl); | 1839 | spin_lock(ptl); |
1838 | isolated = __collapse_huge_page_isolate(vma, address, pte); | 1840 | isolated = __collapse_huge_page_isolate(vma, address, pte); |
1839 | spin_unlock(ptl); | 1841 | spin_unlock(ptl); |
1840 | pte_unmap(pte); | ||
1841 | 1842 | ||
1842 | if (unlikely(!isolated)) { | 1843 | if (unlikely(!isolated)) { |
1844 | pte_unmap(pte); | ||
1843 | spin_lock(&mm->page_table_lock); | 1845 | spin_lock(&mm->page_table_lock); |
1844 | BUG_ON(!pmd_none(*pmd)); | 1846 | BUG_ON(!pmd_none(*pmd)); |
1845 | set_pmd_at(mm, address, pmd, _pmd); | 1847 | set_pmd_at(mm, address, pmd, _pmd); |
@@ -1856,6 +1858,7 @@ static void collapse_huge_page(struct mm_struct *mm, | |||
1856 | anon_vma_unlock(vma->anon_vma); | 1858 | anon_vma_unlock(vma->anon_vma); |
1857 | 1859 | ||
1858 | __collapse_huge_page_copy(pte, new_page, vma, address, ptl); | 1860 | __collapse_huge_page_copy(pte, new_page, vma, address, ptl); |
1861 | pte_unmap(pte); | ||
1859 | __SetPageUptodate(new_page); | 1862 | __SetPageUptodate(new_page); |
1860 | pgtable = pmd_pgtable(_pmd); | 1863 | pgtable = pmd_pgtable(_pmd); |
1861 | VM_BUG_ON(page_count(pgtable) != 1); | 1864 | VM_BUG_ON(page_count(pgtable) != 1); |
diff --git a/mm/memblock.c b/mm/memblock.c index 400dc62697d7..bdba245d8afd 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -683,13 +683,13 @@ int __init_memblock memblock_is_memory(phys_addr_t addr) | |||
683 | 683 | ||
684 | int __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size) | 684 | int __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size) |
685 | { | 685 | { |
686 | int idx = memblock_search(&memblock.reserved, base); | 686 | int idx = memblock_search(&memblock.memory, base); |
687 | 687 | ||
688 | if (idx == -1) | 688 | if (idx == -1) |
689 | return 0; | 689 | return 0; |
690 | return memblock.reserved.regions[idx].base <= base && | 690 | return memblock.memory.regions[idx].base <= base && |
691 | (memblock.reserved.regions[idx].base + | 691 | (memblock.memory.regions[idx].base + |
692 | memblock.reserved.regions[idx].size) >= (base + size); | 692 | memblock.memory.regions[idx].size) >= (base + size); |
693 | } | 693 | } |
694 | 694 | ||
695 | int __init_memblock memblock_is_region_reserved(phys_addr_t base, phys_addr_t size) | 695 | int __init_memblock memblock_is_region_reserved(phys_addr_t base, phys_addr_t size) |
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8ab841031436..db76ef726293 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -600,23 +600,22 @@ static void mem_cgroup_swap_statistics(struct mem_cgroup *mem, | |||
600 | } | 600 | } |
601 | 601 | ||
602 | static void mem_cgroup_charge_statistics(struct mem_cgroup *mem, | 602 | static void mem_cgroup_charge_statistics(struct mem_cgroup *mem, |
603 | struct page_cgroup *pc, | 603 | bool file, int nr_pages) |
604 | bool charge) | ||
605 | { | 604 | { |
606 | int val = (charge) ? 1 : -1; | ||
607 | |||
608 | preempt_disable(); | 605 | preempt_disable(); |
609 | 606 | ||
610 | if (PageCgroupCache(pc)) | 607 | if (file) |
611 | __this_cpu_add(mem->stat->count[MEM_CGROUP_STAT_CACHE], val); | 608 | __this_cpu_add(mem->stat->count[MEM_CGROUP_STAT_CACHE], nr_pages); |
612 | else | 609 | else |
613 | __this_cpu_add(mem->stat->count[MEM_CGROUP_STAT_RSS], val); | 610 | __this_cpu_add(mem->stat->count[MEM_CGROUP_STAT_RSS], nr_pages); |
614 | 611 | ||
615 | if (charge) | 612 | /* pagein of a big page is an event. So, ignore page size */ |
613 | if (nr_pages > 0) | ||
616 | __this_cpu_inc(mem->stat->count[MEM_CGROUP_STAT_PGPGIN_COUNT]); | 614 | __this_cpu_inc(mem->stat->count[MEM_CGROUP_STAT_PGPGIN_COUNT]); |
617 | else | 615 | else |
618 | __this_cpu_inc(mem->stat->count[MEM_CGROUP_STAT_PGPGOUT_COUNT]); | 616 | __this_cpu_inc(mem->stat->count[MEM_CGROUP_STAT_PGPGOUT_COUNT]); |
619 | __this_cpu_inc(mem->stat->count[MEM_CGROUP_EVENTS]); | 617 | |
618 | __this_cpu_add(mem->stat->count[MEM_CGROUP_EVENTS], nr_pages); | ||
620 | 619 | ||
621 | preempt_enable(); | 620 | preempt_enable(); |
622 | } | 621 | } |
@@ -815,7 +814,8 @@ void mem_cgroup_del_lru_list(struct page *page, enum lru_list lru) | |||
815 | * removed from global LRU. | 814 | * removed from global LRU. |
816 | */ | 815 | */ |
817 | mz = page_cgroup_zoneinfo(pc); | 816 | mz = page_cgroup_zoneinfo(pc); |
818 | MEM_CGROUP_ZSTAT(mz, lru) -= 1; | 817 | /* huge page split is done under lru_lock. so, we have no races. */ |
818 | MEM_CGROUP_ZSTAT(mz, lru) -= 1 << compound_order(page); | ||
819 | if (mem_cgroup_is_root(pc->mem_cgroup)) | 819 | if (mem_cgroup_is_root(pc->mem_cgroup)) |
820 | return; | 820 | return; |
821 | VM_BUG_ON(list_empty(&pc->lru)); | 821 | VM_BUG_ON(list_empty(&pc->lru)); |
@@ -836,13 +836,12 @@ void mem_cgroup_rotate_lru_list(struct page *page, enum lru_list lru) | |||
836 | return; | 836 | return; |
837 | 837 | ||
838 | pc = lookup_page_cgroup(page); | 838 | pc = lookup_page_cgroup(page); |
839 | /* | ||
840 | * Used bit is set without atomic ops but after smp_wmb(). | ||
841 | * For making pc->mem_cgroup visible, insert smp_rmb() here. | ||
842 | */ | ||
843 | smp_rmb(); | ||
844 | /* unused or root page is not rotated. */ | 839 | /* unused or root page is not rotated. */ |
845 | if (!PageCgroupUsed(pc) || mem_cgroup_is_root(pc->mem_cgroup)) | 840 | if (!PageCgroupUsed(pc)) |
841 | return; | ||
842 | /* Ensure pc->mem_cgroup is visible after reading PCG_USED. */ | ||
843 | smp_rmb(); | ||
844 | if (mem_cgroup_is_root(pc->mem_cgroup)) | ||
846 | return; | 845 | return; |
847 | mz = page_cgroup_zoneinfo(pc); | 846 | mz = page_cgroup_zoneinfo(pc); |
848 | list_move(&pc->lru, &mz->lists[lru]); | 847 | list_move(&pc->lru, &mz->lists[lru]); |
@@ -857,16 +856,13 @@ void mem_cgroup_add_lru_list(struct page *page, enum lru_list lru) | |||
857 | return; | 856 | return; |
858 | pc = lookup_page_cgroup(page); | 857 | pc = lookup_page_cgroup(page); |
859 | VM_BUG_ON(PageCgroupAcctLRU(pc)); | 858 | VM_BUG_ON(PageCgroupAcctLRU(pc)); |
860 | /* | ||
861 | * Used bit is set without atomic ops but after smp_wmb(). | ||
862 | * For making pc->mem_cgroup visible, insert smp_rmb() here. | ||
863 | */ | ||
864 | smp_rmb(); | ||
865 | if (!PageCgroupUsed(pc)) | 859 | if (!PageCgroupUsed(pc)) |
866 | return; | 860 | return; |
867 | 861 | /* Ensure pc->mem_cgroup is visible after reading PCG_USED. */ | |
862 | smp_rmb(); | ||
868 | mz = page_cgroup_zoneinfo(pc); | 863 | mz = page_cgroup_zoneinfo(pc); |
869 | MEM_CGROUP_ZSTAT(mz, lru) += 1; | 864 | /* huge page split is done under lru_lock. so, we have no races. */ |
865 | MEM_CGROUP_ZSTAT(mz, lru) += 1 << compound_order(page); | ||
870 | SetPageCgroupAcctLRU(pc); | 866 | SetPageCgroupAcctLRU(pc); |
871 | if (mem_cgroup_is_root(pc->mem_cgroup)) | 867 | if (mem_cgroup_is_root(pc->mem_cgroup)) |
872 | return; | 868 | return; |
@@ -1030,14 +1026,10 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page) | |||
1030 | return NULL; | 1026 | return NULL; |
1031 | 1027 | ||
1032 | pc = lookup_page_cgroup(page); | 1028 | pc = lookup_page_cgroup(page); |
1033 | /* | ||
1034 | * Used bit is set without atomic ops but after smp_wmb(). | ||
1035 | * For making pc->mem_cgroup visible, insert smp_rmb() here. | ||
1036 | */ | ||
1037 | smp_rmb(); | ||
1038 | if (!PageCgroupUsed(pc)) | 1029 | if (!PageCgroupUsed(pc)) |
1039 | return NULL; | 1030 | return NULL; |
1040 | 1031 | /* Ensure pc->mem_cgroup is visible after reading PCG_USED. */ | |
1032 | smp_rmb(); | ||
1041 | mz = page_cgroup_zoneinfo(pc); | 1033 | mz = page_cgroup_zoneinfo(pc); |
1042 | if (!mz) | 1034 | if (!mz) |
1043 | return NULL; | 1035 | return NULL; |
@@ -1615,7 +1607,7 @@ void mem_cgroup_update_page_stat(struct page *page, | |||
1615 | if (unlikely(!mem || !PageCgroupUsed(pc))) | 1607 | if (unlikely(!mem || !PageCgroupUsed(pc))) |
1616 | goto out; | 1608 | goto out; |
1617 | /* pc->mem_cgroup is unstable ? */ | 1609 | /* pc->mem_cgroup is unstable ? */ |
1618 | if (unlikely(mem_cgroup_stealed(mem))) { | 1610 | if (unlikely(mem_cgroup_stealed(mem)) || PageTransHuge(page)) { |
1619 | /* take a lock against to access pc->mem_cgroup */ | 1611 | /* take a lock against to access pc->mem_cgroup */ |
1620 | move_lock_page_cgroup(pc, &flags); | 1612 | move_lock_page_cgroup(pc, &flags); |
1621 | need_unlock = true; | 1613 | need_unlock = true; |
@@ -2084,14 +2076,27 @@ struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page) | |||
2084 | return mem; | 2076 | return mem; |
2085 | } | 2077 | } |
2086 | 2078 | ||
2087 | /* | 2079 | static void __mem_cgroup_commit_charge(struct mem_cgroup *mem, |
2088 | * commit a charge got by __mem_cgroup_try_charge() and makes page_cgroup to be | 2080 | struct page_cgroup *pc, |
2089 | * USED state. If already USED, uncharge and return. | 2081 | enum charge_type ctype, |
2090 | */ | 2082 | int page_size) |
2091 | static void ____mem_cgroup_commit_charge(struct mem_cgroup *mem, | ||
2092 | struct page_cgroup *pc, | ||
2093 | enum charge_type ctype) | ||
2094 | { | 2083 | { |
2084 | int nr_pages = page_size >> PAGE_SHIFT; | ||
2085 | |||
2086 | /* try_charge() can return NULL to *memcg, taking care of it. */ | ||
2087 | if (!mem) | ||
2088 | return; | ||
2089 | |||
2090 | lock_page_cgroup(pc); | ||
2091 | if (unlikely(PageCgroupUsed(pc))) { | ||
2092 | unlock_page_cgroup(pc); | ||
2093 | mem_cgroup_cancel_charge(mem, page_size); | ||
2094 | return; | ||
2095 | } | ||
2096 | /* | ||
2097 | * we don't need page_cgroup_lock about tail pages, becase they are not | ||
2098 | * accessed by any other context at this point. | ||
2099 | */ | ||
2095 | pc->mem_cgroup = mem; | 2100 | pc->mem_cgroup = mem; |
2096 | /* | 2101 | /* |
2097 | * We access a page_cgroup asynchronously without lock_page_cgroup(). | 2102 | * We access a page_cgroup asynchronously without lock_page_cgroup(). |
@@ -2115,35 +2120,7 @@ static void ____mem_cgroup_commit_charge(struct mem_cgroup *mem, | |||
2115 | break; | 2120 | break; |
2116 | } | 2121 | } |
2117 | 2122 | ||
2118 | mem_cgroup_charge_statistics(mem, pc, true); | 2123 | mem_cgroup_charge_statistics(mem, PageCgroupCache(pc), nr_pages); |
2119 | } | ||
2120 | |||
2121 | static void __mem_cgroup_commit_charge(struct mem_cgroup *mem, | ||
2122 | struct page_cgroup *pc, | ||
2123 | enum charge_type ctype, | ||
2124 | int page_size) | ||
2125 | { | ||
2126 | int i; | ||
2127 | int count = page_size >> PAGE_SHIFT; | ||
2128 | |||
2129 | /* try_charge() can return NULL to *memcg, taking care of it. */ | ||
2130 | if (!mem) | ||
2131 | return; | ||
2132 | |||
2133 | lock_page_cgroup(pc); | ||
2134 | if (unlikely(PageCgroupUsed(pc))) { | ||
2135 | unlock_page_cgroup(pc); | ||
2136 | mem_cgroup_cancel_charge(mem, page_size); | ||
2137 | return; | ||
2138 | } | ||
2139 | |||
2140 | /* | ||
2141 | * we don't need page_cgroup_lock about tail pages, becase they are not | ||
2142 | * accessed by any other context at this point. | ||
2143 | */ | ||
2144 | for (i = 0; i < count; i++) | ||
2145 | ____mem_cgroup_commit_charge(mem, pc + i, ctype); | ||
2146 | |||
2147 | unlock_page_cgroup(pc); | 2124 | unlock_page_cgroup(pc); |
2148 | /* | 2125 | /* |
2149 | * "charge_statistics" updated event counter. Then, check it. | 2126 | * "charge_statistics" updated event counter. Then, check it. |
@@ -2153,6 +2130,46 @@ static void __mem_cgroup_commit_charge(struct mem_cgroup *mem, | |||
2153 | memcg_check_events(mem, pc->page); | 2130 | memcg_check_events(mem, pc->page); |
2154 | } | 2131 | } |
2155 | 2132 | ||
2133 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
2134 | |||
2135 | #define PCGF_NOCOPY_AT_SPLIT ((1 << PCG_LOCK) | (1 << PCG_MOVE_LOCK) |\ | ||
2136 | (1 << PCG_ACCT_LRU) | (1 << PCG_MIGRATION)) | ||
2137 | /* | ||
2138 | * Because tail pages are not marked as "used", set it. We're under | ||
2139 | * zone->lru_lock, 'splitting on pmd' and compund_lock. | ||
2140 | */ | ||
2141 | void mem_cgroup_split_huge_fixup(struct page *head, struct page *tail) | ||
2142 | { | ||
2143 | struct page_cgroup *head_pc = lookup_page_cgroup(head); | ||
2144 | struct page_cgroup *tail_pc = lookup_page_cgroup(tail); | ||
2145 | unsigned long flags; | ||
2146 | |||
2147 | /* | ||
2148 | * We have no races with charge/uncharge but will have races with | ||
2149 | * page state accounting. | ||
2150 | */ | ||
2151 | move_lock_page_cgroup(head_pc, &flags); | ||
2152 | |||
2153 | tail_pc->mem_cgroup = head_pc->mem_cgroup; | ||
2154 | smp_wmb(); /* see __commit_charge() */ | ||
2155 | if (PageCgroupAcctLRU(head_pc)) { | ||
2156 | enum lru_list lru; | ||
2157 | struct mem_cgroup_per_zone *mz; | ||
2158 | |||
2159 | /* | ||
2160 | * LRU flags cannot be copied because we need to add tail | ||
2161 | *.page to LRU by generic call and our hook will be called. | ||
2162 | * We hold lru_lock, then, reduce counter directly. | ||
2163 | */ | ||
2164 | lru = page_lru(head); | ||
2165 | mz = page_cgroup_zoneinfo(head_pc); | ||
2166 | MEM_CGROUP_ZSTAT(mz, lru) -= 1; | ||
2167 | } | ||
2168 | tail_pc->flags = head_pc->flags & ~PCGF_NOCOPY_AT_SPLIT; | ||
2169 | move_unlock_page_cgroup(head_pc, &flags); | ||
2170 | } | ||
2171 | #endif | ||
2172 | |||
2156 | /** | 2173 | /** |
2157 | * __mem_cgroup_move_account - move account of the page | 2174 | * __mem_cgroup_move_account - move account of the page |
2158 | * @pc: page_cgroup of the page. | 2175 | * @pc: page_cgroup of the page. |
@@ -2171,8 +2188,11 @@ static void __mem_cgroup_commit_charge(struct mem_cgroup *mem, | |||
2171 | */ | 2188 | */ |
2172 | 2189 | ||
2173 | static void __mem_cgroup_move_account(struct page_cgroup *pc, | 2190 | static void __mem_cgroup_move_account(struct page_cgroup *pc, |
2174 | struct mem_cgroup *from, struct mem_cgroup *to, bool uncharge) | 2191 | struct mem_cgroup *from, struct mem_cgroup *to, bool uncharge, |
2192 | int charge_size) | ||
2175 | { | 2193 | { |
2194 | int nr_pages = charge_size >> PAGE_SHIFT; | ||
2195 | |||
2176 | VM_BUG_ON(from == to); | 2196 | VM_BUG_ON(from == to); |
2177 | VM_BUG_ON(PageLRU(pc->page)); | 2197 | VM_BUG_ON(PageLRU(pc->page)); |
2178 | VM_BUG_ON(!page_is_cgroup_locked(pc)); | 2198 | VM_BUG_ON(!page_is_cgroup_locked(pc)); |
@@ -2186,14 +2206,14 @@ static void __mem_cgroup_move_account(struct page_cgroup *pc, | |||
2186 | __this_cpu_inc(to->stat->count[MEM_CGROUP_STAT_FILE_MAPPED]); | 2206 | __this_cpu_inc(to->stat->count[MEM_CGROUP_STAT_FILE_MAPPED]); |
2187 | preempt_enable(); | 2207 | preempt_enable(); |
2188 | } | 2208 | } |
2189 | mem_cgroup_charge_statistics(from, pc, false); | 2209 | mem_cgroup_charge_statistics(from, PageCgroupCache(pc), -nr_pages); |
2190 | if (uncharge) | 2210 | if (uncharge) |
2191 | /* This is not "cancel", but cancel_charge does all we need. */ | 2211 | /* This is not "cancel", but cancel_charge does all we need. */ |
2192 | mem_cgroup_cancel_charge(from, PAGE_SIZE); | 2212 | mem_cgroup_cancel_charge(from, charge_size); |
2193 | 2213 | ||
2194 | /* caller should have done css_get */ | 2214 | /* caller should have done css_get */ |
2195 | pc->mem_cgroup = to; | 2215 | pc->mem_cgroup = to; |
2196 | mem_cgroup_charge_statistics(to, pc, true); | 2216 | mem_cgroup_charge_statistics(to, PageCgroupCache(pc), nr_pages); |
2197 | /* | 2217 | /* |
2198 | * We charges against "to" which may not have any tasks. Then, "to" | 2218 | * We charges against "to" which may not have any tasks. Then, "to" |
2199 | * can be under rmdir(). But in current implementation, caller of | 2219 | * can be under rmdir(). But in current implementation, caller of |
@@ -2208,15 +2228,19 @@ static void __mem_cgroup_move_account(struct page_cgroup *pc, | |||
2208 | * __mem_cgroup_move_account() | 2228 | * __mem_cgroup_move_account() |
2209 | */ | 2229 | */ |
2210 | static int mem_cgroup_move_account(struct page_cgroup *pc, | 2230 | static int mem_cgroup_move_account(struct page_cgroup *pc, |
2211 | struct mem_cgroup *from, struct mem_cgroup *to, bool uncharge) | 2231 | struct mem_cgroup *from, struct mem_cgroup *to, |
2232 | bool uncharge, int charge_size) | ||
2212 | { | 2233 | { |
2213 | int ret = -EINVAL; | 2234 | int ret = -EINVAL; |
2214 | unsigned long flags; | 2235 | unsigned long flags; |
2215 | 2236 | ||
2237 | if ((charge_size > PAGE_SIZE) && !PageTransHuge(pc->page)) | ||
2238 | return -EBUSY; | ||
2239 | |||
2216 | lock_page_cgroup(pc); | 2240 | lock_page_cgroup(pc); |
2217 | if (PageCgroupUsed(pc) && pc->mem_cgroup == from) { | 2241 | if (PageCgroupUsed(pc) && pc->mem_cgroup == from) { |
2218 | move_lock_page_cgroup(pc, &flags); | 2242 | move_lock_page_cgroup(pc, &flags); |
2219 | __mem_cgroup_move_account(pc, from, to, uncharge); | 2243 | __mem_cgroup_move_account(pc, from, to, uncharge, charge_size); |
2220 | move_unlock_page_cgroup(pc, &flags); | 2244 | move_unlock_page_cgroup(pc, &flags); |
2221 | ret = 0; | 2245 | ret = 0; |
2222 | } | 2246 | } |
@@ -2241,6 +2265,8 @@ static int mem_cgroup_move_parent(struct page_cgroup *pc, | |||
2241 | struct cgroup *cg = child->css.cgroup; | 2265 | struct cgroup *cg = child->css.cgroup; |
2242 | struct cgroup *pcg = cg->parent; | 2266 | struct cgroup *pcg = cg->parent; |
2243 | struct mem_cgroup *parent; | 2267 | struct mem_cgroup *parent; |
2268 | int charge = PAGE_SIZE; | ||
2269 | unsigned long flags; | ||
2244 | int ret; | 2270 | int ret; |
2245 | 2271 | ||
2246 | /* Is ROOT ? */ | 2272 | /* Is ROOT ? */ |
@@ -2252,17 +2278,23 @@ static int mem_cgroup_move_parent(struct page_cgroup *pc, | |||
2252 | goto out; | 2278 | goto out; |
2253 | if (isolate_lru_page(page)) | 2279 | if (isolate_lru_page(page)) |
2254 | goto put; | 2280 | goto put; |
2281 | /* The page is isolated from LRU and we have no race with splitting */ | ||
2282 | charge = PAGE_SIZE << compound_order(page); | ||
2255 | 2283 | ||
2256 | parent = mem_cgroup_from_cont(pcg); | 2284 | parent = mem_cgroup_from_cont(pcg); |
2257 | ret = __mem_cgroup_try_charge(NULL, gfp_mask, &parent, false, | 2285 | ret = __mem_cgroup_try_charge(NULL, gfp_mask, &parent, false, charge); |
2258 | PAGE_SIZE); | ||
2259 | if (ret || !parent) | 2286 | if (ret || !parent) |
2260 | goto put_back; | 2287 | goto put_back; |
2261 | 2288 | ||
2262 | ret = mem_cgroup_move_account(pc, child, parent, true); | 2289 | if (charge > PAGE_SIZE) |
2290 | flags = compound_lock_irqsave(page); | ||
2291 | |||
2292 | ret = mem_cgroup_move_account(pc, child, parent, true, charge); | ||
2263 | if (ret) | 2293 | if (ret) |
2264 | mem_cgroup_cancel_charge(parent, PAGE_SIZE); | 2294 | mem_cgroup_cancel_charge(parent, charge); |
2265 | put_back: | 2295 | put_back: |
2296 | if (charge > PAGE_SIZE) | ||
2297 | compound_unlock_irqrestore(page, flags); | ||
2266 | putback_lru_page(page); | 2298 | putback_lru_page(page); |
2267 | put: | 2299 | put: |
2268 | put_page(page); | 2300 | put_page(page); |
@@ -2546,7 +2578,6 @@ direct_uncharge: | |||
2546 | static struct mem_cgroup * | 2578 | static struct mem_cgroup * |
2547 | __mem_cgroup_uncharge_common(struct page *page, enum charge_type ctype) | 2579 | __mem_cgroup_uncharge_common(struct page *page, enum charge_type ctype) |
2548 | { | 2580 | { |
2549 | int i; | ||
2550 | int count; | 2581 | int count; |
2551 | struct page_cgroup *pc; | 2582 | struct page_cgroup *pc; |
2552 | struct mem_cgroup *mem = NULL; | 2583 | struct mem_cgroup *mem = NULL; |
@@ -2596,8 +2627,7 @@ __mem_cgroup_uncharge_common(struct page *page, enum charge_type ctype) | |||
2596 | break; | 2627 | break; |
2597 | } | 2628 | } |
2598 | 2629 | ||
2599 | for (i = 0; i < count; i++) | 2630 | mem_cgroup_charge_statistics(mem, PageCgroupCache(pc), -count); |
2600 | mem_cgroup_charge_statistics(mem, pc + i, false); | ||
2601 | 2631 | ||
2602 | ClearPageCgroupUsed(pc); | 2632 | ClearPageCgroupUsed(pc); |
2603 | /* | 2633 | /* |
@@ -4844,7 +4874,7 @@ retry: | |||
4844 | goto put; | 4874 | goto put; |
4845 | pc = lookup_page_cgroup(page); | 4875 | pc = lookup_page_cgroup(page); |
4846 | if (!mem_cgroup_move_account(pc, | 4876 | if (!mem_cgroup_move_account(pc, |
4847 | mc.from, mc.to, false)) { | 4877 | mc.from, mc.to, false, PAGE_SIZE)) { |
4848 | mc.precharge--; | 4878 | mc.precharge--; |
4849 | /* we uncharge from mc.from later. */ | 4879 | /* we uncharge from mc.from later. */ |
4850 | mc.moved_charge++; | 4880 | mc.moved_charge++; |
diff --git a/mm/truncate.c b/mm/truncate.c index 3c2d5ddfa0d4..49feb46e77b8 100644 --- a/mm/truncate.c +++ b/mm/truncate.c | |||
@@ -549,13 +549,12 @@ EXPORT_SYMBOL(truncate_pagecache); | |||
549 | * @inode: inode | 549 | * @inode: inode |
550 | * @newsize: new file size | 550 | * @newsize: new file size |
551 | * | 551 | * |
552 | * truncate_setsize updastes i_size update and performs pagecache | 552 | * truncate_setsize updates i_size and performs pagecache truncation (if |
553 | * truncation (if necessary) for a file size updates. It will be | 553 | * necessary) to @newsize. It will be typically be called from the filesystem's |
554 | * typically be called from the filesystem's setattr function when | 554 | * setattr function when ATTR_SIZE is passed in. |
555 | * ATTR_SIZE is passed in. | ||
556 | * | 555 | * |
557 | * Must be called with inode_mutex held and after all filesystem | 556 | * Must be called with inode_mutex held and before all filesystem specific |
558 | * specific block truncation has been performed. | 557 | * block truncation has been performed. |
559 | */ | 558 | */ |
560 | void truncate_setsize(struct inode *inode, loff_t newsize) | 559 | void truncate_setsize(struct inode *inode, loff_t newsize) |
561 | { | 560 | { |
diff --git a/mm/vmscan.c b/mm/vmscan.c index 47a50962ce81..f5d90dedebba 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include <linux/memcontrol.h> | 41 | #include <linux/memcontrol.h> |
42 | #include <linux/delayacct.h> | 42 | #include <linux/delayacct.h> |
43 | #include <linux/sysctl.h> | 43 | #include <linux/sysctl.h> |
44 | #include <linux/compaction.h> | ||
45 | 44 | ||
46 | #include <asm/tlbflush.h> | 45 | #include <asm/tlbflush.h> |
47 | #include <asm/div64.h> | 46 | #include <asm/div64.h> |
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index d4d9926c2201..65106fb61b8f 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h | |||
@@ -151,9 +151,9 @@ int debug_log(struct bat_priv *bat_priv, char *fmt, ...); | |||
151 | } \ | 151 | } \ |
152 | while (0) | 152 | while (0) |
153 | #else /* !CONFIG_BATMAN_ADV_DEBUG */ | 153 | #else /* !CONFIG_BATMAN_ADV_DEBUG */ |
154 | static inline void bat_dbg(char type __attribute__((unused)), | 154 | static inline void bat_dbg(char type __always_unused, |
155 | struct bat_priv *bat_priv __attribute__((unused)), | 155 | struct bat_priv *bat_priv __always_unused, |
156 | char *fmt __attribute__((unused)), ...) | 156 | char *fmt __always_unused, ...) |
157 | { | 157 | { |
158 | } | 158 | } |
159 | #endif | 159 | #endif |
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h index b49fdf70a6d5..2284e8129cb2 100644 --- a/net/batman-adv/packet.h +++ b/net/batman-adv/packet.h | |||
@@ -63,7 +63,7 @@ struct batman_packet { | |||
63 | uint8_t num_hna; | 63 | uint8_t num_hna; |
64 | uint8_t gw_flags; /* flags related to gateway class */ | 64 | uint8_t gw_flags; /* flags related to gateway class */ |
65 | uint8_t align; | 65 | uint8_t align; |
66 | } __attribute__((packed)); | 66 | } __packed; |
67 | 67 | ||
68 | #define BAT_PACKET_LEN sizeof(struct batman_packet) | 68 | #define BAT_PACKET_LEN sizeof(struct batman_packet) |
69 | 69 | ||
@@ -76,7 +76,7 @@ struct icmp_packet { | |||
76 | uint8_t orig[6]; | 76 | uint8_t orig[6]; |
77 | uint16_t seqno; | 77 | uint16_t seqno; |
78 | uint8_t uid; | 78 | uint8_t uid; |
79 | } __attribute__((packed)); | 79 | } __packed; |
80 | 80 | ||
81 | #define BAT_RR_LEN 16 | 81 | #define BAT_RR_LEN 16 |
82 | 82 | ||
@@ -93,14 +93,14 @@ struct icmp_packet_rr { | |||
93 | uint8_t uid; | 93 | uint8_t uid; |
94 | uint8_t rr_cur; | 94 | uint8_t rr_cur; |
95 | uint8_t rr[BAT_RR_LEN][ETH_ALEN]; | 95 | uint8_t rr[BAT_RR_LEN][ETH_ALEN]; |
96 | } __attribute__((packed)); | 96 | } __packed; |
97 | 97 | ||
98 | struct unicast_packet { | 98 | struct unicast_packet { |
99 | uint8_t packet_type; | 99 | uint8_t packet_type; |
100 | uint8_t version; /* batman version field */ | 100 | uint8_t version; /* batman version field */ |
101 | uint8_t dest[6]; | 101 | uint8_t dest[6]; |
102 | uint8_t ttl; | 102 | uint8_t ttl; |
103 | } __attribute__((packed)); | 103 | } __packed; |
104 | 104 | ||
105 | struct unicast_frag_packet { | 105 | struct unicast_frag_packet { |
106 | uint8_t packet_type; | 106 | uint8_t packet_type; |
@@ -110,7 +110,7 @@ struct unicast_frag_packet { | |||
110 | uint8_t flags; | 110 | uint8_t flags; |
111 | uint8_t orig[6]; | 111 | uint8_t orig[6]; |
112 | uint16_t seqno; | 112 | uint16_t seqno; |
113 | } __attribute__((packed)); | 113 | } __packed; |
114 | 114 | ||
115 | struct bcast_packet { | 115 | struct bcast_packet { |
116 | uint8_t packet_type; | 116 | uint8_t packet_type; |
@@ -118,7 +118,7 @@ struct bcast_packet { | |||
118 | uint8_t orig[6]; | 118 | uint8_t orig[6]; |
119 | uint8_t ttl; | 119 | uint8_t ttl; |
120 | uint32_t seqno; | 120 | uint32_t seqno; |
121 | } __attribute__((packed)); | 121 | } __packed; |
122 | 122 | ||
123 | struct vis_packet { | 123 | struct vis_packet { |
124 | uint8_t packet_type; | 124 | uint8_t packet_type; |
@@ -131,6 +131,6 @@ struct vis_packet { | |||
131 | * neighbors */ | 131 | * neighbors */ |
132 | uint8_t target_orig[6]; /* who should receive this packet */ | 132 | uint8_t target_orig[6]; /* who should receive this packet */ |
133 | uint8_t sender_orig[6]; /* who sent or rebroadcasted this packet */ | 133 | uint8_t sender_orig[6]; /* who sent or rebroadcasted this packet */ |
134 | } __attribute__((packed)); | 134 | } __packed; |
135 | 135 | ||
136 | #endif /* _NET_BATMAN_ADV_PACKET_H_ */ | 136 | #endif /* _NET_BATMAN_ADV_PACKET_H_ */ |
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h index 97cb23dd3e69..bf3f6f5a12c4 100644 --- a/net/batman-adv/types.h +++ b/net/batman-adv/types.h | |||
@@ -246,13 +246,13 @@ struct vis_info { | |||
246 | /* this packet might be part of the vis send queue. */ | 246 | /* this packet might be part of the vis send queue. */ |
247 | struct sk_buff *skb_packet; | 247 | struct sk_buff *skb_packet; |
248 | /* vis_info may follow here*/ | 248 | /* vis_info may follow here*/ |
249 | } __attribute__((packed)); | 249 | } __packed; |
250 | 250 | ||
251 | struct vis_info_entry { | 251 | struct vis_info_entry { |
252 | uint8_t src[ETH_ALEN]; | 252 | uint8_t src[ETH_ALEN]; |
253 | uint8_t dest[ETH_ALEN]; | 253 | uint8_t dest[ETH_ALEN]; |
254 | uint8_t quality; /* quality = 0 means HNA */ | 254 | uint8_t quality; /* quality = 0 means HNA */ |
255 | } __attribute__((packed)); | 255 | } __packed; |
256 | 256 | ||
257 | struct recvlist_node { | 257 | struct recvlist_node { |
258 | struct list_head list; | 258 | struct list_head list; |
diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c index dc2e28bed844..ee41fef04b21 100644 --- a/net/batman-adv/unicast.c +++ b/net/batman-adv/unicast.c | |||
@@ -229,10 +229,12 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv, | |||
229 | if (!bat_priv->primary_if) | 229 | if (!bat_priv->primary_if) |
230 | goto dropped; | 230 | goto dropped; |
231 | 231 | ||
232 | unicast_packet = (struct unicast_packet *) skb->data; | 232 | frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len); |
233 | if (!frag_skb) | ||
234 | goto dropped; | ||
233 | 235 | ||
236 | unicast_packet = (struct unicast_packet *) skb->data; | ||
234 | memcpy(&tmp_uc, unicast_packet, uc_hdr_len); | 237 | memcpy(&tmp_uc, unicast_packet, uc_hdr_len); |
235 | frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len); | ||
236 | skb_split(skb, frag_skb, data_len / 2); | 238 | skb_split(skb, frag_skb, data_len / 2); |
237 | 239 | ||
238 | if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 || | 240 | if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 || |
diff --git a/net/caif/cfcnfg.c b/net/caif/cfcnfg.c index 21ede141018a..c665de778b60 100644 --- a/net/caif/cfcnfg.c +++ b/net/caif/cfcnfg.c | |||
@@ -191,6 +191,7 @@ int cfcnfg_disconn_adapt_layer(struct cfcnfg *cnfg, struct cflayer *adap_layer) | |||
191 | struct cflayer *servl = NULL; | 191 | struct cflayer *servl = NULL; |
192 | struct cfcnfg_phyinfo *phyinfo = NULL; | 192 | struct cfcnfg_phyinfo *phyinfo = NULL; |
193 | u8 phyid = 0; | 193 | u8 phyid = 0; |
194 | |||
194 | caif_assert(adap_layer != NULL); | 195 | caif_assert(adap_layer != NULL); |
195 | channel_id = adap_layer->id; | 196 | channel_id = adap_layer->id; |
196 | if (adap_layer->dn == NULL || channel_id == 0) { | 197 | if (adap_layer->dn == NULL || channel_id == 0) { |
@@ -199,16 +200,16 @@ int cfcnfg_disconn_adapt_layer(struct cfcnfg *cnfg, struct cflayer *adap_layer) | |||
199 | goto end; | 200 | goto end; |
200 | } | 201 | } |
201 | servl = cfmuxl_remove_uplayer(cnfg->mux, channel_id); | 202 | servl = cfmuxl_remove_uplayer(cnfg->mux, channel_id); |
202 | if (servl == NULL) | ||
203 | goto end; | ||
204 | layer_set_up(servl, NULL); | ||
205 | ret = cfctrl_linkdown_req(cnfg->ctrl, channel_id, adap_layer); | ||
206 | if (servl == NULL) { | 203 | if (servl == NULL) { |
207 | pr_err("PROTOCOL ERROR - Error removing service_layer Channel_Id(%d)", | 204 | pr_err("PROTOCOL ERROR - Error removing service_layer Channel_Id(%d)", |
208 | channel_id); | 205 | channel_id); |
209 | ret = -EINVAL; | 206 | ret = -EINVAL; |
210 | goto end; | 207 | goto end; |
211 | } | 208 | } |
209 | layer_set_up(servl, NULL); | ||
210 | ret = cfctrl_linkdown_req(cnfg->ctrl, channel_id, adap_layer); | ||
211 | if (ret) | ||
212 | goto end; | ||
212 | caif_assert(channel_id == servl->id); | 213 | caif_assert(channel_id == servl->id); |
213 | if (adap_layer->dn != NULL) { | 214 | if (adap_layer->dn != NULL) { |
214 | phyid = cfsrvl_getphyid(adap_layer->dn); | 215 | phyid = cfsrvl_getphyid(adap_layer->dn); |
diff --git a/net/can/bcm.c b/net/can/bcm.c index 9d5e8accfab1..092dc88a7c64 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
@@ -1256,6 +1256,9 @@ static int bcm_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1256 | struct sockaddr_can *addr = | 1256 | struct sockaddr_can *addr = |
1257 | (struct sockaddr_can *)msg->msg_name; | 1257 | (struct sockaddr_can *)msg->msg_name; |
1258 | 1258 | ||
1259 | if (msg->msg_namelen < sizeof(*addr)) | ||
1260 | return -EINVAL; | ||
1261 | |||
1259 | if (addr->can_family != AF_CAN) | 1262 | if (addr->can_family != AF_CAN) |
1260 | return -EINVAL; | 1263 | return -EINVAL; |
1261 | 1264 | ||
diff --git a/net/can/raw.c b/net/can/raw.c index e88f610fdb7b..883e9d74fddf 100644 --- a/net/can/raw.c +++ b/net/can/raw.c | |||
@@ -649,6 +649,9 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
649 | struct sockaddr_can *addr = | 649 | struct sockaddr_can *addr = |
650 | (struct sockaddr_can *)msg->msg_name; | 650 | (struct sockaddr_can *)msg->msg_name; |
651 | 651 | ||
652 | if (msg->msg_namelen < sizeof(*addr)) | ||
653 | return -EINVAL; | ||
654 | |||
652 | if (addr->can_family != AF_CAN) | 655 | if (addr->can_family != AF_CAN) |
653 | return -EINVAL; | 656 | return -EINVAL; |
654 | 657 | ||
diff --git a/net/core/dev.c b/net/core/dev.c index 54277df0f735..7c6a46f80372 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2001,7 +2001,7 @@ static bool can_checksum_protocol(unsigned long features, __be16 protocol) | |||
2001 | 2001 | ||
2002 | static int harmonize_features(struct sk_buff *skb, __be16 protocol, int features) | 2002 | static int harmonize_features(struct sk_buff *skb, __be16 protocol, int features) |
2003 | { | 2003 | { |
2004 | if (!can_checksum_protocol(protocol, features)) { | 2004 | if (!can_checksum_protocol(features, protocol)) { |
2005 | features &= ~NETIF_F_ALL_CSUM; | 2005 | features &= ~NETIF_F_ALL_CSUM; |
2006 | features &= ~NETIF_F_SG; | 2006 | features &= ~NETIF_F_SG; |
2007 | } else if (illegal_highdma(skb->dev, skb)) { | 2007 | } else if (illegal_highdma(skb->dev, skb)) { |
@@ -2023,13 +2023,13 @@ int netif_skb_features(struct sk_buff *skb) | |||
2023 | return harmonize_features(skb, protocol, features); | 2023 | return harmonize_features(skb, protocol, features); |
2024 | } | 2024 | } |
2025 | 2025 | ||
2026 | features &= skb->dev->vlan_features; | 2026 | features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_TX); |
2027 | 2027 | ||
2028 | if (protocol != htons(ETH_P_8021Q)) { | 2028 | if (protocol != htons(ETH_P_8021Q)) { |
2029 | return harmonize_features(skb, protocol, features); | 2029 | return harmonize_features(skb, protocol, features); |
2030 | } else { | 2030 | } else { |
2031 | features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | | 2031 | features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | |
2032 | NETIF_F_GEN_CSUM; | 2032 | NETIF_F_GEN_CSUM | NETIF_F_HW_VLAN_TX; |
2033 | return harmonize_features(skb, protocol, features); | 2033 | return harmonize_features(skb, protocol, features); |
2034 | } | 2034 | } |
2035 | } | 2035 | } |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index a5f7535aab5b..750db57f3bb3 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -1820,7 +1820,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
1820 | if (kind != 2 && security_netlink_recv(skb, CAP_NET_ADMIN)) | 1820 | if (kind != 2 && security_netlink_recv(skb, CAP_NET_ADMIN)) |
1821 | return -EPERM; | 1821 | return -EPERM; |
1822 | 1822 | ||
1823 | if (kind == 2 && (nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) { | 1823 | if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) { |
1824 | struct sock *rtnl; | 1824 | struct sock *rtnl; |
1825 | rtnl_dumpit_func dumpit; | 1825 | rtnl_dumpit_func dumpit; |
1826 | 1826 | ||
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index 2746c1fa6417..2ada17129fce 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c | |||
@@ -858,7 +858,7 @@ static int inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
858 | nlmsg_len(nlh) < hdrlen) | 858 | nlmsg_len(nlh) < hdrlen) |
859 | return -EINVAL; | 859 | return -EINVAL; |
860 | 860 | ||
861 | if ((nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) { | 861 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
862 | if (nlmsg_attrlen(nlh, hdrlen)) { | 862 | if (nlmsg_attrlen(nlh, hdrlen)) { |
863 | struct nlattr *attr; | 863 | struct nlattr *attr; |
864 | 864 | ||
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 5b189c97c2fc..24a1cf110d80 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -420,9 +420,6 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev) | |||
420 | dev->type == ARPHRD_TUNNEL6 || | 420 | dev->type == ARPHRD_TUNNEL6 || |
421 | dev->type == ARPHRD_SIT || | 421 | dev->type == ARPHRD_SIT || |
422 | dev->type == ARPHRD_NONE) { | 422 | dev->type == ARPHRD_NONE) { |
423 | printk(KERN_INFO | ||
424 | "%s: Disabled Privacy Extensions\n", | ||
425 | dev->name); | ||
426 | ndev->cnf.use_tempaddr = -1; | 423 | ndev->cnf.use_tempaddr = -1; |
427 | } else { | 424 | } else { |
428 | in6_dev_hold(ndev); | 425 | in6_dev_hold(ndev); |
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig index 9109262abd24..c766056d0488 100644 --- a/net/mac80211/Kconfig +++ b/net/mac80211/Kconfig | |||
@@ -20,7 +20,7 @@ config MAC80211_HAS_RC | |||
20 | def_bool n | 20 | def_bool n |
21 | 21 | ||
22 | config MAC80211_RC_PID | 22 | config MAC80211_RC_PID |
23 | bool "PID controller based rate control algorithm" if EMBEDDED | 23 | bool "PID controller based rate control algorithm" if EXPERT |
24 | select MAC80211_HAS_RC | 24 | select MAC80211_HAS_RC |
25 | ---help--- | 25 | ---help--- |
26 | This option enables a TX rate control algorithm for | 26 | This option enables a TX rate control algorithm for |
@@ -28,14 +28,14 @@ config MAC80211_RC_PID | |||
28 | rate. | 28 | rate. |
29 | 29 | ||
30 | config MAC80211_RC_MINSTREL | 30 | config MAC80211_RC_MINSTREL |
31 | bool "Minstrel" if EMBEDDED | 31 | bool "Minstrel" if EXPERT |
32 | select MAC80211_HAS_RC | 32 | select MAC80211_HAS_RC |
33 | default y | 33 | default y |
34 | ---help--- | 34 | ---help--- |
35 | This option enables the 'minstrel' TX rate control algorithm | 35 | This option enables the 'minstrel' TX rate control algorithm |
36 | 36 | ||
37 | config MAC80211_RC_MINSTREL_HT | 37 | config MAC80211_RC_MINSTREL_HT |
38 | bool "Minstrel 802.11n support" if EMBEDDED | 38 | bool "Minstrel 802.11n support" if EXPERT |
39 | depends on MAC80211_RC_MINSTREL | 39 | depends on MAC80211_RC_MINSTREL |
40 | default y | 40 | default y |
41 | ---help--- | 41 | ---help--- |
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c index f138b195d657..227ca82eef72 100644 --- a/net/mac80211/agg-rx.c +++ b/net/mac80211/agg-rx.c | |||
@@ -185,8 +185,6 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
185 | struct ieee80211_mgmt *mgmt, | 185 | struct ieee80211_mgmt *mgmt, |
186 | size_t len) | 186 | size_t len) |
187 | { | 187 | { |
188 | struct ieee80211_hw *hw = &local->hw; | ||
189 | struct ieee80211_conf *conf = &hw->conf; | ||
190 | struct tid_ampdu_rx *tid_agg_rx; | 188 | struct tid_ampdu_rx *tid_agg_rx; |
191 | u16 capab, tid, timeout, ba_policy, buf_size, start_seq_num, status; | 189 | u16 capab, tid, timeout, ba_policy, buf_size, start_seq_num, status; |
192 | u8 dialog_token; | 190 | u8 dialog_token; |
@@ -231,13 +229,8 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
231 | goto end_no_lock; | 229 | goto end_no_lock; |
232 | } | 230 | } |
233 | /* determine default buffer size */ | 231 | /* determine default buffer size */ |
234 | if (buf_size == 0) { | 232 | if (buf_size == 0) |
235 | struct ieee80211_supported_band *sband; | 233 | buf_size = IEEE80211_MAX_AMPDU_BUF; |
236 | |||
237 | sband = local->hw.wiphy->bands[conf->channel->band]; | ||
238 | buf_size = IEEE80211_MIN_AMPDU_BUF; | ||
239 | buf_size = buf_size << sband->ht_cap.ampdu_factor; | ||
240 | } | ||
241 | 234 | ||
242 | 235 | ||
243 | /* examine state machine */ | 236 | /* examine state machine */ |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 485d36bc9a46..a46ff06d7cb8 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -39,6 +39,8 @@ module_param(ieee80211_disable_40mhz_24ghz, bool, 0644); | |||
39 | MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz, | 39 | MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz, |
40 | "Disable 40MHz support in the 2.4GHz band"); | 40 | "Disable 40MHz support in the 2.4GHz band"); |
41 | 41 | ||
42 | static struct lock_class_key ieee80211_rx_skb_queue_class; | ||
43 | |||
42 | void ieee80211_configure_filter(struct ieee80211_local *local) | 44 | void ieee80211_configure_filter(struct ieee80211_local *local) |
43 | { | 45 | { |
44 | u64 mc; | 46 | u64 mc; |
@@ -569,7 +571,15 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, | |||
569 | spin_lock_init(&local->filter_lock); | 571 | spin_lock_init(&local->filter_lock); |
570 | spin_lock_init(&local->queue_stop_reason_lock); | 572 | spin_lock_init(&local->queue_stop_reason_lock); |
571 | 573 | ||
572 | skb_queue_head_init(&local->rx_skb_queue); | 574 | /* |
575 | * The rx_skb_queue is only accessed from tasklets, | ||
576 | * but other SKB queues are used from within IRQ | ||
577 | * context. Therefore, this one needs a different | ||
578 | * locking class so our direct, non-irq-safe use of | ||
579 | * the queue's lock doesn't throw lockdep warnings. | ||
580 | */ | ||
581 | skb_queue_head_init_class(&local->rx_skb_queue, | ||
582 | &ieee80211_rx_skb_queue_class); | ||
573 | 583 | ||
574 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); | 584 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); |
575 | 585 | ||
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index 2b7eef37875c..93297aaceb2b 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c | |||
@@ -924,7 +924,7 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb, | |||
924 | u16 zone; | 924 | u16 zone; |
925 | int err; | 925 | int err; |
926 | 926 | ||
927 | if ((nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) | 927 | if (nlh->nlmsg_flags & NLM_F_DUMP) |
928 | return netlink_dump_start(ctnl, skb, nlh, ctnetlink_dump_table, | 928 | return netlink_dump_start(ctnl, skb, nlh, ctnetlink_dump_table, |
929 | ctnetlink_done); | 929 | ctnetlink_done); |
930 | 930 | ||
@@ -1787,7 +1787,7 @@ ctnetlink_get_expect(struct sock *ctnl, struct sk_buff *skb, | |||
1787 | u16 zone; | 1787 | u16 zone; |
1788 | int err; | 1788 | int err; |
1789 | 1789 | ||
1790 | if ((nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) { | 1790 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
1791 | return netlink_dump_start(ctnl, skb, nlh, | 1791 | return netlink_dump_start(ctnl, skb, nlh, |
1792 | ctnetlink_exp_dump_table, | 1792 | ctnetlink_exp_dump_table, |
1793 | ctnetlink_exp_done); | 1793 | ctnetlink_exp_done); |
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index f83cb370292b..1781d99145e2 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -519,7 +519,7 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
519 | security_netlink_recv(skb, CAP_NET_ADMIN)) | 519 | security_netlink_recv(skb, CAP_NET_ADMIN)) |
520 | return -EPERM; | 520 | return -EPERM; |
521 | 521 | ||
522 | if ((nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) { | 522 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
523 | if (ops->dumpit == NULL) | 523 | if (ops->dumpit == NULL) |
524 | return -EOPNOTSUPP; | 524 | return -EOPNOTSUPP; |
525 | 525 | ||
diff --git a/net/rfkill/Kconfig b/net/rfkill/Kconfig index eaf765876458..7fce6dfd2180 100644 --- a/net/rfkill/Kconfig +++ b/net/rfkill/Kconfig | |||
@@ -18,7 +18,7 @@ config RFKILL_LEDS | |||
18 | default y | 18 | default y |
19 | 19 | ||
20 | config RFKILL_INPUT | 20 | config RFKILL_INPUT |
21 | bool "RF switch input support" if EMBEDDED | 21 | bool "RF switch input support" if EXPERT |
22 | depends on RFKILL | 22 | depends on RFKILL |
23 | depends on INPUT = y || RFKILL = INPUT | 23 | depends on INPUT = y || RFKILL = INPUT |
24 | default y if !EMBEDDED | 24 | default y if !EXPERT |
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index a09b0dd25f50..8e02550ff3e8 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -3428,7 +3428,7 @@ SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname, | |||
3428 | retval = sctp_setsockopt_peer_addr_params(sk, optval, optlen); | 3428 | retval = sctp_setsockopt_peer_addr_params(sk, optval, optlen); |
3429 | break; | 3429 | break; |
3430 | 3430 | ||
3431 | case SCTP_DELAYED_ACK: | 3431 | case SCTP_DELAYED_SACK: |
3432 | retval = sctp_setsockopt_delayed_ack(sk, optval, optlen); | 3432 | retval = sctp_setsockopt_delayed_ack(sk, optval, optlen); |
3433 | break; | 3433 | break; |
3434 | case SCTP_PARTIAL_DELIVERY_POINT: | 3434 | case SCTP_PARTIAL_DELIVERY_POINT: |
@@ -5333,7 +5333,7 @@ SCTP_STATIC int sctp_getsockopt(struct sock *sk, int level, int optname, | |||
5333 | retval = sctp_getsockopt_peer_addr_params(sk, len, optval, | 5333 | retval = sctp_getsockopt_peer_addr_params(sk, len, optval, |
5334 | optlen); | 5334 | optlen); |
5335 | break; | 5335 | break; |
5336 | case SCTP_DELAYED_ACK: | 5336 | case SCTP_DELAYED_SACK: |
5337 | retval = sctp_getsockopt_delayed_ack(sk, len, optval, | 5337 | retval = sctp_getsockopt_delayed_ack(sk, len, optval, |
5338 | optlen); | 5338 | optlen); |
5339 | break; | 5339 | break; |
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig index d0ee29063e5d..1f1ef70f34f2 100644 --- a/net/wireless/Kconfig +++ b/net/wireless/Kconfig | |||
@@ -95,7 +95,7 @@ config CFG80211_DEBUGFS | |||
95 | If unsure, say N. | 95 | If unsure, say N. |
96 | 96 | ||
97 | config CFG80211_INTERNAL_REGDB | 97 | config CFG80211_INTERNAL_REGDB |
98 | bool "use statically compiled regulatory rules database" if EMBEDDED | 98 | bool "use statically compiled regulatory rules database" if EXPERT |
99 | default n | 99 | default n |
100 | depends on CFG80211 | 100 | depends on CFG80211 |
101 | ---help--- | 101 | ---help--- |
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index d5e1e0b08890..61291965c5f6 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
@@ -2189,7 +2189,7 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
2189 | 2189 | ||
2190 | if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) || | 2190 | if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) || |
2191 | type == (XFRM_MSG_GETPOLICY - XFRM_MSG_BASE)) && | 2191 | type == (XFRM_MSG_GETPOLICY - XFRM_MSG_BASE)) && |
2192 | (nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) { | 2192 | (nlh->nlmsg_flags & NLM_F_DUMP)) { |
2193 | if (link->dump == NULL) | 2193 | if (link->dump == NULL) |
2194 | return -EINVAL; | 2194 | return -EINVAL; |
2195 | 2195 | ||
diff --git a/security/keys/trusted_defined.c b/security/keys/trusted_defined.c index 975e9f29a52c..2836c6dc18a3 100644 --- a/security/keys/trusted_defined.c +++ b/security/keys/trusted_defined.c | |||
@@ -101,11 +101,13 @@ static int TSS_rawhmac(unsigned char *digest, const unsigned char *key, | |||
101 | if (dlen == 0) | 101 | if (dlen == 0) |
102 | break; | 102 | break; |
103 | data = va_arg(argp, unsigned char *); | 103 | data = va_arg(argp, unsigned char *); |
104 | if (data == NULL) | 104 | if (data == NULL) { |
105 | return -EINVAL; | 105 | ret = -EINVAL; |
106 | break; | ||
107 | } | ||
106 | ret = crypto_shash_update(&sdesc->shash, data, dlen); | 108 | ret = crypto_shash_update(&sdesc->shash, data, dlen); |
107 | if (ret < 0) | 109 | if (ret < 0) |
108 | goto out; | 110 | break; |
109 | } | 111 | } |
110 | va_end(argp); | 112 | va_end(argp); |
111 | if (!ret) | 113 | if (!ret) |
@@ -146,14 +148,17 @@ static int TSS_authhmac(unsigned char *digest, const unsigned char *key, | |||
146 | if (dlen == 0) | 148 | if (dlen == 0) |
147 | break; | 149 | break; |
148 | data = va_arg(argp, unsigned char *); | 150 | data = va_arg(argp, unsigned char *); |
149 | ret = crypto_shash_update(&sdesc->shash, data, dlen); | 151 | if (!data) { |
150 | if (ret < 0) { | 152 | ret = -EINVAL; |
151 | va_end(argp); | 153 | break; |
152 | goto out; | ||
153 | } | 154 | } |
155 | ret = crypto_shash_update(&sdesc->shash, data, dlen); | ||
156 | if (ret < 0) | ||
157 | break; | ||
154 | } | 158 | } |
155 | va_end(argp); | 159 | va_end(argp); |
156 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | 160 | if (!ret) |
161 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | ||
157 | if (!ret) | 162 | if (!ret) |
158 | ret = TSS_rawhmac(digest, key, keylen, SHA1_DIGEST_SIZE, | 163 | ret = TSS_rawhmac(digest, key, keylen, SHA1_DIGEST_SIZE, |
159 | paramdigest, TPM_NONCE_SIZE, h1, | 164 | paramdigest, TPM_NONCE_SIZE, h1, |
@@ -222,13 +227,12 @@ static int TSS_checkhmac1(unsigned char *buffer, | |||
222 | break; | 227 | break; |
223 | dpos = va_arg(argp, unsigned int); | 228 | dpos = va_arg(argp, unsigned int); |
224 | ret = crypto_shash_update(&sdesc->shash, buffer + dpos, dlen); | 229 | ret = crypto_shash_update(&sdesc->shash, buffer + dpos, dlen); |
225 | if (ret < 0) { | 230 | if (ret < 0) |
226 | va_end(argp); | 231 | break; |
227 | goto out; | ||
228 | } | ||
229 | } | 232 | } |
230 | va_end(argp); | 233 | va_end(argp); |
231 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | 234 | if (!ret) |
235 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | ||
232 | if (ret < 0) | 236 | if (ret < 0) |
233 | goto out; | 237 | goto out; |
234 | 238 | ||
@@ -316,13 +320,12 @@ static int TSS_checkhmac2(unsigned char *buffer, | |||
316 | break; | 320 | break; |
317 | dpos = va_arg(argp, unsigned int); | 321 | dpos = va_arg(argp, unsigned int); |
318 | ret = crypto_shash_update(&sdesc->shash, buffer + dpos, dlen); | 322 | ret = crypto_shash_update(&sdesc->shash, buffer + dpos, dlen); |
319 | if (ret < 0) { | 323 | if (ret < 0) |
320 | va_end(argp); | 324 | break; |
321 | goto out; | ||
322 | } | ||
323 | } | 325 | } |
324 | va_end(argp); | 326 | va_end(argp); |
325 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | 327 | if (!ret) |
328 | ret = crypto_shash_final(&sdesc->shash, paramdigest); | ||
326 | if (ret < 0) | 329 | if (ret < 0) |
327 | goto out; | 330 | goto out; |
328 | 331 | ||
@@ -511,7 +514,7 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, | |||
511 | /* get session for sealing key */ | 514 | /* get session for sealing key */ |
512 | ret = osap(tb, &sess, keyauth, keytype, keyhandle); | 515 | ret = osap(tb, &sess, keyauth, keytype, keyhandle); |
513 | if (ret < 0) | 516 | if (ret < 0) |
514 | return ret; | 517 | goto out; |
515 | dump_sess(&sess); | 518 | dump_sess(&sess); |
516 | 519 | ||
517 | /* calculate encrypted authorization value */ | 520 | /* calculate encrypted authorization value */ |
@@ -519,11 +522,11 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, | |||
519 | memcpy(td->xorwork + SHA1_DIGEST_SIZE, sess.enonce, SHA1_DIGEST_SIZE); | 522 | memcpy(td->xorwork + SHA1_DIGEST_SIZE, sess.enonce, SHA1_DIGEST_SIZE); |
520 | ret = TSS_sha1(td->xorwork, SHA1_DIGEST_SIZE * 2, td->xorhash); | 523 | ret = TSS_sha1(td->xorwork, SHA1_DIGEST_SIZE * 2, td->xorhash); |
521 | if (ret < 0) | 524 | if (ret < 0) |
522 | return ret; | 525 | goto out; |
523 | 526 | ||
524 | ret = tpm_get_random(tb, td->nonceodd, TPM_NONCE_SIZE); | 527 | ret = tpm_get_random(tb, td->nonceodd, TPM_NONCE_SIZE); |
525 | if (ret < 0) | 528 | if (ret < 0) |
526 | return ret; | 529 | goto out; |
527 | ordinal = htonl(TPM_ORD_SEAL); | 530 | ordinal = htonl(TPM_ORD_SEAL); |
528 | datsize = htonl(datalen); | 531 | datsize = htonl(datalen); |
529 | pcrsize = htonl(pcrinfosize); | 532 | pcrsize = htonl(pcrinfosize); |
@@ -552,7 +555,7 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, | |||
552 | &datsize, datalen, data, 0, 0); | 555 | &datsize, datalen, data, 0, 0); |
553 | } | 556 | } |
554 | if (ret < 0) | 557 | if (ret < 0) |
555 | return ret; | 558 | goto out; |
556 | 559 | ||
557 | /* build and send the TPM request packet */ | 560 | /* build and send the TPM request packet */ |
558 | INIT_BUF(tb); | 561 | INIT_BUF(tb); |
@@ -572,7 +575,7 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, | |||
572 | 575 | ||
573 | ret = trusted_tpm_send(TPM_ANY_NUM, tb->data, MAX_BUF_SIZE); | 576 | ret = trusted_tpm_send(TPM_ANY_NUM, tb->data, MAX_BUF_SIZE); |
574 | if (ret < 0) | 577 | if (ret < 0) |
575 | return ret; | 578 | goto out; |
576 | 579 | ||
577 | /* calculate the size of the returned Blob */ | 580 | /* calculate the size of the returned Blob */ |
578 | sealinfosize = LOAD32(tb->data, TPM_DATA_OFFSET + sizeof(uint32_t)); | 581 | sealinfosize = LOAD32(tb->data, TPM_DATA_OFFSET + sizeof(uint32_t)); |
@@ -591,6 +594,8 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, | |||
591 | memcpy(blob, tb->data + TPM_DATA_OFFSET, storedsize); | 594 | memcpy(blob, tb->data + TPM_DATA_OFFSET, storedsize); |
592 | *bloblen = storedsize; | 595 | *bloblen = storedsize; |
593 | } | 596 | } |
597 | out: | ||
598 | kfree(td); | ||
594 | return ret; | 599 | return ret; |
595 | } | 600 | } |
596 | 601 | ||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 269dbff70b92..be4df4c6fd56 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1721,7 +1721,9 @@ static void alc_apply_fixup(struct hda_codec *codec, int action) | |||
1721 | { | 1721 | { |
1722 | struct alc_spec *spec = codec->spec; | 1722 | struct alc_spec *spec = codec->spec; |
1723 | int id = spec->fixup_id; | 1723 | int id = spec->fixup_id; |
1724 | #ifdef CONFIG_SND_DEBUG_VERBOSE | ||
1724 | const char *modelname = spec->fixup_name; | 1725 | const char *modelname = spec->fixup_name; |
1726 | #endif | ||
1725 | int depth = 0; | 1727 | int depth = 0; |
1726 | 1728 | ||
1727 | if (!spec->fixup_list) | 1729 | if (!spec->fixup_list) |
@@ -10930,9 +10932,6 @@ static int alc_auto_add_mic_boost(struct hda_codec *codec) | |||
10930 | return 0; | 10932 | return 0; |
10931 | } | 10933 | } |
10932 | 10934 | ||
10933 | static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec, | ||
10934 | const struct auto_pin_cfg *cfg); | ||
10935 | |||
10936 | /* almost identical with ALC880 parser... */ | 10935 | /* almost identical with ALC880 parser... */ |
10937 | static int alc882_parse_auto_config(struct hda_codec *codec) | 10936 | static int alc882_parse_auto_config(struct hda_codec *codec) |
10938 | { | 10937 | { |
@@ -10950,10 +10949,7 @@ static int alc882_parse_auto_config(struct hda_codec *codec) | |||
10950 | err = alc880_auto_fill_dac_nids(spec, &spec->autocfg); | 10949 | err = alc880_auto_fill_dac_nids(spec, &spec->autocfg); |
10951 | if (err < 0) | 10950 | if (err < 0) |
10952 | return err; | 10951 | return err; |
10953 | if (codec->vendor_id == 0x10ec0887) | 10952 | err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg); |
10954 | err = alc861vd_auto_create_multi_out_ctls(spec, &spec->autocfg); | ||
10955 | else | ||
10956 | err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg); | ||
10957 | if (err < 0) | 10953 | if (err < 0) |
10958 | return err; | 10954 | return err; |
10959 | err = alc880_auto_create_extra_out(spec, spec->autocfg.hp_pins[0], | 10955 | err = alc880_auto_create_extra_out(spec, spec->autocfg.hp_pins[0], |
@@ -12635,6 +12631,8 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = { | |||
12635 | ALC262_HP_BPC), | 12631 | ALC262_HP_BPC), |
12636 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1300, "HP xw series", | 12632 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1300, "HP xw series", |
12637 | ALC262_HP_BPC), | 12633 | ALC262_HP_BPC), |
12634 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1500, "HP z series", | ||
12635 | ALC262_HP_BPC), | ||
12638 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1700, "HP xw series", | 12636 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1700, "HP xw series", |
12639 | ALC262_HP_BPC), | 12637 | ALC262_HP_BPC), |
12640 | SND_PCI_QUIRK(0x103c, 0x2800, "HP D7000", ALC262_HP_BPC_D7000_WL), | 12638 | SND_PCI_QUIRK(0x103c, 0x2800, "HP D7000", ALC262_HP_BPC_D7000_WL), |
@@ -14957,6 +14955,7 @@ static struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
14957 | SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), | 14955 | SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), |
14958 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), | 14956 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), |
14959 | SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), | 14957 | SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), |
14958 | SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), | ||
14960 | SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), | 14959 | SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), |
14961 | SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), | 14960 | SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), |
14962 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), | 14961 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), |
@@ -17134,7 +17133,7 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) | |||
17134 | #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) | 17133 | #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) |
17135 | 17134 | ||
17136 | /* add playback controls from the parsed DAC table */ | 17135 | /* add playback controls from the parsed DAC table */ |
17137 | /* Based on ALC880 version. But ALC861VD and ALC887 have separate, | 17136 | /* Based on ALC880 version. But ALC861VD has separate, |
17138 | * different NIDs for mute/unmute switch and volume control */ | 17137 | * different NIDs for mute/unmute switch and volume control */ |
17139 | static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec, | 17138 | static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec, |
17140 | const struct auto_pin_cfg *cfg) | 17139 | const struct auto_pin_cfg *cfg) |
@@ -19461,6 +19460,7 @@ enum { | |||
19461 | ALC662_FIXUP_ASPIRE, | 19460 | ALC662_FIXUP_ASPIRE, |
19462 | ALC662_FIXUP_IDEAPAD, | 19461 | ALC662_FIXUP_IDEAPAD, |
19463 | ALC272_FIXUP_MARIO, | 19462 | ALC272_FIXUP_MARIO, |
19463 | ALC662_FIXUP_CZC_P10T, | ||
19464 | }; | 19464 | }; |
19465 | 19465 | ||
19466 | static const struct alc_fixup alc662_fixups[] = { | 19466 | static const struct alc_fixup alc662_fixups[] = { |
@@ -19481,7 +19481,14 @@ static const struct alc_fixup alc662_fixups[] = { | |||
19481 | [ALC272_FIXUP_MARIO] = { | 19481 | [ALC272_FIXUP_MARIO] = { |
19482 | .type = ALC_FIXUP_FUNC, | 19482 | .type = ALC_FIXUP_FUNC, |
19483 | .v.func = alc272_fixup_mario, | 19483 | .v.func = alc272_fixup_mario, |
19484 | } | 19484 | }, |
19485 | [ALC662_FIXUP_CZC_P10T] = { | ||
19486 | .type = ALC_FIXUP_VERBS, | ||
19487 | .v.verbs = (const struct hda_verb[]) { | ||
19488 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 0}, | ||
19489 | {} | ||
19490 | } | ||
19491 | }, | ||
19485 | }; | 19492 | }; |
19486 | 19493 | ||
19487 | static struct snd_pci_quirk alc662_fixup_tbl[] = { | 19494 | static struct snd_pci_quirk alc662_fixup_tbl[] = { |
@@ -19489,6 +19496,7 @@ static struct snd_pci_quirk alc662_fixup_tbl[] = { | |||
19489 | SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), | 19496 | SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), |
19490 | SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), | 19497 | SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), |
19491 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), | 19498 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), |
19499 | SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), | ||
19492 | {} | 19500 | {} |
19493 | }; | 19501 | }; |
19494 | 19502 | ||
diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c index 7b62de089fee..20c6b079d0df 100644 --- a/sound/pci/ice1712/delta.c +++ b/sound/pci/ice1712/delta.c | |||
@@ -580,6 +580,7 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice) | |||
580 | { | 580 | { |
581 | int err; | 581 | int err; |
582 | struct snd_akm4xxx *ak; | 582 | struct snd_akm4xxx *ak; |
583 | unsigned char tmp; | ||
583 | 584 | ||
584 | if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DELTA1010 && | 585 | if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DELTA1010 && |
585 | ice->eeprom.gpiodir == 0x7b) | 586 | ice->eeprom.gpiodir == 0x7b) |
@@ -622,6 +623,12 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice) | |||
622 | break; | 623 | break; |
623 | } | 624 | } |
624 | 625 | ||
626 | /* initialize the SPI clock to high */ | ||
627 | tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA); | ||
628 | tmp |= ICE1712_DELTA_AP_CCLK; | ||
629 | snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp); | ||
630 | udelay(5); | ||
631 | |||
625 | /* initialize spdif */ | 632 | /* initialize spdif */ |
626 | switch (ice->eeprom.subvendor) { | 633 | switch (ice->eeprom.subvendor) { |
627 | case ICE1712_SUBDEVICE_AUDIOPHILE: | 634 | case ICE1712_SUBDEVICE_AUDIOPHILE: |
diff --git a/sound/soc/blackfin/Kconfig b/sound/soc/blackfin/Kconfig index 3abeeddc67d3..ae403597fd31 100644 --- a/sound/soc/blackfin/Kconfig +++ b/sound/soc/blackfin/Kconfig | |||
@@ -1,6 +1,7 @@ | |||
1 | config SND_BF5XX_I2S | 1 | config SND_BF5XX_I2S |
2 | tristate "SoC I2S Audio for the ADI BF5xx chip" | 2 | tristate "SoC I2S Audio for the ADI BF5xx chip" |
3 | depends on BLACKFIN | 3 | depends on BLACKFIN |
4 | select SND_BF5XX_SOC_SPORT | ||
4 | help | 5 | help |
5 | Say Y or M if you want to add support for codecs attached to | 6 | Say Y or M if you want to add support for codecs attached to |
6 | the Blackfin SPORT (synchronous serial ports) interface in I2S | 7 | the Blackfin SPORT (synchronous serial ports) interface in I2S |
@@ -35,6 +36,7 @@ config SND_BFIN_AD73311_SE | |||
35 | config SND_BF5XX_TDM | 36 | config SND_BF5XX_TDM |
36 | tristate "SoC I2S(TDM mode) Audio for the ADI BF5xx chip" | 37 | tristate "SoC I2S(TDM mode) Audio for the ADI BF5xx chip" |
37 | depends on (BLACKFIN && SND_SOC) | 38 | depends on (BLACKFIN && SND_SOC) |
39 | select SND_BF5XX_SOC_SPORT | ||
38 | help | 40 | help |
39 | Say Y or M if you want to add support for codecs attached to | 41 | Say Y or M if you want to add support for codecs attached to |
40 | the Blackfin SPORT (synchronous serial ports) interface in TDM | 42 | the Blackfin SPORT (synchronous serial ports) interface in TDM |
@@ -61,6 +63,10 @@ config SND_BF5XX_SOC_AD193X | |||
61 | config SND_BF5XX_AC97 | 63 | config SND_BF5XX_AC97 |
62 | tristate "SoC AC97 Audio for the ADI BF5xx chip" | 64 | tristate "SoC AC97 Audio for the ADI BF5xx chip" |
63 | depends on BLACKFIN | 65 | depends on BLACKFIN |
66 | select AC97_BUS | ||
67 | select SND_SOC_AC97_BUS | ||
68 | select SND_BF5XX_SOC_SPORT | ||
69 | select SND_BF5XX_SOC_AC97 | ||
64 | help | 70 | help |
65 | Say Y or M if you want to add support for codecs attached to | 71 | Say Y or M if you want to add support for codecs attached to |
66 | the Blackfin SPORT (synchronous serial ports) interface in slot 16 | 72 | the Blackfin SPORT (synchronous serial ports) interface in slot 16 |
@@ -122,17 +128,12 @@ config SND_BF5XX_SOC_SPORT | |||
122 | 128 | ||
123 | config SND_BF5XX_SOC_I2S | 129 | config SND_BF5XX_SOC_I2S |
124 | tristate | 130 | tristate |
125 | select SND_BF5XX_SOC_SPORT | ||
126 | 131 | ||
127 | config SND_BF5XX_SOC_TDM | 132 | config SND_BF5XX_SOC_TDM |
128 | tristate | 133 | tristate |
129 | select SND_BF5XX_SOC_SPORT | ||
130 | 134 | ||
131 | config SND_BF5XX_SOC_AC97 | 135 | config SND_BF5XX_SOC_AC97 |
132 | tristate | 136 | tristate |
133 | select AC97_BUS | ||
134 | select SND_SOC_AC97_BUS | ||
135 | select SND_BF5XX_SOC_SPORT | ||
136 | 137 | ||
137 | config SND_BF5XX_SPORT_NUM | 138 | config SND_BF5XX_SPORT_NUM |
138 | int "Set a SPORT for Sound chip" | 139 | int "Set a SPORT for Sound chip" |
diff --git a/sound/soc/blackfin/bf5xx-ac97.c b/sound/soc/blackfin/bf5xx-ac97.c index c5f856ec27ca..ffbac26b9bce 100644 --- a/sound/soc/blackfin/bf5xx-ac97.c +++ b/sound/soc/blackfin/bf5xx-ac97.c | |||
@@ -260,9 +260,9 @@ static int bf5xx_ac97_suspend(struct snd_soc_dai *dai) | |||
260 | pr_debug("%s : sport %d\n", __func__, dai->id); | 260 | pr_debug("%s : sport %d\n", __func__, dai->id); |
261 | if (!dai->active) | 261 | if (!dai->active) |
262 | return 0; | 262 | return 0; |
263 | if (dai->capture.active) | 263 | if (dai->capture_active) |
264 | sport_rx_stop(sport); | 264 | sport_rx_stop(sport); |
265 | if (dai->playback.active) | 265 | if (dai->playback_active) |
266 | sport_tx_stop(sport); | 266 | sport_tx_stop(sport); |
267 | return 0; | 267 | return 0; |
268 | } | 268 | } |
diff --git a/sound/soc/blackfin/bf5xx-tdm.c b/sound/soc/blackfin/bf5xx-tdm.c index 125123929f16..5515ac9e05c7 100644 --- a/sound/soc/blackfin/bf5xx-tdm.c +++ b/sound/soc/blackfin/bf5xx-tdm.c | |||
@@ -210,7 +210,7 @@ static int bf5xx_tdm_set_channel_map(struct snd_soc_dai *dai, | |||
210 | #ifdef CONFIG_PM | 210 | #ifdef CONFIG_PM |
211 | static int bf5xx_tdm_suspend(struct snd_soc_dai *dai) | 211 | static int bf5xx_tdm_suspend(struct snd_soc_dai *dai) |
212 | { | 212 | { |
213 | struct sport_device *sport = dai->private_data; | 213 | struct sport_device *sport = snd_soc_dai_get_drvdata(dai); |
214 | 214 | ||
215 | if (!dai->active) | 215 | if (!dai->active) |
216 | return 0; | 216 | return 0; |
@@ -235,13 +235,13 @@ static int bf5xx_tdm_resume(struct snd_soc_dai *dai) | |||
235 | ret = -EBUSY; | 235 | ret = -EBUSY; |
236 | } | 236 | } |
237 | 237 | ||
238 | ret = sport_config_rx(sport, IRFS, 0x1F, 0, 0); | 238 | ret = sport_config_rx(sport, 0, 0x1F, 0, 0); |
239 | if (ret) { | 239 | if (ret) { |
240 | pr_err("SPORT is busy!\n"); | 240 | pr_err("SPORT is busy!\n"); |
241 | ret = -EBUSY; | 241 | ret = -EBUSY; |
242 | } | 242 | } |
243 | 243 | ||
244 | ret = sport_config_tx(sport, ITFS, 0x1F, 0, 0); | 244 | ret = sport_config_tx(sport, 0, 0x1F, 0, 0); |
245 | if (ret) { | 245 | if (ret) { |
246 | pr_err("SPORT is busy!\n"); | 246 | pr_err("SPORT is busy!\n"); |
247 | ret = -EBUSY; | 247 | ret = -EBUSY; |
@@ -303,14 +303,14 @@ static int __devinit bfin_tdm_probe(struct platform_device *pdev) | |||
303 | goto sport_config_err; | 303 | goto sport_config_err; |
304 | } | 304 | } |
305 | 305 | ||
306 | ret = sport_config_rx(sport_handle, IRFS, 0x1F, 0, 0); | 306 | ret = sport_config_rx(sport_handle, 0, 0x1F, 0, 0); |
307 | if (ret) { | 307 | if (ret) { |
308 | pr_err("SPORT is busy!\n"); | 308 | pr_err("SPORT is busy!\n"); |
309 | ret = -EBUSY; | 309 | ret = -EBUSY; |
310 | goto sport_config_err; | 310 | goto sport_config_err; |
311 | } | 311 | } |
312 | 312 | ||
313 | ret = sport_config_tx(sport_handle, ITFS, 0x1F, 0, 0); | 313 | ret = sport_config_tx(sport_handle, 0, 0x1F, 0, 0); |
314 | if (ret) { | 314 | if (ret) { |
315 | pr_err("SPORT is busy!\n"); | 315 | pr_err("SPORT is busy!\n"); |
316 | ret = -EBUSY; | 316 | ret = -EBUSY; |
diff --git a/sound/soc/pxa/z2.c b/sound/soc/pxa/z2.c index 2d4f896d7fec..3ceaef68e01d 100644 --- a/sound/soc/pxa/z2.c +++ b/sound/soc/pxa/z2.c | |||
@@ -104,6 +104,7 @@ static struct snd_soc_jack_gpio hs_jack_gpios[] = { | |||
104 | .name = "hsdet-gpio", | 104 | .name = "hsdet-gpio", |
105 | .report = SND_JACK_HEADSET, | 105 | .report = SND_JACK_HEADSET, |
106 | .debounce_time = 200, | 106 | .debounce_time = 200, |
107 | .invert = 1, | ||
107 | }, | 108 | }, |
108 | }; | 109 | }; |
109 | 110 | ||
@@ -192,7 +193,7 @@ static struct snd_soc_dai_link z2_dai = { | |||
192 | .cpu_dai_name = "pxa2xx-i2s", | 193 | .cpu_dai_name = "pxa2xx-i2s", |
193 | .codec_dai_name = "wm8750-hifi", | 194 | .codec_dai_name = "wm8750-hifi", |
194 | .platform_name = "pxa-pcm-audio", | 195 | .platform_name = "pxa-pcm-audio", |
195 | .codec_name = "wm8750-codec.0-001a", | 196 | .codec_name = "wm8750-codec.0-001b", |
196 | .init = z2_wm8750_init, | 197 | .init = z2_wm8750_init, |
197 | .ops = &z2_ops, | 198 | .ops = &z2_ops, |
198 | }; | 199 | }; |
diff --git a/usr/Kconfig b/usr/Kconfig index 4780deac5974..65b845bd4e3e 100644 --- a/usr/Kconfig +++ b/usr/Kconfig | |||
@@ -46,7 +46,7 @@ config INITRAMFS_ROOT_GID | |||
46 | If you are not sure, leave it set to "0". | 46 | If you are not sure, leave it set to "0". |
47 | 47 | ||
48 | config RD_GZIP | 48 | config RD_GZIP |
49 | bool "Support initial ramdisks compressed using gzip" if EMBEDDED | 49 | bool "Support initial ramdisks compressed using gzip" if EXPERT |
50 | default y | 50 | default y |
51 | depends on BLK_DEV_INITRD | 51 | depends on BLK_DEV_INITRD |
52 | select DECOMPRESS_GZIP | 52 | select DECOMPRESS_GZIP |
@@ -55,8 +55,8 @@ config RD_GZIP | |||
55 | If unsure, say Y. | 55 | If unsure, say Y. |
56 | 56 | ||
57 | config RD_BZIP2 | 57 | config RD_BZIP2 |
58 | bool "Support initial ramdisks compressed using bzip2" if EMBEDDED | 58 | bool "Support initial ramdisks compressed using bzip2" if EXPERT |
59 | default !EMBEDDED | 59 | default !EXPERT |
60 | depends on BLK_DEV_INITRD | 60 | depends on BLK_DEV_INITRD |
61 | select DECOMPRESS_BZIP2 | 61 | select DECOMPRESS_BZIP2 |
62 | help | 62 | help |
@@ -64,8 +64,8 @@ config RD_BZIP2 | |||
64 | If unsure, say N. | 64 | If unsure, say N. |
65 | 65 | ||
66 | config RD_LZMA | 66 | config RD_LZMA |
67 | bool "Support initial ramdisks compressed using LZMA" if EMBEDDED | 67 | bool "Support initial ramdisks compressed using LZMA" if EXPERT |
68 | default !EMBEDDED | 68 | default !EXPERT |
69 | depends on BLK_DEV_INITRD | 69 | depends on BLK_DEV_INITRD |
70 | select DECOMPRESS_LZMA | 70 | select DECOMPRESS_LZMA |
71 | help | 71 | help |
@@ -73,8 +73,8 @@ config RD_LZMA | |||
73 | If unsure, say N. | 73 | If unsure, say N. |
74 | 74 | ||
75 | config RD_XZ | 75 | config RD_XZ |
76 | bool "Support initial ramdisks compressed using XZ" if EMBEDDED | 76 | bool "Support initial ramdisks compressed using XZ" if EXPERT |
77 | default !EMBEDDED | 77 | default !EXPERT |
78 | depends on BLK_DEV_INITRD | 78 | depends on BLK_DEV_INITRD |
79 | select DECOMPRESS_XZ | 79 | select DECOMPRESS_XZ |
80 | help | 80 | help |
@@ -82,8 +82,8 @@ config RD_XZ | |||
82 | If unsure, say N. | 82 | If unsure, say N. |
83 | 83 | ||
84 | config RD_LZO | 84 | config RD_LZO |
85 | bool "Support initial ramdisks compressed using LZO" if EMBEDDED | 85 | bool "Support initial ramdisks compressed using LZO" if EXPERT |
86 | default !EMBEDDED | 86 | default !EXPERT |
87 | depends on BLK_DEV_INITRD | 87 | depends on BLK_DEV_INITRD |
88 | select DECOMPRESS_LZO | 88 | select DECOMPRESS_LZO |
89 | help | 89 | help |