summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch')
-rw-r--r--package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch b/package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch
new file mode 100644
index 000000000..ba12eda12
--- /dev/null
+++ b/package/mac80211/patches/843-brcmsmac-use-container_of-instead-of-cast.patch
@@ -0,0 +1,74 @@
+--- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
++++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
+@@ -584,7 +584,7 @@ void ai_detach(struct si_pub *sih)
+ struct si_pub *si_local = NULL;
+ memcpy(&si_local, &sih, sizeof(struct si_pub **));
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ if (sii == NULL)
+ return;
+@@ -599,7 +599,7 @@ struct bcma_device *ai_findcore(struct s
+ struct si_info *sii;
+ uint found;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ found = 0;
+
+@@ -622,7 +622,7 @@ uint ai_cc_reg(struct si_pub *sih, uint
+ u32 w;
+ struct si_info *sii;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+ cc = sii->icbus->drv_cc.core;
+
+ /* mask and set */
+@@ -716,7 +716,7 @@ u16 ai_clkctl_fast_pwrup_delay(struct si
+ uint slowminfreq;
+ u16 fpdelay;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+ if (ai_get_cccaps(sih) & CC_CAP_PMU) {
+ fpdelay = si_pmu_fast_pwrup_delay(sih);
+ return fpdelay;
+@@ -748,7 +748,7 @@ bool ai_clkctl_cc(struct si_pub *sih, en
+ struct si_info *sii;
+ struct bcma_device *cc;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ cc = ai_findcore(&sii->pub, BCMA_CORE_CHIPCOMMON, 0);
+ bcma_core_set_clockmode(cc, mode);
+@@ -759,7 +759,7 @@ void ai_pci_up(struct si_pub *sih)
+ {
+ struct si_info *sii;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ if (sii->icbus->hosttype == BCMA_HOSTTYPE_PCI)
+ bcma_core_pci_extend_L1timer(&sii->icbus->drv_pci, true);
+@@ -770,7 +770,7 @@ void ai_pci_down(struct si_pub *sih)
+ {
+ struct si_info *sii;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ if (sii->icbus->hosttype == BCMA_HOSTTYPE_PCI)
+ bcma_core_pci_extend_L1timer(&sii->icbus->drv_pci, false);
+@@ -793,7 +793,7 @@ bool ai_deviceremoved(struct si_pub *sih
+ u32 w;
+ struct si_info *sii;
+
+- sii = (struct si_info *)sih;
++ sii = container_of(sih, struct si_info, pub);
+
+ if (sii->icbus->hosttype != BCMA_HOSTTYPE_PCI)
+ return false;