linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] acornscsi: remove linked command support
@ 2014-05-24 10:13 Paul Bolle
  2014-05-24 10:35 ` Hannes Reinecke
  2014-05-28 10:41 ` Christoph Hellwig
  0 siblings, 2 replies; 9+ messages in thread
From: Paul Bolle @ 2014-05-24 10:13 UTC (permalink / raw)
  To: Russell King, James E.J. Bottomley
  Cc: linux-arm-kernel, linux-scsi, linux-kernel

The acornscsi driver was added in v2.1.88. It has always #undef-ed
CONFIG_SCSI_ACORNSCSI_LINK near the top of acornscsi.c. And, just to be
sure, it has also always triggered a preprocessor error if
CONFIG_SCSI_ACORNSCSI_LINK was still defined. But, as far as I can see,
it has never even been possible to set SCSI_ACORNSCSI_LINK through
kconfig, or its predecessors, in the first place.

Let's remove the code involved.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
---
Untested.

Also interesting: SCSI_ACORNSCSI_TAGGED_QUEUE can be set through
kconfig, but its macro will be #undef-ed at the top of acornscsi.c. I
suppose that #undef could be dropped.

And finally: CONFIG_ACORNSCSI_CONSTANTS has to be set manually. But if
we'd just drop the CONFIG_ prefix acornscsi.c would become a pet peeve
free zone.

 drivers/scsi/arm/acornscsi.c | 53 --------------------------------------------
 1 file changed, 53 deletions(-)

diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index 059ff477a398..2e797a367608 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -62,13 +62,6 @@
  */
 #undef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
 /*
- * SCSI-II Linked command support.
- *
- * The higher level code doesn't support linked commands yet, and so the option
- * is undef'd here.
- */
-#undef CONFIG_SCSI_ACORNSCSI_LINK
-/*
  * SCSI-II Synchronous transfer support.
  *
  * Tried and tested...
@@ -160,10 +153,6 @@
 #error "Yippee!  ABORT TAG is now defined!  Remove this error!"
 #endif
 
-#ifdef CONFIG_SCSI_ACORNSCSI_LINK
-#error SCSI2 LINKed commands not supported (yet)!
-#endif
-
 #ifdef USE_DMAC
 /*
  * DMAC setup parameters
@@ -1668,42 +1657,6 @@ void acornscsi_message(AS_Host *host)
 	}
 	break;
 
-#ifdef CONFIG_SCSI_ACORNSCSI_LINK
-    case LINKED_CMD_COMPLETE:
-    case LINKED_FLG_CMD_COMPLETE:
-	/*
-	 * We don't support linked commands yet
-	 */
-	if (0) {
-#if (DEBUG & DEBUG_LINK)
-	    printk("scsi%d.%c: lun %d tag %d linked command complete\n",
-		    host->host->host_no, acornscsi_target(host), host->SCpnt->tag);
-#endif
-	    /*
-	     * A linked command should only terminate with one of these messages
-	     * if there are more linked commands available.
-	     */
-	    if (!host->SCpnt->next_link) {
-		printk(KERN_WARNING "scsi%d.%c: lun %d tag %d linked command complete, but no next_link\n",
-			instance->host_no, acornscsi_target(host), host->SCpnt->tag);
-		acornscsi_sbic_issuecmd(host, CMND_ASSERTATN);
-		msgqueue_addmsg(&host->scsi.msgs, 1, ABORT);
-	    } else {
-		struct scsi_cmnd *SCpnt = host->SCpnt;
-
-		acornscsi_dma_cleanup(host);
-
-		host->SCpnt = host->SCpnt->next_link;
-		host->SCpnt->tag = SCpnt->tag;
-		SCpnt->result = DID_OK | host->scsi.SCp.Message << 8 | host->Scsi.SCp.Status;
-		SCpnt->done(SCpnt);
-
-		/* initialise host->SCpnt->SCp */
-	    }
-	    break;
-	}
-#endif
-
     default: /* reject message */
 	printk(KERN_ERR "scsi%d.%c: unrecognised message %02X, rejecting\n",
 		host->host->host_no, acornscsi_target(host),
@@ -2825,9 +2778,6 @@ char *acornscsi_info(struct Scsi_Host *host)
 #ifdef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
     " TAG"
 #endif
-#ifdef CONFIG_SCSI_ACORNSCSI_LINK
-    " LINK"
-#endif
 #if (DEBUG & DEBUG_NO_WRITE)
     " NOWRITE (" __stringify(NO_WRITE) ")"
 #endif
@@ -2851,9 +2801,6 @@ static int acornscsi_show_info(struct seq_file *m, struct Scsi_Host *instance)
 #ifdef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
     " TAG"
 #endif
-#ifdef CONFIG_SCSI_ACORNSCSI_LINK
-    " LINK"
-#endif
 #if (DEBUG & DEBUG_NO_WRITE)
     " NOWRITE (" __stringify(NO_WRITE) ")"
 #endif
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-24 10:13 [PATCH] acornscsi: remove linked command support Paul Bolle
@ 2014-05-24 10:35 ` Hannes Reinecke
  2014-05-24 12:13   ` James Bottomley
  2014-05-28 10:41 ` Christoph Hellwig
  1 sibling, 1 reply; 9+ messages in thread
From: Hannes Reinecke @ 2014-05-24 10:35 UTC (permalink / raw)
  To: Paul Bolle, Russell King, James E.J. Bottomley
  Cc: linux-arm-kernel, linux-scsi, linux-kernel

On 05/24/2014 12:13 PM, Paul Bolle wrote:
> The acornscsi driver was added in v2.1.88. It has always #undef-ed
> CONFIG_SCSI_ACORNSCSI_LINK near the top of acornscsi.c. And, just to be
> sure, it has also always triggered a preprocessor error if
> CONFIG_SCSI_ACORNSCSI_LINK was still defined. But, as far as I can see,
> it has never even been possible to set SCSI_ACORNSCSI_LINK through
> kconfig, or its predecessors, in the first place.
>
> Let's remove the code involved.
>
> Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
> ---
> Untested.
>
> Also interesting: SCSI_ACORNSCSI_TAGGED_QUEUE can be set through
> kconfig, but its macro will be #undef-ed at the top of acornscsi.c. I
> suppose that #undef could be dropped.
>
> And finally: CONFIG_ACORNSCSI_CONSTANTS has to be set manually. But if
> we'd just drop the CONFIG_ prefix acornscsi.c would become a pet peeve
> free zone.
>
>   drivers/scsi/arm/acornscsi.c | 53 --------------------------------------------
>   1 file changed, 53 deletions(-)
>
> diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
> index 059ff477a398..2e797a367608 100644
> --- a/drivers/scsi/arm/acornscsi.c
> +++ b/drivers/scsi/arm/acornscsi.c
> @@ -62,13 +62,6 @@
>    */
>   #undef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
>   /*
> - * SCSI-II Linked command support.
> - *
> - * The higher level code doesn't support linked commands yet, and so the option
> - * is undef'd here.
> - */
> -#undef CONFIG_SCSI_ACORNSCSI_LINK
> -/*
>    * SCSI-II Synchronous transfer support.
>    *
>    * Tried and tested...
> @@ -160,10 +153,6 @@
>   #error "Yippee!  ABORT TAG is now defined!  Remove this error!"
>   #endif
>
> -#ifdef CONFIG_SCSI_ACORNSCSI_LINK
> -#error SCSI2 LINKed commands not supported (yet)!
> -#endif
> -
>   #ifdef USE_DMAC
>   /*
>    * DMAC setup parameters
> @@ -1668,42 +1657,6 @@ void acornscsi_message(AS_Host *host)
>   	}
>   	break;
>
> -#ifdef CONFIG_SCSI_ACORNSCSI_LINK
> -    case LINKED_CMD_COMPLETE:
> -    case LINKED_FLG_CMD_COMPLETE:
> -	/*
> -	 * We don't support linked commands yet
> -	 */
> -	if (0) {
> -#if (DEBUG & DEBUG_LINK)
> -	    printk("scsi%d.%c: lun %d tag %d linked command complete\n",
> -		    host->host->host_no, acornscsi_target(host), host->SCpnt->tag);
> -#endif
> -	    /*
> -	     * A linked command should only terminate with one of these messages
> -	     * if there are more linked commands available.
> -	     */
> -	    if (!host->SCpnt->next_link) {
> -		printk(KERN_WARNING "scsi%d.%c: lun %d tag %d linked command complete, but no next_link\n",
> -			instance->host_no, acornscsi_target(host), host->SCpnt->tag);
> -		acornscsi_sbic_issuecmd(host, CMND_ASSERTATN);
> -		msgqueue_addmsg(&host->scsi.msgs, 1, ABORT);
> -	    } else {
> -		struct scsi_cmnd *SCpnt = host->SCpnt;
> -
> -		acornscsi_dma_cleanup(host);
> -
> -		host->SCpnt = host->SCpnt->next_link;
> -		host->SCpnt->tag = SCpnt->tag;
> -		SCpnt->result = DID_OK | host->scsi.SCp.Message << 8 | host->Scsi.SCp.Status;
> -		SCpnt->done(SCpnt);
> -
> -		/* initialise host->SCpnt->SCp */
> -	    }
> -	    break;
> -	}
> -#endif
> -
>       default: /* reject message */
>   	printk(KERN_ERR "scsi%d.%c: unrecognised message %02X, rejecting\n",
>   		host->host->host_no, acornscsi_target(host),
> @@ -2825,9 +2778,6 @@ char *acornscsi_info(struct Scsi_Host *host)
>   #ifdef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
>       " TAG"
>   #endif
> -#ifdef CONFIG_SCSI_ACORNSCSI_LINK
> -    " LINK"
> -#endif
>   #if (DEBUG & DEBUG_NO_WRITE)
>       " NOWRITE (" __stringify(NO_WRITE) ")"
>   #endif
> @@ -2851,9 +2801,6 @@ static int acornscsi_show_info(struct seq_file *m, struct Scsi_Host *instance)
>   #ifdef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
>       " TAG"
>   #endif
> -#ifdef CONFIG_SCSI_ACORNSCSI_LINK
> -    " LINK"
> -#endif
>   #if (DEBUG & DEBUG_NO_WRITE)
>       " NOWRITE (" __stringify(NO_WRITE) ")"
>   #endif
>
I'm all for it. Removing never-really-implemented feature on obsolete 
hardware is always a good idea.

Acked-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-24 10:35 ` Hannes Reinecke
@ 2014-05-24 12:13   ` James Bottomley
  2014-05-24 13:16     ` Paul Bolle
  0 siblings, 1 reply; 9+ messages in thread
From: James Bottomley @ 2014-05-24 12:13 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: Paul Bolle, Russell King, linux-arm-kernel, linux-scsi,
	linux-kernel

On Sat, 2014-05-24 at 12:35 +0200, Hannes Reinecke wrote:
[...]
> I'm all for it. Removing never-really-implemented feature on obsolete 
> hardware is always a good idea.
> 
> Acked-by: Hannes Reinecke <hare@suse.de>

Wait, no, that's not a good idea.  We leave obsolete drivers to bitrot.
Particularly we try not to touch them unless we have to because there
might be a few people still using them and the more we tamper, the
greater the risk that something gets broken.  On that principle, since
there's no real reason to remove the code, it should stay ... until the
whole driver bitrots to the extent that we can no-longer compile it.

However, I'll do this if the Maintainer (rmk) acks ... because if it
breaks he gets to fix it.

James

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-24 12:13   ` James Bottomley
@ 2014-05-24 13:16     ` Paul Bolle
  2014-05-25  7:42       ` James Bottomley
  0 siblings, 1 reply; 9+ messages in thread
From: Paul Bolle @ 2014-05-24 13:16 UTC (permalink / raw)
  To: James Bottomley
  Cc: Hannes Reinecke, Russell King, linux-arm-kernel, linux-scsi,
	linux-kernel

On Sat, 2014-05-24 at 16:13 +0400, James Bottomley wrote:
> Wait, no, that's not a good idea.  We leave obsolete drivers to bitrot.
> Particularly we try not to touch them unless we have to because there
> might be a few people still using them and the more we tamper, the
> greater the risk that something gets broken.

Which is also a way to notice whether people still use those obsolete
drivers.

> On that principle, since
> there's no real reason to remove the code,

(Unless one carries the hope that any check, treewide, for a CONFIG_*
macro can be linked to a proper Kconfig symbol.)

> it should stay ... until the
> whole driver bitrots to the extent that we can no-longer compile it.

I've run into this depreciation policy before. With aic7xxx_old (which I
eventually convinced Fedora to disable, a few relases before it was
removed from the tree). With aic94xx (which I also convinced Fedora to
disable). I also tried multiple times to shut up advansys' compile
time[1]. It seems SCSI might risk not to notice their bitrot, because
eventually everybody stops compiling these obsolete drivers, leaving
SCSI without feedback on their state.

Anyhow, SCSI seems to be the only subsystem that uses this subcategory
of not-really-maintained drivers. Other subsystems appear to allow
anything to be fixed, even trivialities, which are what I tend to fix,
and only stop allowing fixes if the drivers involved are going to be
removed anyway. But maybe I just never ran into that category in other
subsystems.

> However, I'll do this if the Maintainer (rmk) acks ... because if it
> breaks he gets to fix it.


Paul Bolle

[1] advansys prints a pointless compile time warning, on purpose.
Clearly no one cares about its "wide board" support, but for some reason
that warning needs to stay in. (Fedora declined to disable that driver.)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-24 13:16     ` Paul Bolle
@ 2014-05-25  7:42       ` James Bottomley
  2014-05-28 17:28         ` Paul Bolle
  0 siblings, 1 reply; 9+ messages in thread
From: James Bottomley @ 2014-05-25  7:42 UTC (permalink / raw)
  To: Paul Bolle
  Cc: Hannes Reinecke, Russell King, linux-arm-kernel, linux-scsi,
	linux-kernel

On Sat, 2014-05-24 at 15:16 +0200, Paul Bolle wrote:
> On Sat, 2014-05-24 at 16:13 +0400, James Bottomley wrote:
> > Wait, no, that's not a good idea.  We leave obsolete drivers to bitrot.
> > Particularly we try not to touch them unless we have to because there
> > might be a few people still using them and the more we tamper, the
> > greater the risk that something gets broken.
> 
> Which is also a way to notice whether people still use those obsolete
> drivers.

Really, no.  We don't deliberately break old drivers to see if anyone
notices.  Usually the feedback loop is months to years for the long tail
to notice and by that time fixing the problem becomes a real pain if you
allow driver churn.

We keep old drivers that compile until there's a problem caused usually
by something like API changes.

> > On that principle, since
> > there's no real reason to remove the code,
> 
> (Unless one carries the hope that any check, treewide, for a CONFIG_*
> macro can be linked to a proper Kconfig symbol.)

The check can be fixed.  If you look at what Fengguang Wu does, he has a
list of expected problems which he diffs.  Don't churn the tree to match
the checker, make the checker match the tree.

> > it should stay ... until the
> > whole driver bitrots to the extent that we can no-longer compile it.
> 
> I've run into this depreciation policy before. With aic7xxx_old (which I
> eventually convinced Fedora to disable, a few relases before it was
> removed from the tree). With aic94xx (which I also convinced Fedora to
> disable). I also tried multiple times to shut up advansys' compile
> time[1]. It seems SCSI might risk not to notice their bitrot, because
> eventually everybody stops compiling these obsolete drivers, leaving
> SCSI without feedback on their state.

