Re: [PATCH 06/44 take 2] [UBI] startup code

2007-05-17 Thread Artem Bityutskiy
Christoph,

On Thu, 2007-05-17 at 15:44 +0100, Christoph Hellwig wrote:
> So both I and Rusty told you not to do this and you did it anyway.
> 
> I'm quite pissed about this ignorance.  Andrew, what do we do about such
> a case?  Should we just revert ubi until they fixed their mess up?

Just for reference: http://lkml.org/lkml/2007/2/19/67

Sorry, I thought Rusty meant that we can use it if we invent our own
type, see the first part of his answer. You did not answer Frank's mail
about _why_ we use it. So I thought you agreed with us, I did not ignore
you, no need to be so assertive.

It is not a problem to fix this, but neither Rusty nor you explained
what is wrong with that call. But we _did_ explain why we use it. You
ignored the explanation and the questions.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-05-17 Thread Christoph Hellwig
On Sun, Feb 25, 2007 at 05:58:28AM +, Christoph Hellwig wrote:
> > Why not? We tried to avoid this but found out that this is the most
> > decent interface. Specific advises are welcome.
> 
> because this type of compount interface is really painful for the user.
> the module.param=foo syntax makes sure paramaters can be used without
> endless documentation for each and every single of them, and makes
> sure module writers don't introduce bugs in their own parser 
> reimplementations.
> 
> Rusty, was it intentional that drivers can use __module_param_call?
> Do you think the ubi use here is okay?

So both I and Rusty told you not to do this and you did it anyway.

I'm quite pissed about this ignorance.  Andrew, what do we do about such
a case?  Should we just revert ubi until they fixed their mess up?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-05-17 Thread Christoph Hellwig
On Sun, Feb 25, 2007 at 05:58:28AM +, Christoph Hellwig wrote:
  Why not? We tried to avoid this but found out that this is the most
  decent interface. Specific advises are welcome.
 
 because this type of compount interface is really painful for the user.
 the module.param=foo syntax makes sure paramaters can be used without
 endless documentation for each and every single of them, and makes
 sure module writers don't introduce bugs in their own parser 
 reimplementations.
 
 Rusty, was it intentional that drivers can use __module_param_call?
 Do you think the ubi use here is okay?

So both I and Rusty told you not to do this and you did it anyway.

I'm quite pissed about this ignorance.  Andrew, what do we do about such
a case?  Should we just revert ubi until they fixed their mess up?
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-05-17 Thread Artem Bityutskiy
Christoph,

On Thu, 2007-05-17 at 15:44 +0100, Christoph Hellwig wrote:
 So both I and Rusty told you not to do this and you did it anyway.
 
 I'm quite pissed about this ignorance.  Andrew, what do we do about such
 a case?  Should we just revert ubi until they fixed their mess up?

Just for reference: http://lkml.org/lkml/2007/2/19/67

Sorry, I thought Rusty meant that we can use it if we invent our own
type, see the first part of his answer. You did not answer Frank's mail
about _why_ we use it. So I thought you agreed with us, I did not ignore
you, no need to be so assertive.

It is not a problem to fix this, but neither Rusty nor you explained
what is wrong with that call. But we _did_ explain why we use it. You
ignored the explanation and the questions.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-03-05 Thread Frank Haverkamp
Hi Rusty,

On Mon, 2007-02-26 at 09:03 +1100, Rusty Russell wrote:
> On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
> > On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
> > > > > +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
> > > > > +MODULE_PARM_DESC(mtd, "MTD devices to attach. Parameter format: "
> > > > > +   "mtd=[,,]. "
> > > > > +   "Multiple \"mtd\" parameters may be specified.\n"
> > > > > +   "MTD devices may be specified by their number or 
> > > > > name. "
> > > > > +   "Optional \"vid_hdr_offs\" and \"data_offs\" 
> > > > > parameters "
> > > > > +   "specify UBI VID header position and data 
> > > > > starting "
> > > > > +   "position to be used by UBI.\n"
> > > > > +   "Example: mtd=content,1984,2048 mtd=4 - attach 
> > > > > MTD device"
> > > > > +   "with name content using VID header offset 1984 
> > > > > and data "
> > > > > +   "start 2048, and MTD device number 4 using 
> > > > > default "
> > > > > +   "offsets");
> > > > 

