Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1241143 > unrolled thread

linux-next: build failure after merge of the target-updates tree

Started byStephen Rothwell <sfr@canb.auug.org.au>
First post2015-10-07 05:50 +0200
Last post2015-10-07 14:30 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  linux-next: build failure after merge of the target-updates tree Stephen Rothwell <sfr@canb.auug.org.au> - 2015-10-07 05:50 +0200
    Re: linux-next: build failure after merge of the target-updates tree Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2015-10-07 14:30 +0200
      Re: linux-next: build failure after merge of the target-updates  tree Stephen Rothwell <sfr@canb.auug.org.au> - 2015-10-07 22:30 +0200
    [PATCH] stm class: Use per-attribute show and store methods in configfs policy Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2015-10-07 14:30 +0200

#1241143 — linux-next: build failure after merge of the target-updates tree

FromStephen Rothwell <sfr@canb.auug.org.au>
Date2015-10-07 05:50 +0200
Subjectlinux-next: build failure after merge of the target-updates tree
Message-ID<qgNTQ-1qY-9@gated-at.bofh.it>
Hi Nicholas,

After merging the target-updates tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/hwtracing/stm/policy.c:212:2: error: unknown field 'show_attribute' specified in initializer
  .show_attribute  = stp_policy_node_attr_show,
  ^
drivers/hwtracing/stm/policy.c:212:2: warning: initialization from incompatible pointer type
drivers/hwtracing/stm/policy.c:212:2: warning: (near initialization for 'stp_policy_node_item_ops.allow_link')
drivers/hwtracing/stm/policy.c:213:2: error: unknown field 'store_attribute' specified in initializer
  .store_attribute = stp_policy_node_attr_store,
  ^
drivers/hwtracing/stm/policy.c:213:2: warning: initialization from incompatible pointer type
drivers/hwtracing/stm/policy.c:213:2: warning: (near initialization for 'stp_policy_node_item_ops.drop_link')
drivers/hwtracing/stm/policy.c:353:2: error: unknown field 'show_attribute' specified in initializer
  .show_attribute  = stp_policy_attr_show,
  ^
drivers/hwtracing/stm/policy.c:353:2: warning: initialization from incompatible pointer type
drivers/hwtracing/stm/policy.c:353:2: warning: (near initialization for 'stp_policy_item_ops.allow_link')

Caused by commit

  7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")

from the char-misc tree interacting with commit

  f71933438300 ("configfs: remove old API")

I have reverted the target-updated commit for today.  If there is a
better resolution (and I assume that there is), please let me know.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1241425

FromAlexander Shishkin <alexander.shishkin@linux.intel.com>
Date2015-10-07 14:30 +0200
Message-ID<qgW13-4HJ-5@gated-at.bofh.it>
In reply to#1241143
Stephen Rothwell <sfr@canb.auug.org.au> writes:

> Caused by commit
>
>   7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
>
> from the char-misc tree interacting with commit
>
>   f71933438300 ("configfs: remove old API")
>
> I have reverted the target-updated commit for today.  If there is a
> better resolution (and I assume that there is), please let me know.

I'm going to follow up to this email with a fix that updates stm class
code to the new api, I'm not sure whos branch it should go to, because
it only works with Christoph's configfs patches in the -next.

Regards,
--
Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1241784 — Re: linux-next: build failure after merge of the target-updates tree

FromStephen Rothwell <sfr@canb.auug.org.au>
Date2015-10-07 22:30 +0200
SubjectRe: linux-next: build failure after merge of the target-updates tree
Message-ID<qh3vA-78b-11@gated-at.bofh.it>
In reply to#1241425
Hi Alexander,

On Wed, 07 Oct 2015 15:27:17 +0300 Alexander Shishkin <alexander.shishkin@linux.intel.com> wrote:
>
> Stephen Rothwell <sfr@canb.auug.org.au> writes:
> 
> > Caused by commit
> >
> >   7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
> >
> > from the char-misc tree interacting with commit
> >
> >   f71933438300 ("configfs: remove old API")
> >
> > I have reverted the target-updated commit for today.  If there is a
> > better resolution (and I assume that there is), please let me know.
> 
> I'm going to follow up to this email with a fix that updates stm class
> code to the new api, I'm not sure whos branch it should go to, because
> it only works with Christoph's configfs patches in the -next.

