Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) { - struct list_head *tmp; + struct pci_bus *tmp; unsigned char max, n;
/* @@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) { - n = pci_bus_max_busnr(pci_bus_b(tmp)); + list_for_each_entry(tmp, &bus->children, node) { + n = pci_bus_max_busnr(tmp); if (n > max) max = n; }
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- arch/arm/kernel/bios32.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 317da88..0a77858 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c @@ -57,13 +57,10 @@ static void pcibios_bus_report_status(struct pci_bus *bus, u_int status_mask, in
void pcibios_report_status(u_int status_mask, int warn) { - struct list_head *l; - - list_for_each(l, &pci_root_buses) { - struct pci_bus *bus = pci_bus_b(l); + struct pci_bus *bus;
+ list_for_each_entry(bus, &pci_root_buses, node) pcibios_bus_report_status(bus, status_mask, warn); - } }
/*
On Thu, Feb 13, 2014 at 09:13:59PM +0800, Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
Acked-by: Russell King rmk+kernel@arm.linux.org.uk
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- drivers/gpu/drm/drm_fops.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index 7f2af9a..70d2987 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -319,7 +319,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp, pci_dev_put(pci_dev); } if (!dev->hose) { - struct pci_bus *b = pci_bus_b(pci_root_buses.next); + struct pci_bus *b = list_entry(pci_root_buses.next, + struct pci_bus, node); if (b) dev->hose = b->sysdata; }
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- arch/powerpc/kernel/pci_64.c | 4 +--- arch/powerpc/platforms/pseries/pci_dlpar.c | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index a9e311f..2a47790 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c @@ -208,7 +208,6 @@ long sys_pciconfig_iobase(long which, unsigned long in_bus, unsigned long in_devfn) { struct pci_controller* hose; - struct list_head *ln; struct pci_bus *bus = NULL; struct device_node *hose_node;
@@ -230,8 +229,7 @@ long sys_pciconfig_iobase(long which, unsigned long in_bus, * used on pre-domains setup. We return the first match */
- for (ln = pci_root_buses.next; ln != &pci_root_buses; ln = ln->next) { - bus = pci_bus_b(ln); + list_for_each_entry(bus, &pci_root_buses, node) { if (in_bus >= bus->number && in_bus <= bus->busn_res.end) break; bus = NULL; diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index efe6137..203cbf0 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c @@ -37,15 +37,15 @@ find_bus_among_children(struct pci_bus *bus, struct device_node *dn) { struct pci_bus *child = NULL; - struct list_head *tmp; + struct pci_bus *tmp; struct device_node *busdn;
busdn = pci_bus_to_OF_node(bus); if (busdn == dn) return bus;
- list_for_each(tmp, &bus->children) { - child = find_bus_among_children(pci_bus_b(tmp), dn); + list_for_each_entry(tmp, &bus->children, node) { + child = find_bus_among_children(tmp, dn); if (child) break; };
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- drivers/pcmcia/yenta_socket.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index 8485761..d16fb12 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -1076,7 +1076,7 @@ static void yenta_config_init(struct yenta_socket *socket) */ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge) { - struct list_head *tmp; + struct pci_bus *silbling; unsigned char upper_limit; /* * We only check and fix the parent bridge: All systems which need @@ -1096,8 +1096,8 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge) upper_limit = bridge_to_fix->parent->busn_res.end;
/* check the bus ranges of all silbling bridges to prevent overlap */ - list_for_each(tmp, &bridge_to_fix->parent->children) { - struct pci_bus *silbling = pci_bus_b(tmp); + list_for_each_entry(silbling, &bridge_to_fix->parent->children, + node) { /* * If the silbling has a higher secondary bus number * and it's secondary is equal or smaller than our
Replace pci_bus_b() with list_entry(), so we can remove pci_bus_b().
Signed-off-by: Yijing Wang wangyijing@huawei.com --- drivers/pci/pci.c | 6 +++--- drivers/pci/search.c | 10 +++++----- include/linux/pci.h | 1 - 3 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 1febe90..6f5ed88 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -108,12 +108,12 @@ static bool pcie_ari_disabled; */ unsigned char pci_bus_max_busnr(struct pci_bus* bus) { - struct list_head *tmp; + struct pci_bus *tmp; unsigned char max, n;
max = bus->busn_res.end; - list_for_each(tmp, &bus->children) { - n = pci_bus_max_busnr(pci_bus_b(tmp)); + list_for_each_entry(tmp, &bus->children, node) { + n = pci_bus_max_busnr(tmp); if(n > max) max = n; } diff --git a/drivers/pci/search.c b/drivers/pci/search.c index 3ff2ac7..4a1b972 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c @@ -54,14 +54,14 @@ pci_find_upstream_pcie_bridge(struct pci_dev *pdev)
static struct pci_bus *pci_do_find_bus(struct pci_bus *bus, unsigned char busnr) { - struct pci_bus* child; - struct list_head *tmp; + struct pci_bus *child; + struct pci_bus *tmp;
if(bus->number == busnr) return bus;
- list_for_each(tmp, &bus->children) { - child = pci_do_find_bus(pci_bus_b(tmp), busnr); + list_for_each_entry(tmp, &bus->children, node) { + child = pci_do_find_bus(tmp, busnr); if(child) return child; } @@ -111,7 +111,7 @@ pci_find_next_bus(const struct pci_bus *from) down_read(&pci_bus_sem); n = from ? from->node.next : pci_root_buses.next; if (n != &pci_root_buses) - b = pci_bus_b(n); + b = list_entry(n, struct pci_bus, node); up_read(&pci_bus_sem); return b; } diff --git a/include/linux/pci.h b/include/linux/pci.h index fb57c89..e1b5752 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -461,7 +461,6 @@ struct pci_bus { unsigned int is_added:1; };
-#define pci_bus_b(n) list_entry(n, struct pci_bus, node) #define to_pci_bus(n) container_of(n, struct pci_bus, dev)
/*
On Thursday, February 13, 2014 09:13:58 PM Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
Looks reasonable to me.
Does it conflict with anything currently in linux-next (the linux-next branch of linux-pm.git in particular)?
drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) {
- struct list_head *tmp;
struct pci_bus *tmp; unsigned char max, n;
/*
@@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) {
n = pci_bus_max_busnr(pci_bus_b(tmp));
- list_for_each_entry(tmp, &bus->children, node) {
if (n > max) max = n; }n = pci_bus_max_busnr(tmp);
On 2014/2/14 7:54, Rafael J. Wysocki wrote:
On Thursday, February 13, 2014 09:13:58 PM Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
Looks reasonable to me.
Does it conflict with anything currently in linux-next (the linux-next branch of linux-pm.git in particular)?
Hi Rafael, I applied this to your linux-next branch successfully . No conflicts found.
Thanks! Yijing.
drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) {
- struct list_head *tmp;
struct pci_bus *tmp; unsigned char max, n;
/*
@@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) {
n = pci_bus_max_busnr(pci_bus_b(tmp));
- list_for_each_entry(tmp, &bus->children, node) {
if (n > max) max = n; }n = pci_bus_max_busnr(tmp);
On Friday, February 14, 2014 10:19:41 AM Yijing Wang wrote:
On 2014/2/14 7:54, Rafael J. Wysocki wrote:
On Thursday, February 13, 2014 09:13:58 PM Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
Looks reasonable to me.
Does it conflict with anything currently in linux-next (the linux-next branch of linux-pm.git in particular)?
Hi Rafael, I applied this to your linux-next branch successfully . No conflicts found.
Good. :-)
Please feel free to add my ACK to it.
Rafael
drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) {
- struct list_head *tmp;
struct pci_bus *tmp; unsigned char max, n;
/*
@@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) {
n = pci_bus_max_busnr(pci_bus_b(tmp));
- list_for_each_entry(tmp, &bus->children, node) {
if (n > max) max = n; }n = pci_bus_max_busnr(tmp);
Does it conflict with anything currently in linux-next (the linux-next branch of linux-pm.git in particular)?
Hi Rafael, I applied this to your linux-next branch successfully . No conflicts found.
Good. :-)
Please feel free to add my ACK to it.
Thanks very much!
On Thu, Feb 13, 2014 at 09:13:58PM +0800, Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
I applied all six of these (please include a 0/6 cover letter in the future; that's a nice place to note that I applied things) to pci/list-for-each-entry for v3.15, thanks!
drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) {
- struct list_head *tmp;
struct pci_bus *tmp; unsigned char max, n;
/*
@@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) {
n = pci_bus_max_busnr(pci_bus_b(tmp));
- list_for_each_entry(tmp, &bus->children, node) {
if (n > max) max = n; }n = pci_bus_max_busnr(tmp);
-- 1.7.1
On 2014/2/15 2:23, Bjorn Helgaas wrote:
On Thu, Feb 13, 2014 at 09:13:58PM +0800, Yijing Wang wrote:
Replace list_for_each() + pci_bus_b() with the simpler list_for_each_entry().
Signed-off-by: Yijing Wang wangyijing@huawei.com
I applied all six of these (please include a 0/6 cover letter in the future; that's a nice place to note that I applied things) to pci/list-for-each-entry for v3.15, thanks!
Thanks, I will add cover letter in the next time, sorry.
drivers/pci/hotplug/acpiphp_glue.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cd929ae..aee6a0a 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -450,7 +450,7 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge) */ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) {
- struct list_head *tmp;
struct pci_bus *tmp; unsigned char max, n;
/*
@@ -463,8 +463,8 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) */ max = bus->busn_res.start;
- list_for_each(tmp, &bus->children) {
n = pci_bus_max_busnr(pci_bus_b(tmp));
- list_for_each_entry(tmp, &bus->children, node) {
if (n > max) max = n; }n = pci_bus_max_busnr(tmp);
-- 1.7.1
dri-devel@lists.freedesktop.org