> The reason drivers can use __module_param_call is that they can
> implement their own "types" for module parameters, which will end up
> requiring this.
> 
> Using it directly is only really for backwards compatibility (which is
> important!), but for new parameters, this multi-part self-parsing is
> nasty.  Standard (but admittedly suboptimal) way to do this is having
> three parameters module_param_array(name, ...),
> module_param_array(header_offset, ...),
> module_param_array(data_start, ...).

we wanted to be able to ommit some of the parameters and let UBI use
resonable defaults if needed.

Example where we wanted to explicitly overwrite the offset parameters:
  mtd=content,1984,2048

Example where we did not want it but let instead UBI figure out
resonable parameters:
  mtd=4

With the three arrays we did not see a nice way of achieving this.

  ubimtds=content,4,7
  hdroffs=1984,?,1984
  dataoff=s2048,?,2048

The ? look odd, don't they?

We also looked at the slram parameters which are like this:

  slram=name0,addr0,+size0,name1,addr1,+size1

and found that if we wanted to add one more parameter e.g. width it
cause likely an interface change:

  slram=name0,addr0,+size0,width0,name1,addr1,+size1,width1

Finally we found that we liked the phram parameter parsing (which is
essentially the same) and did it similar to that.

Frank


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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-03-05 Thread Frank Haverkamp
Hi Rusty,

On Mon, 2007-02-26 at 09:03 +1100, Rusty Russell wrote:
 On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
  On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
 +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
 +MODULE_PARM_DESC(mtd, MTD devices to attach. Parameter format: 
 +   mtd=name|num[,vid_hdr_offs,data_offs]. 
 +   Multiple \mtd\ parameters may be specified.\n
 +   MTD devices may be specified by their number or 
 name. 
 +   Optional \vid_hdr_offs\ and \data_offs\ 
 parameters 
 +   specify UBI VID header position and data 
 starting 
 +   position to be used by UBI.\n
 +   Example: mtd=content,1984,2048 mtd=4 - attach 
 MTD device
 +   with name content using VID header offset 1984 
 and data 
 +   start 2048, and MTD device number 4 using 
 default 
 +   offsets);


 The reason drivers can use __module_param_call is that they can
 implement their own types for module parameters, which will end up
 requiring this.
 
 Using it directly is only really for backwards compatibility (which is
 important!), but for new parameters, this multi-part self-parsing is
 nasty.  Standard (but admittedly suboptimal) way to do this is having
 three parameters module_param_array(name, ...),
 module_param_array(header_offset, ...),
 module_param_array(data_start, ...).

we wanted to be able to ommit some of the parameters and let UBI use
resonable defaults if needed.

Example where we wanted to explicitly overwrite the offset parameters:
  mtd=content,1984,2048

Example where we did not want it but let instead UBI figure out
resonable parameters:
  mtd=4

With the three arrays we did not see a nice way of achieving this.

  ubimtds=content,4,7
  hdroffs=1984,?,1984
  dataoff=s2048,?,2048

The ? look odd, don't they?

We also looked at the slram parameters which are like this:

  slram=name0,addr0,+size0,name1,addr1,+size1

and found that if we wanted to add one more parameter e.g. width it
cause likely an interface change:

  slram=name0,addr0,+size0,width0,name1,addr1,+size1,width1

Finally we found that we liked the phram parameter parsing (which is
essentially the same) and did it similar to that.

Frank


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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-26 Thread Artem Bityutskiy
On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
> because this type of compount interface is really painful for the user.
> the module.param=foo syntax makes sure paramaters can be used without
> endless documentation for each and every single of them, and makes
> sure module writers don't introduce bugs in their own parser 
> reimplementations.

