/* * Copyright (C) 2016 Chen-Yu Tsai * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual * licensing only applies to this file, and not this project as a * whole. * * a) This file is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Or, alternatively, * * b) Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef _DT_BINDINGS_RST_SUN6I_A31_H_ #define _DT_BINDINGS_RST_SUN6I_A31_H_ #define RST_USB_PHY0 0 #define RST_USB_PHY1 1 #define RST_USB_PHY2 2 #define RST_AHB1_MIPI_DSI 3 #define RST_AHB1_SS 4 #define RST_AHB1_DMA 5 #define RST_AHB1_MMC0 6 #define RST_AHB1_MMC1 7 #define RST_AHB1_MMC2 8 #define RST_AHB1_MMC3 9 #define RST_AHB1_NAND1 10 #define RST_AHB1_NAND0 11 #define RST_AHB1_SDRAM 12 #define RST_AHB1_EMAC 13 #define RST_AHB1_TS 14 #define RST_AHB1_HSTIMER 15 #define RST_AHB1_SPI0 16 #define RST_AHB1_SPI1 17 #define RST_AHB1_SPI2 18 #define RST_AHB1_SPI3 19 #define RST_AHB1_OTG 20 #define RST_AHB1_EHCI0 21 #define RST_AHB1_EHCI1 22 #define RST_AHB1_OHCI0 23 #define RST_AHB1_OHCI1 24 #define RST_AHB1_OHCI2 25 #define RST_AHB1_VE 26 #define RST_AHB1_LCD0 27 #define RST_AHB1_LCD1 28 #define RST_AHB1_CSI 29 #define RST_AHB1_HDMI 30 #define RST_AHB1_BE0 31 #define RST_AHB1_BE1 32 #define RST_AHB1_FE0 33 #define RST_AHB1_FE1 34 #define RST_AHB1_MP 35 #define RST_AHB1_GPU 36 #define RST_AHB1_DEU0 37 #define RST_AHB1_DEU1 38 #define RST_AHB1_DRC0 39 #define RST_AHB1_DRC1 40 #define RST_AHB1_LVDS 41 #define RST_APB1_CODEC 42 #define RST_APB1_SPDIF 43 #define RST_APB1_DIGITAL_MIC 44 #define RST_APB1_DAUDIO0 45 #define RST_APB1_DAUDIO1 46 #define RST_APB2_I2C0 47 #define RST_APB2_I2C1 48 #define RST_APB2_I2C2 49 #define RST_APB2_I2C3 50 #define RST_APB2_UART0 51 #define RST_APB2_UART1 52 #define RST_APB2_UART2 53 #define RST_APB2_UART3 54 #define RST_APB2_UART4 55 #define RST_APB2_UART5 56 #endif /* _DT_BINDINGS_RST_SUN6I_A31_H_ */ value='1'>1space:mode:
authorTejun Heo <tj@kernel.org>2017-01-26 16:47:28 -0500
committerTejun Heo <tj@kernel.org>2017-01-26 16:47:28 -0500
commit07cd12945551b63ecb1a349d50a6d69d1d6feb4a (patch)
tree75f65eba7eac9277971082a2d5a4cf1370562c0c /drivers/usb/serial/Kconfig
parent7ce7d89f48834cefece7804d38fc5d85382edf77 (diff)
cgroup: don't online subsystems before cgroup_name/path() are operational
While refactoring cgroup creation, a5bca2152036 ("cgroup: factor out cgroup_create() out of cgroup_mkdir()") incorrectly onlined subsystems before the new cgroup is associated with it kernfs_node. This is fine for cgroup proper but cgroup_name/path() depend on the associated kernfs_node and if a subsystem makes the new cgroup_subsys_state visible, which they're allowed to after onlining, it can lead to NULL dereference. The current code performs cgroup creation and subsystem onlining in cgroup_create() and cgroup_mkdir() makes the cgroup and subsystems visible afterwards. There's no reason to online the subsystems early and we can simply drop cgroup_apply_control_enable() call from cgroup_create() so that the subsystems are onlined and made visible at the same time. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Fixes: a5bca2152036 ("cgroup: factor out cgroup_create() out of cgroup_mkdir()") Cc: stable@vger.kernel.org # v4.6+
Diffstat (limited to 'drivers/usb/serial/Kconfig')