Why would we care?  If it compiles that's fine, it's not causing a
problem and it might just be useful to somebody.

The time obsolete drivers cause problems is tree or subsystem wide API
changes.  Then we look at the amount of work required and sometimes
remove them or do hack fixes. 

> Anyhow, SCSI seems to be the only subsystem that uses this subcategory
> of not-really-maintained drivers. Other subsystems appear to allow
> anything to be fixed, even trivialities, which are what I tend to fix,
> and only stop allowing fixes if the drivers involved are going to be
> removed anyway. But maybe I just never ran into that category in other
> subsystems.

Try ide ... they have the same policy.

Try to understand the reason: we have a long tail of people using
obsolete systems who we try not to break.  Any change to an unmaintained
driver which can't be tested risks that ... and I'm the one who would
have to try to sort out the problem when it's noticed, hence the
caution.  If we allow trivial churn, by the time the breakage is noticed
(usually months to years later), the driver will have picked up a ton of
changes and finding the problem one becomes really hard.  So
unmaintained drivers get a default deep freeze maintenance policy.

Even for a maintained driver, if the maintainer has little access to the
hardware and few users they may also choose a deep freeze maintenance
policy for the same reasons above; that's why no changes without
maintainer ack.

James



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-24 10:13 [PATCH] acornscsi: remove linked command support Paul Bolle
  2014-05-24 10:35 ` Hannes Reinecke
@ 2014-05-28 10:41 ` Christoph Hellwig
  2014-05-28 14:26   ` James Bottomley
  1 sibling, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2014-05-28 10:41 UTC (permalink / raw)
  To: Paul Bolle
  Cc: Russell King, James E.J. Bottomley, linux-arm-kernel, linux-scsi,
	linux-kernel

On Sat, May 24, 2014 at 12:13:53PM +0200, Paul Bolle wrote:
> The acornscsi driver was added in v2.1.88. It has always #undef-ed
> CONFIG_SCSI_ACORNSCSI_LINK near the top of acornscsi.c. And, just to be
> sure, it has also always triggered a preprocessor error if
> CONFIG_SCSI_ACORNSCSI_LINK was still defined. But, as far as I can see,
> it has never even been possible to set SCSI_ACORNSCSI_LINK through
> kconfig, or its predecessors, in the first place.
> 
> Let's remove the code involved.
> 
> Signed-off-by: Paul Bolle <pebolle@tiscali.nl>

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

And I have to disagree with James here, removing code that isn't even
compiled always is an improvement, especially for an unmaintained
driver.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-28 10:41 ` Christoph Hellwig
@ 2014-05-28 14:26   ` James Bottomley
  2014-05-28 15:17     ` Russell King - ARM Linux
  0 siblings, 1 reply; 9+ messages in thread
