linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731
       [not found] <cover.1360307140.git.linux@horizon.com>
@ 2013-02-08 23:36 ` Greg KH
  2013-02-09  0:22   ` George Spelvin
  2013-02-09  7:05   ` George Spelvin
  0 siblings, 2 replies; 3+ messages in thread
From: Greg KH @ 2013-02-08 23:36 UTC (permalink / raw)
  To: George Spelvin; +Cc: linux-serial, peter, linux-kernel, giometti

On Fri, Feb 08, 2013 at 02:05:40AM -0500, George Spelvin wrote:
> The standard N_TTY line discipline used to not use the tty->disc_data
> field, so N_PPS felt free to use it.  That has now changed, requiring
> that N_PPS use a different method to find its private data.
> 
> (In the current, buggy, state, N_PPS follows a wild pointer and explodes
> in an interrupt hander as soon as a pulse actually arrives.)
> 
> Strictly speaking, only patches 5 and 6 are the bugfix proper; the
> rest are various cleanups enabled by the looser coupling of the
> line disciplines.

As this is a breakage in 3.8-rc1, is there any way to pull out patches 5
and 6 in a format that I can apply them now, or in a way that I can get
them into 3.8.1 so that this gets fixed?  I can't apply all of these to
3.8-final now, as it's way too late.

thanks,

greg k-h

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

* Re: [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731
  2013-02-08 23:36 ` [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731 Greg KH
@ 2013-02-09  0:22   ` George Spelvin
  2013-02-09  7:05   ` George Spelvin
  1 sibling, 0 replies; 3+ messages in thread
From: George Spelvin @ 2013-02-09  0:22 UTC (permalink / raw)
  To: gregkh, linux; +Cc: giometti, linux-kernel, linux-serial, peter

> As this is a breakage in 3.8-rc1, is there any way to pull out patches 5
> and 6 in a format that I can apply them now, or in a way that I can get
> I can't apply all of these to 3.8-final now, as it's way too late.

I'll reorder them for you.  But Philipp will be bitterly disappointed. :-)

The other cleanups are far smaller and lower risk than the infrastructure
added in #5; I was just being OCD about committing the "least patchable
unit".

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

* Re: [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731
  2013-02-08 23:36 ` [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731 Greg KH
  2013-02-09  0:22   ` George Spelvin
@ 2013-02-09  7:05   ` George Spelvin
  1 sibling, 0 replies; 3+ messages in thread
From: George Spelvin @ 2013-02-09  7:05 UTC (permalink / raw)
  To: gregkh, linux; +Cc: giometti, linux-kernel, linux-serial, peter

As a followup, testing my fixes has revealed an old bug in the
PPS driver that I'm trying to figure out how to solve.

Basically, pps_unregister_cdev does

        device_destroy(pps_class, pps->dev->devt);
        cdev_del(&pps->cdev);

And device_destroy ends up calling pps->dev->release,
which is pps_device_destruct, which does

        mutex_lock(&pps_idr_lock);
        idr_remove(&pps_idr, pps->id);
        mutex_unlock(&pps_idr_lock);

        kfree(dev);
        kfree(pps);

Now the problem is that the kfree(pps) happens *before* the
cdev_del(&pps->cdev) call, which is Not Good.

I'm trying to figure out The Right Thing to do in this case and include a
fix for that, too.  It's not a regression, but it is a fairly serious bug.

Advice gratefully received, but I'll figure it out on my own, if not.
The most obvious kludge is to wrap the pps_unregister_cdev operations
in device_get/device_put, to force the release callback to be delayed
until later.

I'm hoping for something prettier, though.  The other option I'm thinking
about is to move one or both deallocations to the (currently stub)
pps_cdev_release function.

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

end of thread, other threads:[~2013-02-09  7:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <cover.1360307140.git.linux@horizon.com>
2013-02-08 23:36 ` [PATCH 0/7] 3.8-rc regression with pps-ldisc due to 70ece7a731 Greg KH
2013-02-09  0:22   ` George Spelvin
2013-02-09  7:05   ` George Spelvin

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).