I stand that without the use this function the interface is much worse.
I will be grateful if you advice something better.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-26 Thread Artem Bityutskiy
On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
 because this type of compount interface is really painful for the user.
 the module.param=foo syntax makes sure paramaters can be used without
 endless documentation for each and every single of them, and makes
 sure module writers don't introduce bugs in their own parser 
 reimplementations.

I stand that without the use this function the interface is much worse.
I will be grateful if you advice something better.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-25 Thread Rusty Russell
On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
> On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
> > > > +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
> > > > +MODULE_PARM_DESC(mtd, "MTD devices to attach. Parameter format: "
> > > > + "mtd=[,,]. "
> > > > + "Multiple \"mtd\" parameters may be specified.\n"
> > > > + "MTD devices may be specified by their number or 
> > > > name. "
> > > > + "Optional \"vid_hdr_offs\" and \"data_offs\" 
> > > > parameters "
> > > > + "specify UBI VID header position and data 
> > > > starting "
> > > > + "position to be used by UBI.\n"
> > > > + "Example: mtd=content,1984,2048 mtd=4 - attach 
> > > > MTD device"
> > > > + "with name content using VID header offset 1984 
> > > > and data "
> > > > + "start 2048, and MTD device number 4 using 
> > > > default "
> > > > + "offsets");
> > > 
> > > This is a very odd paramater interface.  We really don't want drivers to 
> > > use
> > > module_param_call directly.  You probably want various module_param_array 
> > > calls
> > > instead.
> > 
> > Why not? We tried to avoid this but found out that this is the most
> > decent interface. Specific advises are welcome.
> 
> because this type of compount interface is really painful for the user.
> the module.param=foo syntax makes sure paramaters can be used without
> endless documentation for each and every single of them, and makes
> sure module writers don't introduce bugs in their own parser 
> reimplementations.
> 
> Rusty, was it intentional that drivers can use __module_param_call?
> Do you think the ubi use here is okay?

The reason drivers can use __module_param_call is that they can
implement their own "types" for module parameters, which will end up
requiring this.

Using it directly is only really for backwards compatibility (which is
important!), but for new parameters, this multi-part self-parsing is
nasty.  Standard (but admittedly suboptimal) way to do this is having
three parameters module_param_array(name, ...),
module_param_array(header_offset, ...),
module_param_array(data_start, ...).

Hope that helps,
Rusty.



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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-25 Thread Rusty Russell
On Sun, 2007-02-25 at 05:58 +, Christoph Hellwig wrote:
 On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
+module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
+MODULE_PARM_DESC(mtd, MTD devices to attach. Parameter format: 
+ mtd=name|num[,vid_hdr_offs,data_offs]. 
+ Multiple \mtd\ parameters may be specified.\n
+ MTD devices may be specified by their number or 
name. 
+ Optional \vid_hdr_offs\ and \data_offs\ 
parameters 
+ specify UBI VID header position and data 
starting 
+ position to be used by UBI.\n
+ Example: mtd=content,1984,2048 mtd=4 - attach 
MTD device
+ with name content using VID header offset 1984 
and data 
+ start 2048, and MTD device number 4 using 
default 
+ offsets);
   
   This is a very odd paramater interface.  We really don't want drivers to 
   use
   module_param_call directly.  You probably want various module_param_array 
   calls
   instead.
  
  Why not? We tried to avoid this but found out that this is the most
  decent interface. Specific advises are welcome.
 
 because this type of compount interface is really painful for the user.
 the module.param=foo syntax makes sure paramaters can be used without
 endless documentation for each and every single of them, and makes
 sure module writers don't introduce bugs in their own parser 
 reimplementations.
 
 Rusty, was it intentional that drivers can use __module_param_call?
 Do you think the ubi use here is okay?

The reason drivers can use __module_param_call is that they can
implement their own types for module parameters, which will end up
requiring this.