From: James Bottomley @ 2014-05-28 14:26 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Paul Bolle, Russell King, linux-arm-kernel, linux-scsi,
	linux-kernel

On Wed, 2014-05-28 at 03:41 -0700, Christoph Hellwig wrote:
> On Sat, May 24, 2014 at 12:13:53PM +0200, Paul Bolle wrote:
> > The acornscsi driver was added in v2.1.88. It has always #undef-ed
> > CONFIG_SCSI_ACORNSCSI_LINK near the top of acornscsi.c. And, just to be
> > sure, it has also always triggered a preprocessor error if
> > CONFIG_SCSI_ACORNSCSI_LINK was still defined. But, as far as I can see,
> > it has never even been possible to set SCSI_ACORNSCSI_LINK through
> > kconfig, or its predecessors, in the first place.
> > 
> > Let's remove the code involved.
> > 
> > Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
> 
> Looks good,
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> 
> And I have to disagree with James here, removing code that isn't even
> compiled always is an improvement, especially for an unmaintained
> driver.

Well, as I said, this is in theory a maintained driver, so just get an
ack from Russell and this debate is moot.

James

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-28 14:26   ` James Bottomley
@ 2014-05-28 15:17     ` Russell King - ARM Linux
  0 siblings, 0 replies; 9+ messages in thread
