Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'akpm' (Andrew's patch-bomb)

Merge patches from Andrew Morton:
"Nine patches - some bug fixes and some MAINTAINERS fiddling."

* emailed from Andrew Morton <akpm@linux-foundation.org>:
drivers/video/backlight/s6e63m0.c: fix corruption storing gamma mode
MAINTAINERS: add entry for exynos mipi display drivers
MAINTAINERS: fix link to Gustavo Padovans tree
MAINTAINERS: add Johan to Bluetooth maintainers
MAINTAINERS: Gustavo has moved
prctl: use CAP_SYS_RESOURCE for PR_SET_MM option
rapidio/tsi721: fix bug in register offset definitions
MAINTAINERS: update ST's Mailing list for SPEAr
memcg: free mem_cgroup by RCU to fix oops

+92 -27
+28 -4
MAINTAINERS
··· 1513 1513 1514 1514 BLUETOOTH DRIVERS 1515 1515 M: Marcel Holtmann <marcel@holtmann.org> 1516 - M: "Gustavo F. Padovan" <padovan@profusion.mobi> 1516 + M: Gustavo Padovan <gustavo@padovan.org> 1517 + M: Johan Hedberg <johan.hedberg@gmail.com> 1517 1518 L: linux-bluetooth@vger.kernel.org 1518 1519 W: http://www.bluez.org/ 1519 - T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git 1520 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git 1521 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git 1520 1522 S: Maintained 1521 1523 F: drivers/bluetooth/ 1522 1524 1523 1525 BLUETOOTH SUBSYSTEM 1524 1526 M: Marcel Holtmann <marcel@holtmann.org> 1525 - M: "Gustavo F. Padovan" <padovan@profusion.mobi> 1527 + M: Gustavo Padovan <gustavo@padovan.org> 1528 + M: Johan Hedberg <johan.hedberg@gmail.com> 1526 1529 L: linux-bluetooth@vger.kernel.org 1527 1530 W: http://www.bluez.org/ 1528 - T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git 1531 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git 1532 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git 1529 1533 S: Maintained 1530 1534 F: net/bluetooth/ 1531 1535 F: include/net/bluetooth/ ··· 2354 2350 S: Supported 2355 2351 F: drivers/gpu/drm/exynos 2356 2352 F: include/drm/exynos* 2353 + 2354 + EXYNOS MIPI DISPLAY DRIVERS 2355 + M: Inki Dae <inki.dae@samsung.com> 2356 + M: Donghwa Lee <dh09.lee@samsung.com> 2357 + M: Kyungmin Park <kyungmin.park@samsung.com> 2358 + L: linux-fbdev@vger.kernel.org 2359 + S: Maintained 2360 + F: drivers/video/exynos/exynos_mipi* 2361 + F: include/video/exynos_mipi* 2357 2362 2358 2363 DSCC4 DRIVER 2359 2364 M: Francois Romieu <romieu@fr.zoreil.com> ··· 5872 5859 5873 5860 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER 5874 5861 M: Viresh Kumar <viresh.kumar@st.com> 5862 + L: spear-devel@list.st.com 5875 5863 L: linux-mmc@vger.kernel.org 5876 5864 S: Maintained 5877 5865 F: drivers/mmc/host/sdhci-spear.c ··· 6215 6201 6216 6202 SPEAR PLATFORM SUPPORT 6217 6203 M: Viresh Kumar <viresh.kumar@st.com> 6204 + L: spear-devel@list.st.com 6205 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6218 6206 W: http://www.st.com/spear 6219 6207 S: Maintained 6220 6208 F: arch/arm/plat-spear/ 6221 6209 6222 6210 SPEAR3XX MACHINE SUPPORT 6223 6211 M: Viresh Kumar <viresh.kumar@st.com> 6212 + L: spear-devel@list.st.com 6213 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6224 6214 W: http://www.st.com/spear 6225 6215 S: Maintained 6226 6216 F: arch/arm/mach-spear3xx/ 6227 6217 6228 6218 SPEAR6XX MACHINE SUPPORT 6229 6219 M: Rajeev Kumar <rajeev-dlh.kumar@st.com> 6220 + L: spear-devel@list.st.com 6221 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6230 6222 W: http://www.st.com/spear 6231 6223 S: Maintained 6232 6224 F: arch/arm/mach-spear6xx/ 6233 6225 6234 6226 SPEAR CLOCK FRAMEWORK SUPPORT 6235 6227 M: Viresh Kumar <viresh.kumar@st.com> 6228 + L: spear-devel@list.st.com 6229 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6236 6230 W: http://www.st.com/spear 6237 6231 S: Maintained 6238 6232 F: arch/arm/mach-spear*/clock.c ··· 6249 6227 6250 6228 SPEAR PAD MULTIPLEXING SUPPORT 6251 6229 M: Viresh Kumar <viresh.kumar@st.com> 6230 + L: spear-devel@list.st.com 6231 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6252 6232 W: http://www.st.com/spear 6253 6233 S: Maintained 6254 6234 F: arch/arm/plat-spear/include/plat/padmux.h
+15 -15
drivers/rapidio/devices/tsi721.h
··· 118 118 119 119 #define TSI721_IDB_ENTRY_SIZE 64 120 120 121 - #define TSI721_IDQ_CTL(x) (0x20000 + (x) * 1000) 121 + #define TSI721_IDQ_CTL(x) (0x20000 + (x) * 0x1000) 122 122 #define TSI721_IDQ_SUSPEND 0x00000002 123 123 #define TSI721_IDQ_INIT 0x00000001 124 124 125 - #define TSI721_IDQ_STS(x) (0x20004 + (x) * 1000) 125 + #define TSI721_IDQ_STS(x) (0x20004 + (x) * 0x1000) 126 126 #define TSI721_IDQ_RUN 0x00200000 127 127 128 - #define TSI721_IDQ_MASK(x) (0x20008 + (x) * 1000) 128 + #define TSI721_IDQ_MASK(x) (0x20008 + (x) * 0x1000) 129 129 #define TSI721_IDQ_MASK_MASK 0xffff0000 130 130 #define TSI721_IDQ_MASK_PATT 0x0000ffff 131 131 132 - #define TSI721_IDQ_RP(x) (0x2000c + (x) * 1000) 132 + #define TSI721_IDQ_RP(x) (0x2000c + (x) * 0x1000) 133 133 #define TSI721_IDQ_RP_PTR 0x0007ffff 134 134 135 - #define TSI721_IDQ_WP(x) (0x20010 + (x) * 1000) 135 + #define TSI721_IDQ_WP(x) (0x20010 + (x) * 0x1000) 136 136 #define TSI721_IDQ_WP_PTR 0x0007ffff 137 137 138 - #define TSI721_IDQ_BASEL(x) (0x20014 + (x) * 1000) 138 + #define TSI721_IDQ_BASEL(x) (0x20014 + (x) * 0x1000) 139 139 #define TSI721_IDQ_BASEL_ADDR 0xffffffc0 140 - #define TSI721_IDQ_BASEU(x) (0x20018 + (x) * 1000) 141 - #define TSI721_IDQ_SIZE(x) (0x2001c + (x) * 1000) 140 + #define TSI721_IDQ_BASEU(x) (0x20018 + (x) * 0x1000) 141 + #define TSI721_IDQ_SIZE(x) (0x2001c + (x) * 0x1000) 142 142 #define TSI721_IDQ_SIZE_VAL(size) (__fls(size) - 4) 143 143 #define TSI721_IDQ_SIZE_MIN 512 144 144 #define TSI721_IDQ_SIZE_MAX (512 * 1024) 145 145 146 - #define TSI721_SR_CHINT(x) (0x20040 + (x) * 1000) 147 - #define TSI721_SR_CHINTE(x) (0x20044 + (x) * 1000) 148 - #define TSI721_SR_CHINTSET(x) (0x20048 + (x) * 1000) 146 + #define TSI721_SR_CHINT(x) (0x20040 + (x) * 0x1000) 147 + #define TSI721_SR_CHINTE(x) (0x20044 + (x) * 0x1000) 148 + #define TSI721_SR_CHINTSET(x) (0x20048 + (x) * 0x1000) 149 149 #define TSI721_SR_CHINT_ODBOK 0x00000020 150 150 #define TSI721_SR_CHINT_IDBQRCV 0x00000010 151 151 #define TSI721_SR_CHINT_SUSP 0x00000008 ··· 156 156 157 157 #define TSI721_IBWIN_NUM 8 158 158 159 - #define TSI721_IBWINLB(x) (0x29000 + (x) * 20) 159 + #define TSI721_IBWINLB(x) (0x29000 + (x) * 0x20) 160 160 #define TSI721_IBWINLB_BA 0xfffff000 161 161 #define TSI721_IBWINLB_WEN 0x00000001 162 162 ··· 187 187 */ 188 188 #define TSI721_OBWIN_NUM TSI721_PC2SR_WINS 189 189 190 - #define TSI721_OBWINLB(x) (0x40000 + (x) * 20) 190 + #define TSI721_OBWINLB(x) (0x40000 + (x) * 0x20) 191 191 #define TSI721_OBWINLB_BA 0xffff8000 192 192 #define TSI721_OBWINLB_WEN 0x00000001 193 193 194 - #define TSI721_OBWINUB(x) (0x40004 + (x) * 20) 194 + #define TSI721_OBWINUB(x) (0x40004 + (x) * 0x20) 195 195 196 - #define TSI721_OBWINSZ(x) (0x40008 + (x) * 20) 196 + #define TSI721_OBWINSZ(x) (0x40008 + (x) * 0x20) 197 197 #define TSI721_OBWINSZ_SIZE 0x00001f00 198 198 #define TSI721_OBWIN_SIZE(size) (__fls(size) - 15) 199 199
+1 -1
drivers/video/backlight/s6e63m0.c
··· 690 690 struct backlight_device *bd = NULL; 691 691 int brightness, rc; 692 692 693 - rc = strict_strtoul(buf, 0, (unsigned long *)&lcd->gamma_mode); 693 + rc = kstrtouint(buf, 0, &lcd->gamma_mode); 694 694 if (rc < 0) 695 695 return rc; 696 696
+1 -1
kernel/sys.c
··· 1706 1706 if (arg4 | arg5) 1707 1707 return -EINVAL; 1708 1708 1709 - if (!capable(CAP_SYS_ADMIN)) 1709 + if (!capable(CAP_SYS_RESOURCE)) 1710 1710 return -EPERM; 1711 1711 1712 1712 if (addr >= TASK_SIZE)
+47 -6
mm/memcontrol.c
··· 230 230 * the counter to account for memory usage 231 231 */ 232 232 struct res_counter res; 233 - /* 234 - * the counter to account for mem+swap usage. 235 - */ 236 - struct res_counter memsw; 233 + 234 + union { 235 + /* 236 + * the counter to account for mem+swap usage. 237 + */ 238 + struct res_counter memsw; 239 + 240 + /* 241 + * rcu_freeing is used only when freeing struct mem_cgroup, 242 + * so put it into a union to avoid wasting more memory. 243 + * It must be disjoint from the css field. It could be 244 + * in a union with the res field, but res plays a much 245 + * larger part in mem_cgroup life than memsw, and might 246 + * be of interest, even at time of free, when debugging. 247 + * So share rcu_head with the less interesting memsw. 248 + */ 249 + struct rcu_head rcu_freeing; 250 + /* 251 + * But when using vfree(), that cannot be done at 252 + * interrupt time, so we must then queue the work. 253 + */ 254 + struct work_struct work_freeing; 255 + }; 256 + 237 257 /* 238 258 * Per cgroup active and inactive list, similar to the 239 259 * per zone LRU lists. ··· 4800 4780 } 4801 4781 4802 4782 /* 4783 + * Helpers for freeing a vzalloc()ed mem_cgroup by RCU, 4784 + * but in process context. The work_freeing structure is overlaid 4785 + * on the rcu_freeing structure, which itself is overlaid on memsw. 4786 + */ 4787 + static void vfree_work(struct work_struct *work) 4788 + { 4789 + struct mem_cgroup *memcg; 4790 + 4791 + memcg = container_of(work, struct mem_cgroup, work_freeing); 4792 + vfree(memcg); 4793 + } 4794 + static void vfree_rcu(struct rcu_head *rcu_head) 4795 + { 4796 + struct mem_cgroup *memcg; 4797 + 4798 + memcg = container_of(rcu_head, struct mem_cgroup, rcu_freeing); 4799 + INIT_WORK(&memcg->work_freeing, vfree_work); 4800 + schedule_work(&memcg->work_freeing); 4801 + } 4802 + 4803 + /* 4803 4804 * At destroying mem_cgroup, references from swap_cgroup can remain. 4804 4805 * (scanning all at force_empty is too costly...) 4805 4806 * ··· 4843 4802 4844 4803 free_percpu(memcg->stat); 4845 4804 if (sizeof(struct mem_cgroup) < PAGE_SIZE) 4846 - kfree(memcg); 4805 + kfree_rcu(memcg, rcu_freeing); 4847 4806 else 4848 - vfree(memcg); 4807 + call_rcu(&memcg->rcu_freeing, vfree_rcu); 4849 4808 } 4850 4809 4851 4810 static void mem_cgroup_get(struct mem_cgroup *memcg)