Using it directly is only really for backwards compatibility (which is
important!), but for new parameters, this multi-part self-parsing is
nasty.  Standard (but admittedly suboptimal) way to do this is having
three parameters module_param_array(name, ...),
module_param_array(header_offset, ...),
module_param_array(data_start, ...).

Hope that helps,
Rusty.



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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-24 Thread Christoph Hellwig
On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
> > > +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
> > > +MODULE_PARM_DESC(mtd, "MTD devices to attach. Parameter format: "
> > > +   "mtd=[,,]. "
> > > +   "Multiple \"mtd\" parameters may be specified.\n"
> > > +   "MTD devices may be specified by their number or name. "
> > > +   "Optional \"vid_hdr_offs\" and \"data_offs\" parameters "
> > > +   "specify UBI VID header position and data starting "
> > > +   "position to be used by UBI.\n"
> > > +   "Example: mtd=content,1984,2048 mtd=4 - attach MTD device"
> > > +   "with name content using VID header offset 1984 and data "
> > > +   "start 2048, and MTD device number 4 using default "
> > > +   "offsets");
> > 
> > This is a very odd paramater interface.  We really don't want drivers to use
> > module_param_call directly.  You probably want various module_param_array 
> > calls
> > instead.
> 
> Why not? We tried to avoid this but found out that this is the most
> decent interface. Specific advises are welcome.

because this type of compount interface is really painful for the user.
the module.param=foo syntax makes sure paramaters can be used without
endless documentation for each and every single of them, and makes
sure module writers don't introduce bugs in their own parser reimplementations.

Rusty, was it intentional that drivers can use __module_param_call?
Do you think the ubi use here is okay?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-24 Thread Christoph Hellwig
On Tue, Feb 20, 2007 at 03:00:56PM +0200, Artem Bityutskiy wrote:
   +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
   +MODULE_PARM_DESC(mtd, MTD devices to attach. Parameter format: 
   +   mtd=name|num[,vid_hdr_offs,data_offs]. 
   +   Multiple \mtd\ parameters may be specified.\n
   +   MTD devices may be specified by their number or name. 
   +   Optional \vid_hdr_offs\ and \data_offs\ parameters 
   +   specify UBI VID header position and data starting 
   +   position to be used by UBI.\n
   +   Example: mtd=content,1984,2048 mtd=4 - attach MTD device
   +   with name content using VID header offset 1984 and data 
   +   start 2048, and MTD device number 4 using default 
   +   offsets);
  
  This is a very odd paramater interface.  We really don't want drivers to use
  module_param_call directly.  You probably want various module_param_array 
  calls
  instead.
 
 Why not? We tried to avoid this but found out that this is the most
 decent interface. Specific advises are welcome.

because this type of compount interface is really painful for the user.
the module.param=foo syntax makes sure paramaters can be used without
endless documentation for each and every single of them, and makes
sure module writers don't introduce bugs in their own parser reimplementations.

Rusty, was it intentional that drivers can use __module_param_call?
Do you think the ubi use here is okay?
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-23 Thread Artem Bityutskiy
On Tue, 2007-02-20 at 15:00 +0200, Artem Bityutskiy wrote:
> > This looks very odd.
> 
> What exactly?

I see, will be fixed, thanks.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-23 Thread Artem Bityutskiy
On Tue, 2007-02-20 at 15:00 +0200, Artem Bityutskiy wrote:
  This looks very odd.
 
 What exactly?

I see, will be fixed, thanks.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-20 Thread Artem Bityutskiy
On Mon, 2007-02-19 at 10:59 +, Christoph Hellwig wrote:
> On Sat, Feb 17, 2007 at 06:54:54PM +0200, Artem Bityutskiy wrote:
> > +/* UBI headers must take 64 bytes. The below is a hacky way to ensure this 
> > */
> > +static int __ubi_check_ec_hdr_size[(UBI_EC_HDR_SIZE == 64) - 1]
> > +__attribute__ ((__unused__));
> > +static int __ubi_check_ec_hdr_size[(UBI_VID_HDR_SIZE == 64) - 1]
> > +__attribute__ ((__unused__));
> 
> please use BUILD_BUG_ON instead.

