diff options
-rw-r--r-- | MAINTAINERS | 6 | ||||
-rw-r--r-- | arch/um/drivers/harddog_user.c | 4 | ||||
-rw-r--r-- | drivers/char/tty_ioctl.c | 2 | ||||
-rw-r--r-- | drivers/pcmcia/pxa2xx_lubbock.c | 2 | ||||
-rw-r--r-- | drivers/ps3/ps3-vuart.c | 1 | ||||
-rw-r--r-- | fs/dquot.c | 32 | ||||
-rw-r--r-- | fs/ecryptfs/crypto.c | 9 | ||||
-rw-r--r-- | fs/ecryptfs/main.c | 5 | ||||
-rw-r--r-- | fs/ecryptfs/messaging.c | 1 | ||||
-rw-r--r-- | include/linux/quicklist.h | 8 | ||||
-rw-r--r-- | lib/proportions.c | 37 | ||||
-rw-r--r-- | scripts/kconfig/conf.c | 3 |
12 files changed, 55 insertions, 55 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 3c7db6222f86..907094f07142 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -2029,7 +2029,7 @@ P: James Ketrenos | |||
2029 | M: jketreno@linux.intel.com | 2029 | M: jketreno@linux.intel.com |
2030 | L: linux-wireless@vger.kernel.org | 2030 | L: linux-wireless@vger.kernel.org |
2031 | L: ipw2100-devel@lists.sourceforge.net | 2031 | L: ipw2100-devel@lists.sourceforge.net |
2032 | L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel | 2032 | W: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel |
2033 | W: http://ipw2100.sourceforge.net | 2033 | W: http://ipw2100.sourceforge.net |
2034 | S: Supported | 2034 | S: Supported |
2035 | 2035 | ||
@@ -2040,7 +2040,7 @@ P: James Ketrenos | |||
2040 | M: jketreno@linux.intel.com | 2040 | M: jketreno@linux.intel.com |
2041 | L: linux-wireless@vger.kernel.org | 2041 | L: linux-wireless@vger.kernel.org |
2042 | L: ipw2100-devel@lists.sourceforge.net | 2042 | L: ipw2100-devel@lists.sourceforge.net |
2043 | L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel | 2043 | W: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel |
2044 | W: http://ipw2200.sourceforge.net | 2044 | W: http://ipw2200.sourceforge.net |
2045 | S: Supported | 2045 | S: Supported |
2046 | 2046 | ||
@@ -2597,7 +2597,7 @@ S: Maintained | |||
2597 | MSI LAPTOP SUPPORT | 2597 | MSI LAPTOP SUPPORT |
2598 | P: Lennart Poettering | 2598 | P: Lennart Poettering |
2599 | M: mzxreary@0pointer.de | 2599 | M: mzxreary@0pointer.de |
2600 | L: https://tango.0pointer.de/mailman/listinfo/s270-linux | 2600 | W: https://tango.0pointer.de/mailman/listinfo/s270-linux |
2601 | W: http://0pointer.de/lennart/tchibo.html | 2601 | W: http://0pointer.de/lennart/tchibo.html |
2602 | S: Maintained | 2602 | S: Maintained |
2603 | 2603 | ||
diff --git a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c index b56f8e0196a9..448ba59207a1 100644 --- a/arch/um/drivers/harddog_user.c +++ b/arch/um/drivers/harddog_user.c | |||
@@ -79,14 +79,14 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock) | |||
79 | n = read(in_fds[0], &c, sizeof(c)); | 79 | n = read(in_fds[0], &c, sizeof(c)); |
80 | if (n == 0) { | 80 | if (n == 0) { |
81 | printk("harddog_open - EOF on watchdog pipe\n"); | 81 | printk("harddog_open - EOF on watchdog pipe\n"); |
82 | helper_wait(pid); | 82 | helper_wait(pid, 1, NULL); |
83 | err = -EIO; | 83 | err = -EIO; |
84 | goto out_close_out; | 84 | goto out_close_out; |
85 | } | 85 | } |
86 | else if (n < 0) { | 86 | else if (n < 0) { |
87 | printk("harddog_open - read of watchdog pipe failed, " | 87 | printk("harddog_open - read of watchdog pipe failed, " |
88 | "err = %d\n", errno); | 88 | "err = %d\n", errno); |
89 | helper_wait(pid); | 89 | helper_wait(pid, 1, NULL); |
90 | err = n; | 90 | err = n; |
91 | goto out_close_out; | 91 | goto out_close_out; |
92 | } | 92 | } |
diff --git a/drivers/char/tty_ioctl.c b/drivers/char/tty_ioctl.c index 1bdd2bf4f37d..e02d59245a17 100644 --- a/drivers/char/tty_ioctl.c +++ b/drivers/char/tty_ioctl.c | |||
@@ -62,7 +62,7 @@ void tty_wait_until_sent(struct tty_struct * tty, long timeout) | |||
62 | if (!timeout) | 62 | if (!timeout) |
63 | timeout = MAX_SCHEDULE_TIMEOUT; | 63 | timeout = MAX_SCHEDULE_TIMEOUT; |
64 | if (wait_event_interruptible_timeout(tty->write_wait, | 64 | if (wait_event_interruptible_timeout(tty->write_wait, |
65 | !tty->driver->chars_in_buffer(tty), timeout)) | 65 | !tty->driver->chars_in_buffer(tty), timeout) < 0) |
66 | return; | 66 | return; |
67 | if (tty->driver->wait_until_sent) | 67 | if (tty->driver->wait_until_sent) |
68 | tty->driver->wait_until_sent(tty, timeout); | 68 | tty->driver->wait_until_sent(tty, timeout); |
diff --git a/drivers/pcmcia/pxa2xx_lubbock.c b/drivers/pcmcia/pxa2xx_lubbock.c index 1510d6cde3e2..4a05802213c8 100644 --- a/drivers/pcmcia/pxa2xx_lubbock.c +++ b/drivers/pcmcia/pxa2xx_lubbock.c | |||
@@ -213,7 +213,7 @@ static struct pcmcia_low_level lubbock_pcmcia_ops = { | |||
213 | 213 | ||
214 | #include "pxa2xx_base.h" | 214 | #include "pxa2xx_base.h" |
215 | 215 | ||
216 | int __init pcmcia_lubbock_init(struct sa1111_dev *sadev) | 216 | int pcmcia_lubbock_init(struct sa1111_dev *sadev) |
217 | { | 217 | { |
218 | int ret = -ENODEV; | 218 | int ret = -ENODEV; |
219 | 219 | ||
diff --git a/drivers/ps3/ps3-vuart.c b/drivers/ps3/ps3-vuart.c index 9dea585ef806..bb8d5b1eec90 100644 --- a/drivers/ps3/ps3-vuart.c +++ b/drivers/ps3/ps3-vuart.c | |||
@@ -1074,7 +1074,6 @@ static int ps3_vuart_probe(struct ps3_system_bus_device *dev) | |||
1074 | if (result) { | 1074 | if (result) { |
1075 | dev_dbg(&dev->core, "%s:%d: drv->probe failed\n", | 1075 | dev_dbg(&dev->core, "%s:%d: drv->probe failed\n", |
1076 | __func__, __LINE__); | 1076 | __func__, __LINE__); |
1077 | down(&vuart_bus_priv.probe_mutex); | ||
1078 | goto fail_probe; | 1077 | goto fail_probe; |
1079 | } | 1078 | } |
1080 | 1079 | ||
diff --git a/fs/dquot.c b/fs/dquot.c index 686ab63a7c6c..cee7c6f428f0 100644 --- a/fs/dquot.c +++ b/fs/dquot.c | |||
@@ -827,6 +827,18 @@ static inline void dquot_decr_space(struct dquot *dquot, qsize_t number) | |||
827 | clear_bit(DQ_BLKS_B, &dquot->dq_flags); | 827 | clear_bit(DQ_BLKS_B, &dquot->dq_flags); |
828 | } | 828 | } |
829 | 829 | ||
830 | static int warning_issued(struct dquot *dquot, const int warntype) | ||
831 | { | ||
832 | int flag = (warntype == QUOTA_NL_BHARDWARN || | ||
833 | warntype == QUOTA_NL_BSOFTLONGWARN) ? DQ_BLKS_B : | ||
834 | ((warntype == QUOTA_NL_IHARDWARN || | ||
835 | warntype == QUOTA_NL_ISOFTLONGWARN) ? DQ_INODES_B : 0); | ||
836 | |||
837 | if (!flag) | ||
838 | return 0; | ||
839 | return test_and_set_bit(flag, &dquot->dq_flags); | ||
840 | } | ||
841 | |||
830 | #ifdef CONFIG_PRINT_QUOTA_WARNING | 842 | #ifdef CONFIG_PRINT_QUOTA_WARNING |
831 | static int flag_print_warnings = 1; | 843 | static int flag_print_warnings = 1; |
832 | 844 | ||
@@ -845,16 +857,12 @@ static inline int need_print_warning(struct dquot *dquot) | |||
845 | } | 857 | } |
846 | 858 | ||
847 | /* Print warning to user which exceeded quota */ | 859 | /* Print warning to user which exceeded quota */ |
848 | static void print_warning(struct dquot *dquot, const char warntype) | 860 | static void print_warning(struct dquot *dquot, const int warntype) |
849 | { | 861 | { |
850 | char *msg = NULL; | 862 | char *msg = NULL; |
851 | struct tty_struct *tty; | 863 | struct tty_struct *tty; |
852 | int flag = (warntype == QUOTA_NL_BHARDWARN || | ||
853 | warntype == QUOTA_NL_BSOFTLONGWARN) ? DQ_BLKS_B : | ||
854 | ((warntype == QUOTA_NL_IHARDWARN || | ||
855 | warntype == QUOTA_NL_ISOFTLONGWARN) ? DQ_INODES_B : 0); | ||
856 | 864 | ||
857 | if (!need_print_warning(dquot) || (flag && test_and_set_bit(flag, &dquot->dq_flags))) | 865 | if (!need_print_warning(dquot)) |
858 | return; | 866 | return; |
859 | 867 | ||
860 | mutex_lock(&tty_mutex); | 868 | mutex_lock(&tty_mutex); |
@@ -895,9 +903,6 @@ out_lock: | |||
895 | 903 | ||
896 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE | 904 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE |
897 | 905 | ||
898 | /* Size of quota netlink message - actually an upperbound for buffer size */ | ||
899 | #define QUOTA_NL_MSG_SIZE 32 | ||
900 | |||
901 | /* Netlink family structure for quota */ | 906 | /* Netlink family structure for quota */ |
902 | static struct genl_family quota_genl_family = { | 907 | static struct genl_family quota_genl_family = { |
903 | .id = GENL_ID_GENERATE, | 908 | .id = GENL_ID_GENERATE, |
@@ -914,11 +919,13 @@ static void send_warning(const struct dquot *dquot, const char warntype) | |||
914 | struct sk_buff *skb; | 919 | struct sk_buff *skb; |
915 | void *msg_head; | 920 | void *msg_head; |
916 | int ret; | 921 | int ret; |
922 | int msg_size = 4 * nla_total_size(sizeof(u32)) + | ||
923 | 2 * nla_total_size(sizeof(u64)); | ||
917 | 924 | ||
918 | /* We have to allocate using GFP_NOFS as we are called from a | 925 | /* We have to allocate using GFP_NOFS as we are called from a |
919 | * filesystem performing write and thus further recursion into | 926 | * filesystem performing write and thus further recursion into |
920 | * the fs to free some data could cause deadlocks. */ | 927 | * the fs to free some data could cause deadlocks. */ |
921 | skb = genlmsg_new(QUOTA_NL_MSG_SIZE, GFP_NOFS); | 928 | skb = genlmsg_new(msg_size, GFP_NOFS); |
922 | if (!skb) { | 929 | if (!skb) { |
923 | printk(KERN_ERR | 930 | printk(KERN_ERR |
924 | "VFS: Not enough memory to send quota warning.\n"); | 931 | "VFS: Not enough memory to send quota warning.\n"); |
@@ -959,7 +966,7 @@ static void send_warning(const struct dquot *dquot, const char warntype) | |||
959 | "VFS: Failed to send notification message: %d\n", ret); | 966 | "VFS: Failed to send notification message: %d\n", ret); |
960 | return; | 967 | return; |
961 | attr_err_out: | 968 | attr_err_out: |
962 | printk(KERN_ERR "VFS: Failed to compose quota message: %d\n", ret); | 969 | printk(KERN_ERR "VFS: Not enough space to compose quota message!\n"); |
963 | err_out: | 970 | err_out: |
964 | kfree_skb(skb); | 971 | kfree_skb(skb); |
965 | } | 972 | } |
@@ -970,7 +977,8 @@ static inline void flush_warnings(struct dquot * const *dquots, char *warntype) | |||
970 | int i; | 977 | int i; |
971 | 978 | ||
972 | for (i = 0; i < MAXQUOTAS; i++) | 979 | for (i = 0; i < MAXQUOTAS; i++) |
973 | if (dquots[i] != NODQUOT && warntype[i] != QUOTA_NL_NOWARN) { | 980 | if (dquots[i] != NODQUOT && warntype[i] != QUOTA_NL_NOWARN && |
981 | !warning_issued(dquots[i], warntype[i])) { | ||
974 | #ifdef CONFIG_PRINT_QUOTA_WARNING | 982 | #ifdef CONFIG_PRINT_QUOTA_WARNING |
975 | print_warning(dquots[i], warntype[i]); | 983 | print_warning(dquots[i], warntype[i]); |
976 | #endif | 984 | #endif |
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c index bbed2fd40fdc..f8ef0af919e7 100644 --- a/fs/ecryptfs/crypto.c +++ b/fs/ecryptfs/crypto.c | |||
@@ -799,7 +799,7 @@ int ecryptfs_init_crypt_ctx(struct ecryptfs_crypt_stat *crypt_stat) | |||
799 | rc = ecryptfs_crypto_api_algify_cipher_name(&full_alg_name, | 799 | rc = ecryptfs_crypto_api_algify_cipher_name(&full_alg_name, |
800 | crypt_stat->cipher, "cbc"); | 800 | crypt_stat->cipher, "cbc"); |
801 | if (rc) | 801 | if (rc) |
802 | goto out; | 802 | goto out_unlock; |
803 | crypt_stat->tfm = crypto_alloc_blkcipher(full_alg_name, 0, | 803 | crypt_stat->tfm = crypto_alloc_blkcipher(full_alg_name, 0, |
804 | CRYPTO_ALG_ASYNC); | 804 | CRYPTO_ALG_ASYNC); |
805 | kfree(full_alg_name); | 805 | kfree(full_alg_name); |
@@ -808,12 +808,12 @@ int ecryptfs_init_crypt_ctx(struct ecryptfs_crypt_stat *crypt_stat) | |||
808 | ecryptfs_printk(KERN_ERR, "cryptfs: init_crypt_ctx(): " | 808 | ecryptfs_printk(KERN_ERR, "cryptfs: init_crypt_ctx(): " |
809 | "Error initializing cipher [%s]\n", | 809 | "Error initializing cipher [%s]\n", |
810 | crypt_stat->cipher); | 810 | crypt_stat->cipher); |
811 | mutex_unlock(&crypt_stat->cs_tfm_mutex); | 811 | goto out_unlock; |
812 | goto out; | ||
813 | } | 812 | } |
814 | crypto_blkcipher_set_flags(crypt_stat->tfm, CRYPTO_TFM_REQ_WEAK_KEY); | 813 | crypto_blkcipher_set_flags(crypt_stat->tfm, CRYPTO_TFM_REQ_WEAK_KEY); |
815 | mutex_unlock(&crypt_stat->cs_tfm_mutex); | ||
816 | rc = 0; | 814 | rc = 0; |
815 | out_unlock: | ||
816 | mutex_unlock(&crypt_stat->cs_tfm_mutex); | ||
817 | out: | 817 | out: |
818 | return rc; | 818 | return rc; |
819 | } | 819 | } |
@@ -1847,6 +1847,7 @@ ecryptfs_add_new_key_tfm(struct ecryptfs_key_tfm **key_tfm, char *cipher_name, | |||
1847 | mutex_init(&tmp_tfm->key_tfm_mutex); | 1847 | mutex_init(&tmp_tfm->key_tfm_mutex); |
1848 | strncpy(tmp_tfm->cipher_name, cipher_name, | 1848 | strncpy(tmp_tfm->cipher_name, cipher_name, |
1849 | ECRYPTFS_MAX_CIPHER_NAME_SIZE); | 1849 | ECRYPTFS_MAX_CIPHER_NAME_SIZE); |
1850 | tmp_tfm->cipher_name[ECRYPTFS_MAX_CIPHER_NAME_SIZE] = '\0'; | ||
1850 | tmp_tfm->key_size = key_size; | 1851 | tmp_tfm->key_size = key_size; |
1851 | rc = ecryptfs_process_key_cipher(&tmp_tfm->key_tfm, | 1852 | rc = ecryptfs_process_key_cipher(&tmp_tfm->key_tfm, |
1852 | tmp_tfm->cipher_name, | 1853 | tmp_tfm->cipher_name, |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index a277754da171..e5580bcb923a 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
@@ -138,11 +138,14 @@ int ecryptfs_init_persistent_file(struct dentry *ecryptfs_dentry) | |||
138 | inode_info->lower_file = dentry_open(lower_dentry, | 138 | inode_info->lower_file = dentry_open(lower_dentry, |
139 | lower_mnt, | 139 | lower_mnt, |
140 | (O_RDWR | O_LARGEFILE)); | 140 | (O_RDWR | O_LARGEFILE)); |
141 | if (IS_ERR(inode_info->lower_file)) | 141 | if (IS_ERR(inode_info->lower_file)) { |
142 | dget(lower_dentry); | ||
143 | mntget(lower_mnt); | ||
142 | inode_info->lower_file = dentry_open(lower_dentry, | 144 | inode_info->lower_file = dentry_open(lower_dentry, |
143 | lower_mnt, | 145 | lower_mnt, |
144 | (O_RDONLY | 146 | (O_RDONLY |
145 | | O_LARGEFILE)); | 147 | | O_LARGEFILE)); |
148 | } | ||
146 | if (IS_ERR(inode_info->lower_file)) { | 149 | if (IS_ERR(inode_info->lower_file)) { |
147 | printk(KERN_ERR "Error opening lower persistent file " | 150 | printk(KERN_ERR "Error opening lower persistent file " |
148 | "for lower_dentry [0x%p] and lower_mnt [0x%p]\n", | 151 | "for lower_dentry [0x%p] and lower_mnt [0x%p]\n", |
diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c index a96d341d154d..9cc2aec27b0d 100644 --- a/fs/ecryptfs/messaging.c +++ b/fs/ecryptfs/messaging.c | |||
@@ -427,6 +427,7 @@ int ecryptfs_init_messaging(unsigned int transport) | |||
427 | if (!ecryptfs_daemon_id_hash) { | 427 | if (!ecryptfs_daemon_id_hash) { |
428 | rc = -ENOMEM; | 428 | rc = -ENOMEM; |
429 | ecryptfs_printk(KERN_ERR, "Failed to allocate memory\n"); | 429 | ecryptfs_printk(KERN_ERR, "Failed to allocate memory\n"); |
430 | mutex_unlock(&ecryptfs_daemon_id_hash_mux); | ||
430 | goto out; | 431 | goto out; |
431 | } | 432 | } |
432 | for (i = 0; i < ecryptfs_hash_buckets; i++) | 433 | for (i = 0; i < ecryptfs_hash_buckets; i++) |
diff --git a/include/linux/quicklist.h b/include/linux/quicklist.h index 9371c6116df3..39b66713a0bb 100644 --- a/include/linux/quicklist.h +++ b/include/linux/quicklist.h | |||
@@ -56,14 +56,6 @@ static inline void __quicklist_free(int nr, void (*dtor)(void *), void *p, | |||
56 | struct page *page) | 56 | struct page *page) |
57 | { | 57 | { |
58 | struct quicklist *q; | 58 | struct quicklist *q; |
59 | int nid = page_to_nid(page); | ||
60 | |||
61 | if (unlikely(nid != numa_node_id())) { | ||
62 | if (dtor) | ||
63 | dtor(p); | ||
64 | __free_page(page); | ||
65 | return; | ||
66 | } | ||
67 | 59 | ||
68 | q = &get_cpu_var(quicklist)[nr]; | 60 | q = &get_cpu_var(quicklist)[nr]; |
69 | *(void **)p = q->page; | 61 | *(void **)p = q->page; |
diff --git a/lib/proportions.c b/lib/proportions.c index 332d8c58184d..9508d9a7af3e 100644 --- a/lib/proportions.c +++ b/lib/proportions.c | |||
@@ -190,6 +190,8 @@ prop_adjust_shift(int *pl_shift, unsigned long *pl_period, int new_shift) | |||
190 | * PERCPU | 190 | * PERCPU |
191 | */ | 191 | */ |
192 | 192 | ||
193 | #define PROP_BATCH (8*(1+ilog2(nr_cpu_ids))) | ||
194 | |||
193 | int prop_local_init_percpu(struct prop_local_percpu *pl) | 195 | int prop_local_init_percpu(struct prop_local_percpu *pl) |
194 | { | 196 | { |
195 | spin_lock_init(&pl->lock); | 197 | spin_lock_init(&pl->lock); |
@@ -230,31 +232,24 @@ void prop_norm_percpu(struct prop_global *pg, struct prop_local_percpu *pl) | |||
230 | 232 | ||
231 | spin_lock_irqsave(&pl->lock, flags); | 233 | spin_lock_irqsave(&pl->lock, flags); |
232 | prop_adjust_shift(&pl->shift, &pl->period, pg->shift); | 234 | prop_adjust_shift(&pl->shift, &pl->period, pg->shift); |
235 | |||
233 | /* | 236 | /* |
234 | * For each missed period, we half the local counter. | 237 | * For each missed period, we half the local counter. |
235 | * basically: | 238 | * basically: |
236 | * pl->events >> (global_period - pl->period); | 239 | * pl->events >> (global_period - pl->period); |
237 | * | ||
238 | * but since the distributed nature of percpu counters make division | ||
239 | * rather hard, use a regular subtraction loop. This is safe, because | ||
240 | * the events will only every be incremented, hence the subtraction | ||
241 | * can never result in a negative number. | ||
242 | */ | 240 | */ |
243 | while (pl->period != global_period) { | 241 | period = (global_period - pl->period) >> (pg->shift - 1); |
244 | unsigned long val = percpu_counter_read(&pl->events); | 242 | if (period < BITS_PER_LONG) { |
245 | unsigned long half = (val + 1) >> 1; | 243 | s64 val = percpu_counter_read(&pl->events); |
246 | 244 | ||
247 | /* | 245 | if (val < (nr_cpu_ids * PROP_BATCH)) |
248 | * Half of zero won't be much less, break out. | 246 | val = percpu_counter_sum(&pl->events); |
249 | * This limits the loop to shift iterations, even | 247 | |
250 | * if we missed a million. | 248 | __percpu_counter_add(&pl->events, -val + (val >> period), |
251 | */ | 249 | PROP_BATCH); |
252 | if (!val) | 250 | } else |
253 | break; | 251 | percpu_counter_set(&pl->events, 0); |
254 | 252 | ||
255 | percpu_counter_add(&pl->events, -half); | ||
256 | pl->period += period; | ||
257 | } | ||
258 | pl->period = global_period; | 253 | pl->period = global_period; |
259 | spin_unlock_irqrestore(&pl->lock, flags); | 254 | spin_unlock_irqrestore(&pl->lock, flags); |
260 | } | 255 | } |
@@ -267,7 +262,7 @@ void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl) | |||
267 | struct prop_global *pg = prop_get_global(pd); | 262 | struct prop_global *pg = prop_get_global(pd); |
268 | 263 | ||
269 | prop_norm_percpu(pg, pl); | 264 | prop_norm_percpu(pg, pl); |
270 | percpu_counter_add(&pl->events, 1); | 265 | __percpu_counter_add(&pl->events, 1, PROP_BATCH); |
271 | percpu_counter_add(&pg->events, 1); | 266 | percpu_counter_add(&pg->events, 1); |
272 | prop_put_global(pd, pg); | 267 | prop_put_global(pd, pg); |
273 | } | 268 | } |
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index a38787a881ea..8d6f17490c5e 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c | |||
@@ -374,7 +374,8 @@ static int conf_choice(struct menu *menu) | |||
374 | continue; | 374 | continue; |
375 | break; | 375 | break; |
376 | case set_random: | 376 | case set_random: |
377 | def = (random() % cnt) + 1; | 377 | if (is_new) |
378 | def = (random() % cnt) + 1; | ||
378 | case set_default: | 379 | case set_default: |
379 | case set_yes: | 380 | case set_yes: |
380 | case set_mod: | 381 | case set_mod: |