From: Russell King - ARM Linux @ 2014-05-28 15:17 UTC (permalink / raw)
  To: James Bottomley
  Cc: Christoph Hellwig, Paul Bolle, linux-arm-kernel, linux-scsi,
	linux-kernel

On Wed, May 28, 2014 at 06:26:44PM +0400, James Bottomley wrote:
> On Wed, 2014-05-28 at 03:41 -0700, Christoph Hellwig wrote:
> > Looks good,
> > 
> > Reviewed-by: Christoph Hellwig <hch@lst.de>
> > 
> > And I have to disagree with James here, removing code that isn't even
> > compiled always is an improvement, especially for an unmaintained
> > driver.
> 
> Well, as I said, this is in theory a maintained driver, so just get an
> ack from Russell and this debate is moot.

I don't see any harm in removing this - I don't think I've owned any
SCSI devices which supported linked commands, which is why I never
put much effort into it.  As no one else seems to care about it (given
the number of years it's been left alone), removing the linked command
stuff is fine.

Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] acornscsi: remove linked command support
  2014-05-25  7:42       ` James Bottomley
@ 2014-05-28 17:28         ` Paul Bolle
  0 siblings, 0 replies; 9+ messages in thread
From: Paul Bolle @ 2014-05-28 17:28 UTC (permalink / raw)
  To: James Bottomley
  Cc: Christoph Hellwig, Hannes Reinecke, Russell King,
	linux-arm-kernel, linux-scsi, linux-kernel

