Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
a80f509f
Commit
a80f509f
authored
Feb 03, 2008
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fixes' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6
parents
246f19d1
04a9e451
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
69 additions
and
33 deletions
+69
-33
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/base.c
+3
-3
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-3945.c
+4
-3
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-4965.c
+18
-5
drivers/net/wireless/iwlwifi/iwl-helpers.h
drivers/net/wireless/iwlwifi/iwl-helpers.h
+0
-3
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+5
-5
drivers/net/wireless/iwlwifi/iwl4965-base.c
drivers/net/wireless/iwlwifi/iwl4965-base.c
+5
-5
include/linux/ieee80211.h
include/linux/ieee80211.h
+6
-0
net/mac80211/Kconfig
net/mac80211/Kconfig
+12
-0
net/mac80211/ieee80211.c
net/mac80211/ieee80211.c
+7
-7
net/mac80211/rc80211_pid_algo.c
net/mac80211/rc80211_pid_algo.c
+1
-1
net/mac80211/rc80211_simple.c
net/mac80211/rc80211_simple.c
+1
-1
net/mac80211/rx.c
net/mac80211/rx.c
+7
-0
No files found.
drivers/net/wireless/ath5k/base.c
View file @
a80f509f
...
@@ -153,7 +153,7 @@ static int ath5k_pci_resume(struct pci_dev *pdev);
...
@@ -153,7 +153,7 @@ static int ath5k_pci_resume(struct pci_dev *pdev);
#define ath5k_pci_resume NULL
#define ath5k_pci_resume NULL
#endif
/* CONFIG_PM */
#endif
/* CONFIG_PM */
static
struct
pci_driver
ath5k_pci_dr
v_id
=
{
static
struct
pci_driver
ath5k_pci_dr
iver
=
{
.
name
=
"ath5k_pci"
,
.
name
=
"ath5k_pci"
,
.
id_table
=
ath5k_pci_id_table
,
.
id_table
=
ath5k_pci_id_table
,
.
probe
=
ath5k_pci_probe
,
.
probe
=
ath5k_pci_probe
,
...
@@ -329,7 +329,7 @@ init_ath5k_pci(void)
...
@@ -329,7 +329,7 @@ init_ath5k_pci(void)
ath5k_debug_init
();
ath5k_debug_init
();
ret
=
pci_register_driver
(
&
ath5k_pci_dr
v_id
);
ret
=
pci_register_driver
(
&
ath5k_pci_dr
iver
);
if
(
ret
)
{
if
(
ret
)
{
printk
(
KERN_ERR
"ath5k_pci: can't register pci driver
\n
"
);
printk
(
KERN_ERR
"ath5k_pci: can't register pci driver
\n
"
);
return
ret
;
return
ret
;
...
@@ -341,7 +341,7 @@ init_ath5k_pci(void)
...
@@ -341,7 +341,7 @@ init_ath5k_pci(void)
static
void
__exit
static
void
__exit
exit_ath5k_pci
(
void
)
exit_ath5k_pci
(
void
)
{
{
pci_unregister_driver
(
&
ath5k_pci_dr
v_id
);
pci_unregister_driver
(
&
ath5k_pci_dr
iver
);
ath5k_debug_finish
();
ath5k_debug_finish
();
}
}
...
...
drivers/net/wireless/iwlwifi/iwl-3945.c
View file @
a80f509f
...
@@ -238,7 +238,8 @@ void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv, struct iwl3945_rx_mem_b
...
@@ -238,7 +238,8 @@ void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv, struct iwl3945_rx_mem_b
priv
->
last_statistics_time
=
jiffies
;
priv
->
last_statistics_time
=
jiffies
;
}
}
void
iwl3945_add_radiotap
(
struct
iwl3945_priv
*
priv
,
struct
sk_buff
*
skb
,
static
void
iwl3945_add_radiotap
(
struct
iwl3945_priv
*
priv
,
struct
sk_buff
*
skb
,
struct
iwl3945_rx_frame_hdr
*
rx_hdr
,
struct
iwl3945_rx_frame_hdr
*
rx_hdr
,
struct
ieee80211_rx_status
*
stats
)
struct
ieee80211_rx_status
*
stats
)
{
{
...
...
drivers/net/wireless/iwlwifi/iwl-4965.c
View file @
a80f509f
...
@@ -4658,17 +4658,30 @@ void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index,
...
@@ -4658,17 +4658,30 @@ void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index,
struct
ieee80211_ht_info
*
sta_ht_inf
)
struct
ieee80211_ht_info
*
sta_ht_inf
)
{
{
__le32
sta_flags
;
__le32
sta_flags
;
u8
mimo_ps_mode
;
if
(
!
sta_ht_inf
||
!
sta_ht_inf
->
ht_supported
)
if
(
!
sta_ht_inf
||
!
sta_ht_inf
->
ht_supported
)
goto
done
;
goto
done
;
mimo_ps_mode
=
(
sta_ht_inf
->
cap
&
IEEE80211_HT_CAP_MIMO_PS
)
>>
2
;
sta_flags
=
priv
->
stations
[
index
].
sta
.
station_flags
;
sta_flags
=
priv
->
stations
[
index
].
sta
.
station_flags
;
if
(((
sta_ht_inf
->
cap
&
IEEE80211_HT_CAP_MIMO_PS
>>
2
))
sta_flags
&=
~
(
STA_FLG_RTS_MIMO_PROT_MSK
|
STA_FLG_MIMO_DIS_MSK
);
==
IWL_MIMO_PS_DYNAMIC
)
switch
(
mimo_ps_mode
)
{
case
WLAN_HT_CAP_MIMO_PS_STATIC
:
sta_flags
|=
STA_FLG_MIMO_DIS_MSK
;
break
;
case
WLAN_HT_CAP_MIMO_PS_DYNAMIC
:
sta_flags
|=
STA_FLG_RTS_MIMO_PROT_MSK
;
sta_flags
|=
STA_FLG_RTS_MIMO_PROT_MSK
;
else
break
;
sta_flags
&=
~
STA_FLG_RTS_MIMO_PROT_MSK
;
case
WLAN_HT_CAP_MIMO_PS_DISABLED
:
break
;
default:
IWL_WARNING
(
"Invalid MIMO PS mode %d"
,
mimo_ps_mode
);
break
;
}
sta_flags
|=
cpu_to_le32
(
sta_flags
|=
cpu_to_le32
(
(
u32
)
sta_ht_inf
->
ampdu_factor
<<
STA_FLG_MAX_AGG_SIZE_POS
);
(
u32
)
sta_ht_inf
->
ampdu_factor
<<
STA_FLG_MAX_AGG_SIZE_POS
);
...
@@ -4679,7 +4692,7 @@ void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index,
...
@@ -4679,7 +4692,7 @@ void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index,
if
(
iwl4965_is_fat_tx_allowed
(
priv
,
sta_ht_inf
))
if
(
iwl4965_is_fat_tx_allowed
(
priv
,
sta_ht_inf
))
sta_flags
|=
STA_FLG_FAT_EN_MSK
;
sta_flags
|=
STA_FLG_FAT_EN_MSK
;
else
else
sta_flags
&=
(
~
STA_FLG_FAT_EN_MSK
)
;
sta_flags
&=
~
STA_FLG_FAT_EN_MSK
;
priv
->
stations
[
index
].
sta
.
station_flags
=
sta_flags
;
priv
->
stations
[
index
].
sta
.
station_flags
=
sta_flags
;
done:
done:
...
...
drivers/net/wireless/iwlwifi/iwl-helpers.h
View file @
a80f509f
...
@@ -147,9 +147,6 @@ static inline struct ieee80211_conf *ieee80211_get_hw_conf(
...
@@ -147,9 +147,6 @@ static inline struct ieee80211_conf *ieee80211_get_hw_conf(
#define QOS_CONTROL_LEN 2
#define QOS_CONTROL_LEN 2
#define IEEE80211_STYPE_BACK_REQ 0x0080
#define IEEE80211_STYPE_BACK 0x0090
static
inline
int
ieee80211_is_management
(
u16
fc
)
static
inline
int
ieee80211_is_management
(
u16
fc
)
{
{
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
View file @
a80f509f
...
@@ -6330,6 +6330,11 @@ static int __iwl3945_up(struct iwl3945_priv *priv)
...
@@ -6330,6 +6330,11 @@ static int __iwl3945_up(struct iwl3945_priv *priv)
return
-
ENODEV
;
return
-
ENODEV
;
}
}
if
(
!
priv
->
ucode_data_backup
.
v_addr
||
!
priv
->
ucode_data
.
v_addr
)
{
IWL_ERROR
(
"ucode not available for device bringup
\n
"
);
return
-
EIO
;
}
/* If platform's RF_KILL switch is NOT set to KILL */
/* If platform's RF_KILL switch is NOT set to KILL */
if
(
iwl3945_read32
(
priv
,
CSR_GP_CNTRL
)
&
if
(
iwl3945_read32
(
priv
,
CSR_GP_CNTRL
)
&
CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW
)
CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW
)
...
@@ -6342,11 +6347,6 @@ static int __iwl3945_up(struct iwl3945_priv *priv)
...
@@ -6342,11 +6347,6 @@ static int __iwl3945_up(struct iwl3945_priv *priv)
}
}
}
}
if
(
!
priv
->
ucode_data_backup
.
v_addr
||
!
priv
->
ucode_data
.
v_addr
)
{
IWL_ERROR
(
"ucode not available for device bringup
\n
"
);
return
-
EIO
;
}
iwl3945_write32
(
priv
,
CSR_INT
,
0xFFFFFFFF
);
iwl3945_write32
(
priv
,
CSR_INT
,
0xFFFFFFFF
);
rc
=
iwl3945_hw_nic_init
(
priv
);
rc
=
iwl3945_hw_nic_init
(
priv
);
...
...
drivers/net/wireless/iwlwifi/iwl4965-base.c
View file @
a80f509f
...
@@ -6755,6 +6755,11 @@ static int __iwl4965_up(struct iwl4965_priv *priv)
...
@@ -6755,6 +6755,11 @@ static int __iwl4965_up(struct iwl4965_priv *priv)
return
-
ENODEV
;
return
-
ENODEV
;
}
}
if
(
!
priv
->
ucode_data_backup
.
v_addr
||
!
priv
->
ucode_data
.
v_addr
)
{
IWL_ERROR
(
"ucode not available for device bringup
\n
"
);
return
-
EIO
;
}
/* If platform's RF_KILL switch is NOT set to KILL */
/* If platform's RF_KILL switch is NOT set to KILL */
if
(
iwl4965_read32
(
priv
,
CSR_GP_CNTRL
)
&
if
(
iwl4965_read32
(
priv
,
CSR_GP_CNTRL
)
&
CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW
)
CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW
)
...
@@ -6767,11 +6772,6 @@ static int __iwl4965_up(struct iwl4965_priv *priv)
...
@@ -6767,11 +6772,6 @@ static int __iwl4965_up(struct iwl4965_priv *priv)
}
}
}
}
if
(
!
priv
->
ucode_data_backup
.
v_addr
||
!
priv
->
ucode_data
.
v_addr
)
{
IWL_ERROR
(
"ucode not available for device bringup
\n
"
);
return
-
EIO
;
}
iwl4965_write32
(
priv
,
CSR_INT
,
0xFFFFFFFF
);
iwl4965_write32
(
priv
,
CSR_INT
,
0xFFFFFFFF
);
rc
=
iwl4965_hw_nic_init
(
priv
);
rc
=
iwl4965_hw_nic_init
(
priv
);
...
...
include/linux/ieee80211.h
View file @
a80f509f
...
@@ -287,6 +287,12 @@ struct ieee80211_ht_addt_info {
...
@@ -287,6 +287,12 @@ struct ieee80211_ht_addt_info {
#define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004
#define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004
#define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010
#define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010
/* MIMO Power Save Modes */
#define WLAN_HT_CAP_MIMO_PS_STATIC 0
#define WLAN_HT_CAP_MIMO_PS_DYNAMIC 1
#define WLAN_HT_CAP_MIMO_PS_INVALID 2
#define WLAN_HT_CAP_MIMO_PS_DISABLED 3
/* Authentication algorithms */
/* Authentication algorithms */
#define WLAN_AUTH_OPEN 0
#define WLAN_AUTH_OPEN 0
#define WLAN_AUTH_SHARED_KEY 1
#define WLAN_AUTH_SHARED_KEY 1
...
...
net/mac80211/Kconfig
View file @
a80f509f
...
@@ -98,6 +98,18 @@ config MAC80211_DEBUGFS
...
@@ -98,6 +98,18 @@ config MAC80211_DEBUGFS
Say N unless you know you need this.
Say N unless you know you need this.
config MAC80211_DEBUG_PACKET_ALIGNMENT
bool "Enable packet alignment debugging"
depends on MAC80211
help
This option is recommended for driver authors and strongly
discouraged for everybody else, it will trigger a warning
when a driver hands mac80211 a buffer that is aligned in
a way that will cause problems with the IP stack on some
architectures.
Say N unless you're writing a mac80211 based driver.
config MAC80211_DEBUG
config MAC80211_DEBUG
bool "Enable debugging output"
bool "Enable debugging output"
depends on MAC80211
depends on MAC80211
...
...
net/mac80211/ieee80211.c
View file @
a80f509f
...
@@ -1344,17 +1344,17 @@ static int __init ieee80211_init(void)
...
@@ -1344,17 +1344,17 @@ static int __init ieee80211_init(void)
ret
=
rc80211_simple_init
();
ret
=
rc80211_simple_init
();
if
(
ret
)
if
(
ret
)
goto
fail
;
goto
out
;
ret
=
rc80211_pid_init
();
ret
=
rc80211_pid_init
();
if
(
ret
)
if
(
ret
)
goto
fail
_simple
;
goto
out_cleanup
_simple
;
ret
=
ieee80211_wme_register
();
ret
=
ieee80211_wme_register
();
if
(
ret
)
{
if
(
ret
)
{
printk
(
KERN_DEBUG
"ieee80211_init: failed to "
printk
(
KERN_DEBUG
"ieee80211_init: failed to "
"initialize WME (err=%d)
\n
"
,
ret
);
"initialize WME (err=%d)
\n
"
,
ret
);
goto
fail
_pid
;
goto
out_cleanup
_pid
;
}
}
ieee80211_debugfs_netdev_init
();
ieee80211_debugfs_netdev_init
();
...
@@ -1362,11 +1362,11 @@ static int __init ieee80211_init(void)
...
@@ -1362,11 +1362,11 @@ static int __init ieee80211_init(void)
return
0
;
return
0
;
fail_pid:
out_cleanup_pid:
rc80211_simple_exit
();
fail_simple:
rc80211_pid_exit
();
rc80211_pid_exit
();
fail:
out_cleanup_simple:
rc80211_simple_exit
();
out:
return
ret
;
return
ret
;
}
}
...
...
net/mac80211/rc80211_pid_algo.c
View file @
a80f509f
...
@@ -538,7 +538,7 @@ int __init rc80211_pid_init(void)
...
@@ -538,7 +538,7 @@ int __init rc80211_pid_init(void)
return
ieee80211_rate_control_register
(
&
mac80211_rcpid
);
return
ieee80211_rate_control_register
(
&
mac80211_rcpid
);
}
}
void
__exit
rc80211_pid_exit
(
void
)
void
rc80211_pid_exit
(
void
)
{
{
ieee80211_rate_control_unregister
(
&
mac80211_rcpid
);
ieee80211_rate_control_unregister
(
&
mac80211_rcpid
);
}
}
...
...
net/mac80211/rc80211_simple.c
View file @
a80f509f
...
@@ -389,7 +389,7 @@ int __init rc80211_simple_init(void)
...
@@ -389,7 +389,7 @@ int __init rc80211_simple_init(void)
return
ieee80211_rate_control_register
(
&
mac80211_rcsimple
);
return
ieee80211_rate_control_register
(
&
mac80211_rcsimple
);
}
}
void
__exit
rc80211_simple_exit
(
void
)
void
rc80211_simple_exit
(
void
)
{
{
ieee80211_rate_control_unregister
(
&
mac80211_rcsimple
);
ieee80211_rate_control_unregister
(
&
mac80211_rcsimple
);
}
}
...
...
net/mac80211/rx.c
View file @
a80f509f
...
@@ -340,11 +340,15 @@ static u32 ieee80211_rx_load_stats(struct ieee80211_local *local,
...
@@ -340,11 +340,15 @@ static u32 ieee80211_rx_load_stats(struct ieee80211_local *local,
return
load
;
return
load
;
}
}
#ifdef CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT
static
ieee80211_txrx_result
static
ieee80211_txrx_result
ieee80211_rx_h_verify_ip_alignment
(
struct
ieee80211_txrx_data
*
rx
)
ieee80211_rx_h_verify_ip_alignment
(
struct
ieee80211_txrx_data
*
rx
)
{
{
int
hdrlen
;
int
hdrlen
;
if
(
!
WLAN_FC_DATA_PRESENT
(
rx
->
fc
))
return
TXRX_CONTINUE
;
/*
/*
* Drivers are required to align the payload data in a way that
* Drivers are required to align the payload data in a way that
* guarantees that the contained IP header is aligned to a four-
* guarantees that the contained IP header is aligned to a four-
...
@@ -371,11 +375,14 @@ ieee80211_rx_h_verify_ip_alignment(struct ieee80211_txrx_data *rx)
...
@@ -371,11 +375,14 @@ ieee80211_rx_h_verify_ip_alignment(struct ieee80211_txrx_data *rx)
return
TXRX_CONTINUE
;
return
TXRX_CONTINUE
;
}
}
#endif
ieee80211_rx_handler
ieee80211_rx_pre_handlers
[]
=
ieee80211_rx_handler
ieee80211_rx_pre_handlers
[]
=
{
{
ieee80211_rx_h_parse_qos
,
ieee80211_rx_h_parse_qos
,
#ifdef CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT
ieee80211_rx_h_verify_ip_alignment
,
ieee80211_rx_h_verify_ip_alignment
,
#endif
NULL
NULL
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment