From 898e3214b3406c620571cedf704719784b0df049 Mon Sep 17 00:00:00 2001
From: Haicheng Li <redacted>
Date: Mon, 24 Sep 2012 15:52:30 +0800
Subject: [PATCH 1/2] Fix build error caused by broken PCH_PTP module
dependency.
The .config is:
CONFIG_PCH_GBE=y
CONFIG_PCH_PTP=y
CONFIG_PTP_1588_CLOCK=m
The build error:
Your patch submissions are of a very low quality.
And the main reason is that you microscopically look at problems and
do not investigate how the same thing might be handled elsewhere.
Therefore you will never become accustomed to the proper way problems
are fixed, and the proper way to submit patches.
Look at how other people submit patches, do any other patch submissions
look like your's having all of this metadata in the message body:
From 898e3214b3406c620571cedf704719784b0df049 Mon Sep 17 00:00:00 2001
From: Haicheng Li <redacted>
Date: Mon, 24 Sep 2012 15:52:30 +0800
Subject: [PATCH 1/2] Fix build error caused by broken PCH_PTP module
dependency.
No, nobody else does this.
As for this specific patch:
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
From: Haicheng Li <hidden> Date: 2012-09-28 06:41:46
On 09/28/2012 06:09 AM, David Miller wrote:
Look at how other people submit patches, do any other patch submissions
look like your's having all of this metadata in the message body:
I'm sorry for it.
As for this specific patch:
quoted
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
This case is a little bit tricky than usual, with PCH_PTP selected, the valid
config would be either "PTP_1588_CLOCK_PCH=PCH_GBE=m" or
"PTP_1588_CLOCK_PCH=PCH_GBE=y", and PTP_1588_CLOCK_PCH depends on PCH_GBE.
So are you ok with this:
+ depends on PTP_1588_CLOCK_PCH && (PCH_GBE=m || PTP_1588_CLOCK_PCH=y)
or simply like:
---
From: Haicheng Li <redacted>
Fix build error caused by broken PCH_PTP module dependency.
The .config is:
CONFIG_PCH_GBE=y
CONFIG_PCH_PTP=y
CONFIG_PTP_1588_CLOCK=m
The build error:
drivers/built-in.o: In function `pch_tx_timestamp':
.../pch_gbe_main.c:215: undefined reference to `pch_ch_event_read'
.../pch_gbe_main.c:225: undefined reference to `pch_tx_snap_read'
.../pch_gbe_main.c:231: undefined reference to `pch_ch_event_write'
.../pch_gbe_main.c:170: undefined reference to `pch_ch_event_read'
.../pch_gbe_main.c:175: undefined reference to `pch_src_uuid_lo_read'
.../pch_gbe_main.c:176: undefined reference to `pch_src_uuid_hi_read'
.../pch_gbe_main.c:190: undefined reference to `pch_ch_event_write'
.../pch_gbe_main.c:184: undefined reference to `pch_rx_snap_read'
.../pch_gbe_main.c:267: undefined reference to `pch_ch_control_write'
.../pch_gbe_main.c:271: undefined reference to `pch_ch_control_write'
.../pch_gbe_main.c:275: undefined reference to `pch_ch_control_write'
.../pch_gbe_main.c:281: undefined reference to `pch_ch_control_write'
.../pch_gbe_main.c:283: undefined reference to `pch_set_station_address'
.../pch_gbe_main.c:290: undefined reference to `pch_ch_event_write'
Signed-off-by: Haicheng Li <redacted>
---
drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Look at how other people submit patches, do any other patch
submissions
look like your's having all of this metadata in the message body:
I'm sorry for it.
quoted
As for this specific patch:
quoted
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
This case is a little bit tricky than usual, with PCH_PTP selected,
the valid config would be either "PTP_1588_CLOCK_PCH=PCH_GBE=m" or
"PTP_1588_CLOCK_PCH=PCH_GBE=y", and PTP_1588_CLOCK_PCH depends on
PCH_GBE.
And a simple "&& PCH_GBE" should accomplish this, no?
Look at how other people submit patches, do any other patch
submissions
look like your's having all of this metadata in the message body:
I'm sorry for it.
quoted
As for this specific patch:
quoted
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
This case is a little bit tricky than usual, with PCH_PTP selected,
the valid config would be either "PTP_1588_CLOCK_PCH=PCH_GBE=m" or
"PTP_1588_CLOCK_PCH=PCH_GBE=y", and PTP_1588_CLOCK_PCH depends on
PCH_GBE.
And a simple "&& PCH_GBE" should accomplish this, no?
No sir. it's actually same with the original Kconfig (by a if PCH_GBE"), it
just failed with this config:
CONFIG_PCH_GBE=y
CONFIG_PCH_PTP=y
CONFIG_PTP_1588_CLOCK=m
-haicheng
Look at how other people submit patches, do any other patch
submissions
look like your's having all of this metadata in the message body:
I'm sorry for it.
quoted
As for this specific patch:
quoted
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
This case is a little bit tricky than usual, with PCH_PTP selected,
the valid config would be either "PTP_1588_CLOCK_PCH=PCH_GBE=m" or
"PTP_1588_CLOCK_PCH=PCH_GBE=y", and PTP_1588_CLOCK_PCH depends on
PCH_GBE.
And a simple "&& PCH_GBE" should accomplish this, no?
No sir. it's actually same with the original Kconfig (by a if
PCH_GBE"), it just failed with this config:
CONFIG_PCH_GBE=y
CONFIG_PCH_PTP=y
CONFIG_PTP_1588_CLOCK=m
The correct fix is to make the Kconfig entry for PCH_PTP use
a "select PTP_1588_CLOCK" instead of "depends PTP_1588_CLOCK"
I'll apply this fix.
The is another, extremely convoluted, way to do this, which is
what the SFC driver does which is:
depends on SFC && PTP_1588_CLOCK && !(SFC=y && PTP_1588_CLOCK=m)
but that looks horrible to me.
Look at how other people submit patches, do any other patch
submissions
look like your's having all of this metadata in the message body:
I'm sorry for it.
quoted
As for this specific patch:
quoted
- depends on PTP_1588_CLOCK_PCH
+ depends on PTP_1588_CLOCK_PCH = PCH_GBE
This is not the correct way to ensure that the module'ness of one
config option meets the module'ness requirements of another.
The correct way is to say something like "&& (PCH_GBE || PCH_GBE=n)"
This case is a little bit tricky than usual, with PCH_PTP selected,
the valid config would be either "PTP_1588_CLOCK_PCH=PCH_GBE=m" or
"PTP_1588_CLOCK_PCH=PCH_GBE=y", and PTP_1588_CLOCK_PCH depends on
PCH_GBE.
And a simple "&& PCH_GBE" should accomplish this, no?
No sir. it's actually same with the original Kconfig (by a if
PCH_GBE"), it just failed with this config:
CONFIG_PCH_GBE=y
CONFIG_PCH_PTP=y
CONFIG_PTP_1588_CLOCK=m
The correct fix is to make the Kconfig entry for PCH_PTP use
a "select PTP_1588_CLOCK" instead of "depends PTP_1588_CLOCK"
I'll apply this fix.
The is another, extremely convoluted, way to do this, which is
what the SFC driver does which is:
depends on SFC && PTP_1588_CLOCK && !(SFC=y && PTP_1588_CLOCK=m)
but that looks horrible to me.
I thought of it as being a peripheral feature (which most Solarflare
hardware doesn't implement) so it made sense for SFC_PTP to be optional
like SFC_MTD and so on. But I'm quite happy to use a select instead, if
you want that to be the convention for all drivers implementing PHC.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
From: David Miller <davem@davemloft.net> Date: 2012-10-04 00:43:42
From: Ben Hutchings <redacted>
Date: Wed, 3 Oct 2012 22:45:10 +0100
I thought of it as being a peripheral feature (which most Solarflare
hardware doesn't implement) so it made sense for SFC_PTP to be optional
like SFC_MTD and so on. But I'm quite happy to use a select instead, if
you want that to be the convention for all drivers implementing PHC.
I think that consistency might trump those conerns you mentioned, at
least in this case.
From: Ben Hutchings <hidden> Date: 2012-10-16 20:09:37
On Wed, 2012-10-03 at 20:43 -0400, David Miller wrote:
From: Ben Hutchings <redacted>
Date: Wed, 3 Oct 2012 22:45:10 +0100
quoted
I thought of it as being a peripheral feature (which most Solarflare
hardware doesn't implement) so it made sense for SFC_PTP to be optional
like SFC_MTD and so on. But I'm quite happy to use a select instead, if
you want that to be the convention for all drivers implementing PHC.
I think that consistency might trump those conerns you mentioned, at
least in this case.
Currently such kconfig options look like, for example:
config IGB_PTP
bool "PTP Hardware Clock (PHC)"
default n
depends on IGB && EXPERIMENTAL
select PPS
select PTP_1588_CLOCK
---help---
Say Y here if you want to use PTP Hardware Clock (PHC) in the
driver. Only the basic clock operations have been implemented.
Every timestamp and clock read operations must consult the
overflow counter to form a correct time value.
There are a number of problems with this:
1. PTP_1588_CLOCK depends on PPS, so this has to select it as well.
2. PPS and PTP_1588_CLOCK depend on EXPERIMENTAL, so this has to as
well.
3. It's a boolean, so whatever it selects is built-in, even though the
driver it relates to may be a module.
I think the various kconfig options should be changed as follows:
1. Only PTP_1588_CLOCK selects PPS.
2. Nothing depends on EXPERIMENTAL. (This stuff has been in for 18
months and it's even being backported to RHEL 6 now.)
3. Either:
(a) The per-driver PHC options select nothing, and the driver options
do e.g.:
select PTP_1588_CLOCK if IGB_PTP
(b) The per-driver PHC options are removed and the driver options do:
select PTP_1588_CLOCK
(i.e. PHC support is unconditional)
Any objections to this, or preference for (a) vs (b)?
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
From: David Miller <davem@davemloft.net> Date: 2012-10-16 20:17:24
From: Ben Hutchings <redacted>
Date: Tue, 16 Oct 2012 21:09:27 +0100
I think the various kconfig options should be changed as follows:
1. Only PTP_1588_CLOCK selects PPS.
2. Nothing depends on EXPERIMENTAL. (This stuff has been in for 18
months and it's even being backported to RHEL 6 now.)
3. Either:
(a) The per-driver PHC options select nothing, and the driver options
do e.g.:
select PTP_1588_CLOCK if IGB_PTP
(b) The per-driver PHC options are removed and the driver options do:
select PTP_1588_CLOCK
(i.e. PHC support is unconditional)
Any objections to this, or preference for (a) vs (b)?
From: "Keller, Jacob E" <jacob.e.keller@intel.com> Date: 2012-10-16 21:08:25
-----Original Message-----
From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
On Behalf Of David Miller
Sent: Tuesday, October 16, 2012 1:17 PM
To: bhutchings@solarflare.com
Cc: richardcochran@gmail.com; haicheng.li@linux.intel.com;
netdev@vger.kernel.org; tshimizu818@gmail.com; linux-
kernel@vger.kernel.org; haicheng.lee@gmail.com
Subject: Re: [PATCH 1/2] Fix build error caused by broken PCH_PTP module
dependency.
From: Ben Hutchings <redacted>
Date: Tue, 16 Oct 2012 21:09:27 +0100
quoted
I think the various kconfig options should be changed as follows:
1. Only PTP_1588_CLOCK selects PPS.
2. Nothing depends on EXPERIMENTAL. (This stuff has been in for 18
months and it's even being backported to RHEL 6 now.)
3. Either:
(a) The per-driver PHC options select nothing, and the driver options
do e.g.:
select PTP_1588_CLOCK if IGB_PTP
(b) The per-driver PHC options are removed and the driver options do:
select PTP_1588_CLOCK
(i.e. PHC support is unconditional)
Any objections to this, or preference for (a) vs (b)?
No objections, prefer (b).
No objections here, I also prefer (b). The feature shouldn't have much impact unless enabled via hwtstamp_ioctl, and it drastically reduces requirement on end-user needing to enable PHC support.
- Jake
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html