On Sun, 2014-05-25 at 11:42 +0400, James Bottomley wrote:
> On Sat, 2014-05-24 at 15:16 +0200, Paul Bolle wrote:
> > On Sat, 2014-05-24 at 16:13 +0400, James Bottomley wrote:
> > > Wait, no, that's not a good idea.  We leave obsolete drivers to bitrot.
> > > Particularly we try not to touch them unless we have to because there
> > > might be a few people still using them and the more we tamper, the
> > > greater the risk that something gets broken.
> > 
> > Which is also a way to notice whether people still use those obsolete
> > drivers.
> 
> Really, no.  We don't deliberately break old drivers to see if anyone
> notices.  Usually the feedback loop is months to years for the long tail
> to notice and by that time fixing the problem becomes a real pain if you
> allow driver churn.

Of course I wasn't advocating deliberately breaking old drivers. But
it's easy to get annoyed by that short remark. It would have been better
if I hadn't made it.

Especially because I didn't also point out, as Cristoph did, that the
code I want removed doesn't get compiled. So removing it can, by
definition I'd say, not break that old driver.

> We keep old drivers that compile until there's a problem caused usually
> by something like API changes.
> 
> > > On that principle, since
> > > there's no real reason to remove the code,
> > 
> > (Unless one carries the hope that any check, treewide, for a CONFIG_*
> > macro can be linked to a proper Kconfig symbol.)
> 
> The check can be fixed.  If you look at what Fengguang Wu does, he has a
> list of expected problems which he diffs.  Don't churn the tree to match
> the checker, make the checker match the tree.

Sure. See my recent patch to scripts/headers_check.pl, which does just
that. But before one special cases a certain hit for a checker one needs
to know that this hit really can't or won't be fixed. And in order to
know that one needs to at least try to fix it first.

> > > it should stay ... until the
> > > whole driver bitrots to the extent that we can no-longer compile it.
> > 
> > I've run into this depreciation policy before. With aic7xxx_old (which I
> > eventually convinced Fedora to disable, a few relases before it was
> > removed from the tree). With aic94xx (which I also convinced Fedora to
> > disable). I also tried multiple times to shut up advansys' compile
> > time[1]. It seems SCSI might risk not to notice their bitrot, because
> > eventually everybody stops compiling these obsolete drivers, leaving
> > SCSI without feedback on their state.
> 
> Why would we care?  If it compiles that's fine, it's not causing a
> problem and it might just be useful to somebody.

Fair point: having code that no one uses doesn't cost a lot.

> The time obsolete drivers cause problems is tree or subsystem wide API
> changes.  Then we look at the amount of work required and sometimes
> remove them or do hack fixes. 
> 
> > Anyhow, SCSI seems to be the only subsystem that uses this subcategory
> > of not-really-maintained drivers. Other subsystems appear to allow
> > anything to be fixed, even trivialities, which are what I tend to fix,
> > and only stop allowing fixes if the drivers involved are going to be
> > removed anyway. But maybe I just never ran into that category in other
> > subsystems.
> 
> Try ide ... they have the same policy.

I never really touched IDE. That might explain why I only ran into this
issue with SCSI.

> Try to understand the reason: we have a long tail of people using
> obsolete systems who we try not to break.  Any change to an unmaintained
> driver which can't be tested risks that ... and I'm the one who would
> have to try to sort out the problem when it's noticed, hence the
> caution.  If we allow trivial churn, by the time the breakage is noticed
> (usually months to years later), the driver will have picked up a ton of
> changes and finding the problem one becomes really hard.  So
> unmaintained drivers get a default deep freeze maintenance policy.

Thanks for taking the time to explain this to me. I appreciate that.
This is the first time, I think, that I've seen you explain that policy.
(I might have missed earlier explanations to other people.) Now I might
not entirely agree with you, but it does help to know where you're
coming from.

Thanks,


Paul Bolle

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-05-28 17:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-24 10:13 [PATCH] acornscsi: remove linked command support Paul Bolle
2014-05-24 10:35 ` Hannes Reinecke
2014-05-24 12:13   ` James Bottomley
2014-05-24 13:16     ` Paul Bolle
2014-05-25  7:42       ` James Bottomley
2014-05-28 17:28         ` Paul Bolle
2014-05-28 10:41 ` Christoph Hellwig
2014-05-28 14:26   ` James Bottomley
2014-05-28 15:17     ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).