Will be done, thanks.

> > +
> > +static int ubi_attach_mtd_dev(const char *mtd_dev, int vid_hdr_offset,
> > + int data_offset);
> > +static void ubi_destroy_dev(int ubi_num);
> 
> Can you reorder the code to avoid all these forward declarations please?

Could you please submit a CodingStyle patch that would contain a
requirement to use the "higher-level functions at the bottom,
lower-layer at top"? Because I just use the opposite.

> > +   /* Attach MTD devices */
> > +   for (i = 0; i < mtd_devs; i++) {
> > +   struct mtd_dev_param *p = _dev_param[i];
> > +
> > +   cond_resched();
> > +   err = -EINVAL;
> 
> This looks very odd.

What exactly?

> > +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
> > +MODULE_PARM_DESC(mtd, "MTD devices to attach. Parameter format: "
> > + "mtd=[,,]. "
> > + "Multiple \"mtd\" parameters may be specified.\n"
> > + "MTD devices may be specified by their number or name. "
> > + "Optional \"vid_hdr_offs\" and \"data_offs\" parameters "
> > + "specify UBI VID header position and data starting "
> > + "position to be used by UBI.\n"
> > + "Example: mtd=content,1984,2048 mtd=4 - attach MTD device"
> > + "with name content using VID header offset 1984 and data "
> > + "start 2048, and MTD device number 4 using default "
> > + "offsets");
> 
> This is a very odd paramater interface.  We really don't want drivers to use
> module_param_call directly.  You probably want various module_param_array 
> calls
> instead.

Why not? We tried to avoid this but found out that this is the most
decent interface. Specific advises are welcome.

Thank you,
Artem.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-20 Thread Artem Bityutskiy
On Mon, 2007-02-19 at 10:59 +, Christoph Hellwig wrote:
 On Sat, Feb 17, 2007 at 06:54:54PM +0200, Artem Bityutskiy wrote:
  +/* UBI headers must take 64 bytes. The below is a hacky way to ensure this 
  */
  +static int __ubi_check_ec_hdr_size[(UBI_EC_HDR_SIZE == 64) - 1]
  +__attribute__ ((__unused__));
  +static int __ubi_check_ec_hdr_size[(UBI_VID_HDR_SIZE == 64) - 1]
  +__attribute__ ((__unused__));
 
 please use BUILD_BUG_ON instead.

Will be done, thanks.

  +
  +static int ubi_attach_mtd_dev(const char *mtd_dev, int vid_hdr_offset,
  + int data_offset);
  +static void ubi_destroy_dev(int ubi_num);
 
 Can you reorder the code to avoid all these forward declarations please?

Could you please submit a CodingStyle patch that would contain a
requirement to use the higher-level functions at the bottom,
lower-layer at top? Because I just use the opposite.

  +   /* Attach MTD devices */
  +   for (i = 0; i  mtd_devs; i++) {
  +   struct mtd_dev_param *p = mtd_dev_param[i];
  +
  +   cond_resched();
  +   err = -EINVAL;
 
 This looks very odd.

What exactly?

  +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
  +MODULE_PARM_DESC(mtd, MTD devices to attach. Parameter format: 
  + mtd=name|num[,vid_hdr_offs,data_offs]. 
  + Multiple \mtd\ parameters may be specified.\n
  + MTD devices may be specified by their number or name. 
  + Optional \vid_hdr_offs\ and \data_offs\ parameters 
  + specify UBI VID header position and data starting 
  + position to be used by UBI.\n
  + Example: mtd=content,1984,2048 mtd=4 - attach MTD device
  + with name content using VID header offset 1984 and data 
  + start 2048, and MTD device number 4 using default 
  + offsets);
 
 This is a very odd paramater interface.  We really don't want drivers to use
 module_param_call directly.  You probably want various module_param_array 
 calls
 instead.

Why not? We tried to avoid this but found out that this is the most
decent interface. Specific advises are welcome.

Thank you,
Artem.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-19 Thread Christoph Hellwig
On Sat, Feb 17, 2007 at 06:54:54PM +0200, Artem Bityutskiy wrote:
> +/* UBI headers must take 64 bytes. The below is a hacky way to ensure this */
> +static int __ubi_check_ec_hdr_size[(UBI_EC_HDR_SIZE == 64) - 1]
> +__attribute__ ((__unused__));
> +static int __ubi_check_ec_hdr_size[(UBI_VID_HDR_SIZE == 64) - 1]
> +__attribute__ ((__unused__));

please use BUILD_BUG_ON instead.

> +
> +static int ubi_attach_mtd_dev(const char *mtd_dev, int vid_hdr_offset,
> +   int data_offset);
> +static void ubi_destroy_dev(int ubi_num);

Can you reorder the code to avoid all these forward declarations please?

> + /* Attach MTD devices */
> + for (i = 0; i < mtd_devs; i++) {
> + struct mtd_dev_param *p = _dev_param[i];
> +
> + cond_resched();
> + err = -EINVAL;

This looks very odd.

> +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
> +MODULE_PARM_DESC(mtd, "MTD devices to attach. Parameter format: "
> +   "mtd=[,,]. "
> +   "Multiple \"mtd\" parameters may be specified.\n"
> +   "MTD devices may be specified by their number or name. "
> +   "Optional \"vid_hdr_offs\" and \"data_offs\" parameters "
> +   "specify UBI VID header position and data starting "
> +   "position to be used by UBI.\n"
> +   "Example: mtd=content,1984,2048 mtd=4 - attach MTD device"
> +   "with name content using VID header offset 1984 and data "
> +   "start 2048, and MTD device number 4 using default "
> +   "offsets");

This is a very odd paramater interface.  We really don't want drivers to use
module_param_call directly.  You probably want various module_param_array calls
instead.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 06/44 take 2] [UBI] startup code

2007-02-19 Thread Christoph Hellwig
On Sat, Feb 17, 2007 at 06:54:54PM +0200, Artem Bityutskiy wrote:
 +/* UBI headers must take 64 bytes. The below is a hacky way to ensure this */
 +static int __ubi_check_ec_hdr_size[(UBI_EC_HDR_SIZE == 64) - 1]
 +__attribute__ ((__unused__));
 +static int __ubi_check_ec_hdr_size[(UBI_VID_HDR_SIZE == 64) - 1]
 +__attribute__ ((__unused__));

please use BUILD_BUG_ON instead.

 +
 +static int ubi_attach_mtd_dev(const char *mtd_dev, int vid_hdr_offset,
 +   int data_offset);
 +static void ubi_destroy_dev(int ubi_num);

Can you reorder the code to avoid all these forward declarations please?

 + /* Attach MTD devices */
 + for (i = 0; i  mtd_devs; i++) {
 + struct mtd_dev_param *p = mtd_dev_param[i];
 +
 + cond_resched();
 + err = -EINVAL;

This looks very odd.

 +module_param_call(mtd, ubi_mtd_param_parse, NULL, NULL, 000);
 +MODULE_PARM_DESC(mtd, MTD devices to attach. Parameter format: 
 +   mtd=name|num[,vid_hdr_offs,data_offs]. 
 +   Multiple \mtd\ parameters may be specified.\n
 +   MTD devices may be specified by their number or name. 
 +   Optional \vid_hdr_offs\ and \data_offs\ parameters 
 +   specify UBI VID header position and data starting 
 +   position to be used by UBI.\n
 +   Example: mtd=content,1984,2048 mtd=4 - attach MTD device
 +   with name content using VID header offset 1984 and data 
 +   start 2048, and MTD device number 4 using default 
 +   offsets);

This is a very odd paramater interface.  We really don't want drivers to use
module_param_call directly.  You probably want various module_param_array calls
instead.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/