Well, I will add it as a merge resolution patch in linux-next (instead
of the current revert) but someone will have to remember to send it to
Linus when the latter of these two trees is merged by him.  Unless one
of these trees can merge the other (or a non rebasing subset) ...
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1241427 — [PATCH] stm class: Use per-attribute show and store methods in configfs policy

FromAlexander Shishkin <alexander.shishkin@linux.intel.com>
Date2015-10-07 14:30 +0200
Subject[PATCH] stm class: Use per-attribute show and store methods in configfs policy
Message-ID<qgW14-4HJ-11@gated-at.bofh.it>
In reply to#1241143
Since commit f9b2efa6dc ("Christoph Hellwig configfs: add show and store
methods to struct configfs_attribute"), there's no need to keep an extra
wrapper structure per item and the awkward show_attribute/store_attribute
item ops are no longer needed.

This patch converts policy code to the new api, all the while making the
code quite a bit smaller and easier on the eyes.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 drivers/hwtracing/stm/policy.c | 105 ++++++++++-------------------------------
 1 file changed, 24 insertions(+), 81 deletions(-)

diff --git a/drivers/hwtracing/stm/policy.c b/drivers/hwtracing/stm/policy.c
index 6498a9dbb7..11ab6d01ad 100644
--- a/drivers/hwtracing/stm/policy.c
+++ b/drivers/hwtracing/stm/policy.c
@@ -76,9 +76,10 @@ to_stp_policy_node(struct config_item *item)
 		NULL;
 }
 
