Subject: Re: linux-next: manual merge of the driver-core tree with the net-next tree

From: Jeremiah Mahler <[email-masked]>
Date: Wed, 3 Dec 2014 13:06:59 -0800

Arend,

On Wed, Dec 03, 2014 at 01:49:00PM +0100, Arend van Spriel wrote:
> On 12/03/14 11:51, Jeremiah Mahler wrote:
> >On Wed, Dec 03, 2014 at 12:36:55AM -0800, Jeremiah Mahler wrote:
> >>all,
> >>
> >>On Mon, Dec 01, 2014 at 08:34:05AM +0100, Arend van Spriel wrote:
> >>>On 01-12-14 08:19, Stephen Rothwell wrote:
> >>>>Hi Greg,
> >>>>
> >>>>Today's linux-next merge of the driver-core tree got a conflict in
> >>>>drivers/net/wireless/ath/ath9k/debug.c between commits 70e535ed0029
> >>>>("ath9k: clean up debugfs print of reset causes"), 7b8aaead958e
> >>>>("ath9k: restart hardware after noise floor calibration failure") and
> >>>>325e18817668 ("ath9k: fix misc debugfs when not using chan context")
> >>>>from the net-next tree and commit 631bee257bd5 ("ath: use seq_file api
> >>>>for ath9k debugfs files") from the driver-core tree.
> >>>>
> >>>>I fixed it up (see below) and can carry the fix as necessary (no action
> >>>>is required).
> >>>>
> >>>>Greg, I am not sure why those 2 commits are even in your tree.  Do they
> >>>>depend on something else in your tree?
> >>>
> >>>They do. The three commits below are related:
> >>>
> >>>d32394f ath: ath9k: use debugfs_create_devm_seqfile() helper for
> >>>seq_file entrie
> >>>631bee2 ath: use seq_file api for ath9k debugfs files
> >>>98210b7 debugfs: add helper function to create device related seq_file
> >>>
> >>>The ath patches were made to provide example of using the new helper
> >>>function and get some idea about code savings. Greg and John discussed
> >>>who would take them. I noticed other ath changes in net-next so I kinda
> >>>expected this email ;-)
> >>>
> >>>Regards,
> >>>Arend
> >>>--
> >>>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >>>the body of a message to [email-masked]
> >>>More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >>>Please read the FAQ at  http://www.tux.org/lkml/
> >>
> >>I just ran in to a problem with one of these commits.
> >>
> >>On an Acer C720 laptop if a suspend is performed the screen freezes,
> >>the machine locks up, and according to the indicator lights it does
> >>not enter suspend.  A hard reset is required to get it running again.
> >>
> >>I have bisected the kernel and found that the following is the first bad
> >>commit.
> >>
> >>   commit d32394fae95741d733b174ec1446f27765f80233
> >>   Author: Arend van Spriel<[email-masked]>
> >>   Date:   Sun Nov 9 11:32:00 2014 +0100
> >>
> >>       ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file
> >>   entries
> >>
> >>       Use the helper to get rid of the file operations per debugfs file.
> >>   The
> >>       struct ath9k_softc pointer is set as device driver data to be
> >>   obtained
> >>       in the seq_file read operation.
> >>
> >>       Signed-off-by: Arend van Spriel<[email-masked]>
> >>       Signed-off-by: Greg Kroah-Hartman<[email-masked]>
> >>
> >>Let me know if I can do anything else to help.
> >>
> >>--
> >>- Jeremiah Mahler
> >
> >I took a look at the patch that is causing this problem (d32394fae95).
> >My config negates everything in the patch except for a one line change
> >to ath9k/pci.c.  If I remove this change (shown below) the problem goes
> >away.
> 
> Ok. But then it will likely crash when you cat one of the changed debugfs
> files. Guess this commit needs to be reverted entirely.
> 

On my machine ATH9K_DEBUFS is disabled so none of that code is used.

I can try enabling it and see if a cat will crash it.

> Regards,
> Arend
> 
> >diff --git a/drivers/net/wireless/ath/ath9k/pci.c
> >b/drivers/net/wireless/ath/ath9k/pci.c
> >index 90c9e3c..c018dea 100644
> >--- a/drivers/net/wireless/ath/ath9k/pci.c
> >+++ b/drivers/net/wireless/ath/ath9k/pci.c
> >@@ -856,7 +856,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const
> >struct pci_device_id *id)
> >         sc = hw->priv;
> >         sc->hw = hw;
> >         sc->dev =&pdev->dev;
> >-       dev_set_drvdata(sc->dev, sc);
> >         sc->mem = pcim_iomap_table(pdev)[0];
> >         sc->driver_data = id->driver_data;
> >
> 

-- 
- Jeremiah Mahler