diff for duplicates of <4964E79B.8070609@openwrt.org> diff --git a/a/1.txt b/N1/1.txt index a03e5fa..479909f 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,6 +1,6 @@ -Johannes Berg ?rta: +Johannes Berg =EDrta: > On Wed, 2009-01-07 at 11:09 +0100, Gabor Juhos wrote: -> +>=20 >> /* Deinitialize the device */ >> - ath_detach(sc); >> - if (to_pci_dev(sc->dev)->irq) @@ -10,25 +10,27 @@ Johannes Berg ?rta: >> - pci_disable_device(to_pci_dev(sc->dev)); >> - ieee80211_free_hw(sc->hw); >> + ath_bus_cleanup(sc); -> -> And how is ath_detach() or ieee80211_free_hw() bus specific? That should +>=20 +> And how is ath_detach() or ieee80211_free_hw() bus specific? That sho= +uld > not be in the bus specific function. -> +>=20 > johannes You are right. I guess this looks better: -diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h +diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a= +th9k/core.h index 8e93d11..f9fa5c6 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -695,6 +695,7 @@ enum PROT_MODE { - +=20 struct ath_bus_ops { void (*read_cachesize)(struct ath_softc *sc, int *csz); + void (*cleanup)(struct ath_softc *sc); }; - +=20 struct ath_softc { @@ -704,6 +705,7 @@ struct ath_softc { struct tasklet_struct bcon_tasklet; @@ -37,32 +39,36 @@ index 8e93d11..f9fa5c6 100644 + int irq; spinlock_t sc_resetlock; struct mutex mutex; - -@@ -760,4 +762,9 @@ static inline void ath_read_cachesize(struct ath_softc *sc, int *csz) +=20 +@@ -760,4 +762,9 @@ static inline void ath_read_cachesize(struct ath_so= +ftc *sc, int *csz) sc->bus_ops->read_cachesize(sc, csz); } - +=20 +static inline void ath_bus_cleanup(struct ath_softc *sc) +{ + sc->bus_ops->cleanup(sc); +} + #endif /* CORE_H */ -diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c +diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a= +th9k/main.c index 15824c1..349ac17 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c -@@ -39,6 +39,7 @@ static struct pci_device_id ath_pci_id_table[] __devinitdata = { +@@ -39,6 +39,7 @@ static struct pci_device_id ath_pci_id_table[] __devi= +nitdata =3D { }; - +=20 static void ath_detach(struct ath_softc *sc); +static void ath_cleanup(struct ath_softc *sc); - +=20 /* return bus cachesize in 4B word units */ - -@@ -1267,13 +1268,7 @@ static int ath_start_rfkill_poll(struct ath_softc *sc) +=20 +@@ -1267,13 +1268,7 @@ static int ath_start_rfkill_poll(struct ath_soft= +c *sc) rfkill_free(sc->rf_kill.rfkill); - +=20 /* Deinitialize the device */ - ath_detach(sc); - if (to_pci_dev(sc->dev)->irq) @@ -74,14 +80,15 @@ index 15824c1..349ac17 100644 + ath_cleanup(sc); return -EIO; } else { - sc->sc_flags |= SC_OP_RFKILL_REGISTERED; -@@ -1284,6 +1279,16 @@ static int ath_start_rfkill_poll(struct ath_softc *sc) + sc->sc_flags |=3D SC_OP_RFKILL_REGISTERED; +@@ -1284,6 +1279,16 @@ static int ath_start_rfkill_poll(struct ath_soft= +c *sc) } #endif /* CONFIG_RFKILL */ - +=20 +static void ath_cleanup(struct ath_softc *sc) +{ -+ struct pci_dev *pdev = to_pci_dev(sc->dev); ++ struct pci_dev *pdev =3D to_pci_dev(sc->dev); + + ath_detach(sc); + free_irq(sc->irq, sc); @@ -91,39 +98,41 @@ index 15824c1..349ac17 100644 + static void ath_detach(struct ath_softc *sc) { - struct ieee80211_hw *hw = sc->hw; + struct ieee80211_hw *hw =3D sc->hw; @@ -2529,8 +2534,18 @@ ath_rf_name(u16 rf_version) return "????"; } - +=20 +static void ath_pci_cleanup(struct ath_softc *sc) +{ -+ struct pci_dev *pdev = to_pci_dev(sc->dev); ++ struct pci_dev *pdev =3D to_pci_dev(sc->dev); + + pci_iounmap(pdev, sc->mem); + pci_release_region(pdev, 0); + pci_disable_device(pdev); +} + - static struct ath_bus_ops ath_pci_bus_ops = { - .read_cachesize = ath_pci_read_cachesize, -+ .cleanup = ath_pci_cleanup, + static struct ath_bus_ops ath_pci_bus_ops =3D { + .read_cachesize =3D ath_pci_read_cachesize, ++ .cleanup =3D ath_pci_cleanup, }; - - static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) -@@ -2637,6 +2652,8 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) +=20 + static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device= +_id *id) +@@ -2637,6 +2652,8 @@ static int ath_pci_probe(struct pci_dev *pdev, co= +nst struct pci_device_id *id) goto bad4; } - -+ sc->irq = pdev->irq; +=20 ++ sc->irq =3D pdev->irq; + - ah = sc->sc_ah; + ah =3D sc->sc_ah; printk(KERN_INFO "%s: Atheros AR%s MAC/BB Rev:%x " @@ -2667,13 +2684,7 @@ static void ath_pci_remove(struct pci_dev *pdev) - struct ieee80211_hw *hw = pci_get_drvdata(pdev); - struct ath_softc *sc = hw->priv; - + struct ieee80211_hw *hw =3D pci_get_drvdata(pdev); + struct ath_softc *sc =3D hw->priv; +=20 - ath_detach(sc); - if (pdev->irq) - free_irq(pdev->irq, sc); @@ -133,5 +142,10 @@ index 15824c1..349ac17 100644 - ieee80211_free_hw(hw); + ath_cleanup(sc); } - +=20 #ifdef CONFIG_PM +-- +To unsubscribe from this list: send the line "unsubscribe linux-wireles= +s" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index 8fc5e47..3d3c38d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,14 +2,23 @@ "ref\01231322972-24094-5-git-send-email-juhosg@openwrt.org\0" "ref\01231323852.3545.22.camel@johannes\0" "From\0Gabor Juhos <juhosg@openwrt.org>\0" - "Subject\0[ath9k-devel] [PATCH 04/11] ath9k: introduce bus specific cleanup routine\0" + "Subject\0Re: [PATCH 04/11] ath9k: introduce bus specific cleanup routine\0" "Date\0Wed, 07 Jan 2009 18:34:19 +0100\0" - "To\0ath9k-devel@lists.ath9k.org\0" + "To\0Johannes Berg <johannes@sipsolutions.net>\0" + "Cc\0John W. Linville <linville@tuxdriver.com>" + Luis R. Rodriguez <lrodriguez@atheros.com> + Jouni Malinen <jmalinen@atheros.com> + ath9k-devel@lists.ath9k.org <ath9k-devel@venema.h4ckr.net> + linux-wireless@vger.kernel.org <linux-wireless@vger.kernel.org> + Felix Fietkau <nbd@openwrt.org> + Christoph Hellwig <hch@infradead.org> + Sujith Manoharan <Sujith.Manoharan@atheros.com> + " Imre Kaloz <kaloz@openwrt.org>\0" "\00:1\0" "b\0" - "Johannes Berg ?rta:\n" + "Johannes Berg =EDrta:\n" "> On Wed, 2009-01-07 at 11:09 +0100, Gabor Juhos wrote:\n" - "> \n" + ">=20\n" ">> \t\t\t/* Deinitialize the device */\n" ">> -\t\t\tath_detach(sc);\n" ">> -\t\t\tif (to_pci_dev(sc->dev)->irq)\n" @@ -19,25 +28,27 @@ ">> -\t\t\tpci_disable_device(to_pci_dev(sc->dev));\n" ">> -\t\t\tieee80211_free_hw(sc->hw);\n" ">> +\t\t\tath_bus_cleanup(sc);\n" - "> \n" - "> And how is ath_detach() or ieee80211_free_hw() bus specific? That should\n" + ">=20\n" + "> And how is ath_detach() or ieee80211_free_hw() bus specific? That sho=\n" + "uld\n" "> not be in the bus specific function.\n" - "> \n" + ">=20\n" "> johannes\n" "\n" "You are right. I guess this looks better:\n" "\n" - "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h\n" + "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a=\n" + "th9k/core.h\n" "index 8e93d11..f9fa5c6 100644\n" "--- a/drivers/net/wireless/ath9k/core.h\n" "+++ b/drivers/net/wireless/ath9k/core.h\n" "@@ -695,6 +695,7 @@ enum PROT_MODE {\n" - " \n" + "=20\n" " struct ath_bus_ops {\n" " \tvoid\t\t(*read_cachesize)(struct ath_softc *sc, int *csz);\n" "+\tvoid\t\t(*cleanup)(struct ath_softc *sc);\n" " };\n" - " \n" + "=20\n" " struct ath_softc {\n" "@@ -704,6 +705,7 @@ struct ath_softc {\n" " \tstruct tasklet_struct bcon_tasklet;\n" @@ -46,32 +57,36 @@ "+\tint irq;\n" " \tspinlock_t sc_resetlock;\n" " \tstruct mutex mutex;\n" - " \n" - "@@ -760,4 +762,9 @@ static inline void ath_read_cachesize(struct ath_softc *sc, int *csz)\n" + "=20\n" + "@@ -760,4 +762,9 @@ static inline void ath_read_cachesize(struct ath_so=\n" + "ftc *sc, int *csz)\n" " \tsc->bus_ops->read_cachesize(sc, csz);\n" " }\n" - " \n" + "=20\n" "+static inline void ath_bus_cleanup(struct ath_softc *sc)\n" "+{\n" "+\tsc->bus_ops->cleanup(sc);\n" "+}\n" "+\n" " #endif /* CORE_H */\n" - "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c\n" + "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a=\n" + "th9k/main.c\n" "index 15824c1..349ac17 100644\n" "--- a/drivers/net/wireless/ath9k/main.c\n" "+++ b/drivers/net/wireless/ath9k/main.c\n" - "@@ -39,6 +39,7 @@ static struct pci_device_id ath_pci_id_table[] __devinitdata = {\n" + "@@ -39,6 +39,7 @@ static struct pci_device_id ath_pci_id_table[] __devi=\n" + "nitdata =3D {\n" " };\n" - " \n" + "=20\n" " static void ath_detach(struct ath_softc *sc);\n" "+static void ath_cleanup(struct ath_softc *sc);\n" - " \n" + "=20\n" " /* return bus cachesize in 4B word units */\n" - " \n" - "@@ -1267,13 +1268,7 @@ static int ath_start_rfkill_poll(struct ath_softc *sc)\n" + "=20\n" + "@@ -1267,13 +1268,7 @@ static int ath_start_rfkill_poll(struct ath_soft=\n" + "c *sc)\n" " \t\t\trfkill_free(sc->rf_kill.rfkill);\n" - " \n" + "=20\n" " \t\t\t/* Deinitialize the device */\n" "-\t\t\tath_detach(sc);\n" "-\t\t\tif (to_pci_dev(sc->dev)->irq)\n" @@ -83,14 +98,15 @@ "+\t\t\tath_cleanup(sc);\n" " \t\t\treturn -EIO;\n" " \t\t} else {\n" - " \t\t\tsc->sc_flags |= SC_OP_RFKILL_REGISTERED;\n" - "@@ -1284,6 +1279,16 @@ static int ath_start_rfkill_poll(struct ath_softc *sc)\n" + " \t\t\tsc->sc_flags |=3D SC_OP_RFKILL_REGISTERED;\n" + "@@ -1284,6 +1279,16 @@ static int ath_start_rfkill_poll(struct ath_soft=\n" + "c *sc)\n" " }\n" " #endif /* CONFIG_RFKILL */\n" - " \n" + "=20\n" "+static void ath_cleanup(struct ath_softc *sc)\n" "+{\n" - "+\tstruct pci_dev *pdev = to_pci_dev(sc->dev);\n" + "+\tstruct pci_dev *pdev =3D to_pci_dev(sc->dev);\n" "+\n" "+\tath_detach(sc);\n" "+\tfree_irq(sc->irq, sc);\n" @@ -100,39 +116,41 @@ "+\n" " static void ath_detach(struct ath_softc *sc)\n" " {\n" - " \tstruct ieee80211_hw *hw = sc->hw;\n" + " \tstruct ieee80211_hw *hw =3D sc->hw;\n" "@@ -2529,8 +2534,18 @@ ath_rf_name(u16 rf_version)\n" " \treturn \"????\";\n" " }\n" - " \n" + "=20\n" "+static void ath_pci_cleanup(struct ath_softc *sc)\n" "+{\n" - "+\tstruct pci_dev *pdev = to_pci_dev(sc->dev);\n" + "+\tstruct pci_dev *pdev =3D to_pci_dev(sc->dev);\n" "+\n" "+\tpci_iounmap(pdev, sc->mem);\n" "+\tpci_release_region(pdev, 0);\n" "+\tpci_disable_device(pdev);\n" "+}\n" "+\n" - " static struct ath_bus_ops ath_pci_bus_ops = {\n" - " \t.read_cachesize = ath_pci_read_cachesize,\n" - "+\t.cleanup = ath_pci_cleanup,\n" + " static struct ath_bus_ops ath_pci_bus_ops =3D {\n" + " \t.read_cachesize =3D ath_pci_read_cachesize,\n" + "+\t.cleanup =3D ath_pci_cleanup,\n" " };\n" - " \n" - " static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)\n" - "@@ -2637,6 +2652,8 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)\n" + "=20\n" + " static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device=\n" + "_id *id)\n" + "@@ -2637,6 +2652,8 @@ static int ath_pci_probe(struct pci_dev *pdev, co=\n" + "nst struct pci_device_id *id)\n" " \t\tgoto bad4;\n" " \t}\n" - " \n" - "+\tsc->irq = pdev->irq;\n" + "=20\n" + "+\tsc->irq =3D pdev->irq;\n" "+\n" - " \tah = sc->sc_ah;\n" + " \tah =3D sc->sc_ah;\n" " \tprintk(KERN_INFO\n" " \t \"%s: Atheros AR%s MAC/BB Rev:%x \"\n" "@@ -2667,13 +2684,7 @@ static void ath_pci_remove(struct pci_dev *pdev)\n" - " \tstruct ieee80211_hw *hw = pci_get_drvdata(pdev);\n" - " \tstruct ath_softc *sc = hw->priv;\n" - " \n" + " \tstruct ieee80211_hw *hw =3D pci_get_drvdata(pdev);\n" + " \tstruct ath_softc *sc =3D hw->priv;\n" + "=20\n" "-\tath_detach(sc);\n" "-\tif (pdev->irq)\n" "-\t\tfree_irq(pdev->irq, sc);\n" @@ -142,7 +160,12 @@ "-\tieee80211_free_hw(hw);\n" "+\tath_cleanup(sc);\n" " }\n" - " \n" - #ifdef CONFIG_PM + "=20\n" + " #ifdef CONFIG_PM\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-wireles=\n" + "s\" in\n" + "the body of a message to majordomo@vger.kernel.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -0edc4a65193c4ec94b809da5fdcfe297eb4fb3ec30563cc9144e964f9f922513 +1bdf2951c3c818c3555e0ce2b3843e01c5e0594bbcc8521fd95673b4cefc80e6
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.