-static ssize_t stp_policy_node_masters_show(struct stp_policy_node *policy_node,
-					    char *page)
+static ssize_t
+stp_policy_node_masters_show(struct config_item *item, char *page)
 {
+	struct stp_policy_node *policy_node = to_stp_policy_node(item);
 	ssize_t count;
 
 	count = sprintf(page, "%u %u\n", policy_node->first_master,
@@ -88,9 +89,10 @@ static ssize_t stp_policy_node_masters_show(struct stp_policy_node *policy_node,
 }
 
 static ssize_t
-stp_policy_node_masters_store(struct stp_policy_node *policy_node,
-			      const char *page, size_t count)
+stp_policy_node_masters_store(struct config_item *item, const char *page,
+			      size_t count)
 {
+	struct stp_policy_node *policy_node = to_stp_policy_node(item);
 	unsigned int first, last;
 	struct stm_device *stm;
 	char *p = (char *)page;
@@ -123,8 +125,9 @@ unlock:
 }
 
 static ssize_t
-stp_policy_node_channels_show(struct stp_policy_node *policy_node, char *page)
+stp_policy_node_channels_show(struct config_item *item, char *page)
 {
+	struct stp_policy_node *policy_node = to_stp_policy_node(item);
 	ssize_t count;
 
 	count = sprintf(page, "%u %u\n", policy_node->first_channel,
@@ -134,9 +137,10 @@ stp_policy_node_channels_show(struct stp_policy_node *policy_node, char *page)
 }
 
 static ssize_t
-stp_policy_node_channels_store(struct stp_policy_node *policy_node,
-			       const char *page, size_t count)
+stp_policy_node_channels_store(struct config_item *item, const char *page,
+			       size_t count)
 {
+	struct stp_policy_node *policy_node = to_stp_policy_node(item);
 	unsigned int first, last;
 	struct stm_device *stm;
 	char *p = (char *)page;
@@ -171,71 +175,16 @@ static void stp_policy_node_release(struct config_item *item)
 	kfree(to_stp_policy_node(item));
 }
 
-struct stp_policy_node_attribute {
-	struct configfs_attribute	attr;
-	ssize_t (*show)(struct stp_policy_node *, char *);
-	ssize_t (*store)(struct stp_policy_node *, const char *, size_t);
-};
-
-static ssize_t stp_policy_node_attr_show(struct config_item *item,
-					 struct configfs_attribute *attr,
-					 char *page)
-{
-	struct stp_policy_node *policy_node = to_stp_policy_node(item);
-	struct stp_policy_node_attribute *pn_attr =
-		container_of(attr, struct stp_policy_node_attribute, attr);
-	ssize_t count = 0;
-
-	if (pn_attr->show)
-		count = pn_attr->show(policy_node, page);
-
-	return count;
-}
-
-static ssize_t stp_policy_node_attr_store(struct config_item *item,
-					  struct configfs_attribute *attr,
-					  const char *page, size_t len)
-{
-	struct stp_policy_node *policy_node = to_stp_policy_node(item);
-	struct stp_policy_node_attribute *pn_attr =
-		container_of(attr, struct stp_policy_node_attribute, attr);
-	ssize_t count = -EINVAL;
-
-	if (pn_attr->store)
-		count = pn_attr->store(policy_node, page, len);
-
-	return count;
-}
-
 static struct configfs_item_operations stp_policy_node_item_ops = {
 	.release		= stp_policy_node_release,
-	.show_attribute		= stp_policy_node_attr_show,
-	.store_attribute	= stp_policy_node_attr_store,
 };
 
-static struct stp_policy_node_attribute stp_policy_node_attr_range = {
-	.attr	= {
-		.ca_owner = THIS_MODULE,
-		.ca_name = "masters",
-		.ca_mode = S_IRUGO | S_IWUSR,
-	},
-	.show	= stp_policy_node_masters_show,
-	.store	= stp_policy_node_masters_store,
-};
-
-static struct stp_policy_node_attribute stp_policy_node_attr_channels = {
-	.attr	= {
-		.ca_owner = THIS_MODULE,
-		.ca_name = "channels",
-		.ca_mode = S_IRUGO | S_IWUSR,
-	},
-	.show	= stp_policy_node_channels_show,
-	.store	= stp_policy_node_channels_store,
-};
+CONFIGFS_ATTR(stp_policy_node_, masters);
+CONFIGFS_ATTR(stp_policy_node_, channels);
 
 static struct configfs_attribute *stp_policy_node_attrs[] = {
-	&stp_policy_node_attr_range.attr,
-	&stp_policy_node_attr_channels.attr,
+	&stp_policy_node_attr_masters,
+	&stp_policy_node_attr_channels,
 	NULL,
 };
 
@@ -298,20 +247,8 @@ static struct config_item_type stp_policy_node_type = {
 /*
  * Root group: policies.
  */
-static struct configfs_attribute stp_policy_attr_device = {
-	.ca_owner = THIS_MODULE,
-	.ca_name = "device",
-	.ca_mode = S_IRUGO,
-};
-
-static struct configfs_attribute *stp_policy_attrs[] = {
-	&stp_policy_attr_device,
-	NULL,
-};
-
-static ssize_t stp_policy_attr_show(struct config_item *item,
-				    struct configfs_attribute *attr,
-				    char *page)
+static ssize_t stp_policy_device_show(struct config_item *item,
+				      char *page)
 {
 	struct stp_policy *policy = to_stp_policy(item);
 	ssize_t count;
@@ -324,6 +261,13 @@ static ssize_t stp_policy_attr_show(struct config_item *item,
 	return count;
 }
 
+CONFIGFS_ATTR_RO(stp_policy_, device);
+
+static struct configfs_attribute *stp_policy_attrs[] = {
+	&stp_policy_attr_device,
+	NULL,
+};
+
 void stp_policy_unbind(struct stp_policy *policy)
 {
 	struct stm_device *stm = policy->stm;
@@ -350,7 +294,6 @@ static void stp_policy_release(struct config_item *item)
 
 static struct configfs_item_operations stp_policy_item_ops = {
 	.release		= stp_policy_release,
-	.show_attribute		= stp_policy_attr_show,
 };
 
 static struct configfs_group_operations stp_policy_group_ops = {
-- 
2.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web