Three fixes:
* for certificate C file generation, don't use hexdump as it's not always installed by default, use pure posix instead (od/sed) * for certificate C file generation, don't write the file if anything fails, so the build abort will not cause a bad build upon a second attempt * fix locking in ieee80211_sta_tear_down_BA_sessions() which had been causing lots of locking warnings -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEH1e1rEeCd0AIMq6MB8qZga/fl8QFAlouVRAACgkQB8qZga/f l8RRdg/+J6dq+Y5WmdRVniKh+XR+6wu1nMLh5LcTKhhh3e1yv2No8T3V8CxT4eGC YEsqjoJT4MF8WMN/qx6DqqKi8jRPuUEUIoFsM0Joz8EBXkkS3lC0Rnzp1ZlMXHwD aJ+aY5SrQL9isVN50traO6DPbr0fXiy4af8XLty49lmFdAO0OdxwMFu6WhkS24ej g7bMMW8MqHgytolhWrpaiAEcj1wa2kTyzGXmAvv0IztxLrJyRNljnJwnme3vN1b7 E5niCdTbnHkifxHIZqgX2u5Vhn26c+kkhom6WJGv3TTsVQGeERbT3qQHksCN2sNf /mgiLgEQp9XW8PejYgTrGlalIX5dr2E5mU0kXYIiG1xf8Q0BwZzDRiSqZD9p5dYW NSbnK+ZmHc+5WyvdNZqv09rTKRFeq8QUwy53MOFeD2MMHqjn1KfUaqm+d2AGbPn0 Trm1Vpk0NFvBvEhpfZrauye7iZkXWYdasaZDRdmRkkiWTW9tgtSH3BTUQIaRbbxh sgE+oY1yZxle/1atLQV70Kku7yFChjPc6qEfFEobygWzl+wbyu0ipBvCD7gyEJKy yPQ4kEJLqY4Vh4A/riprrjyD/06QTVUF5PgBeTfLgTI5NJ1Z4Dfw51Y65fr3stb6 QvUj+eJiVebBRNP4C4CjLA4n65QlYFTJWQnNyreLqkjlB8tob64= =Mgd9 -----END PGP SIGNATURE----- Merge tag 'mac80211-for-davem-2017-12-11' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Three fixes: * for certificate C file generation, don't use hexdump as it's not always installed by default, use pure posix instead (od/sed) * for certificate C file generation, don't write the file if anything fails, so the build abort will not cause a bad build upon a second attempt * fix locking in ieee80211_sta_tear_down_BA_sessions() which had been causing lots of locking warnings ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Коммит
f0f1d0166b
|
@ -291,16 +291,15 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta,
|
|||
int i;
|
||||
|
||||
mutex_lock(&sta->ampdu_mlme.mtx);
|
||||
for (i = 0; i < IEEE80211_NUM_TIDS; i++) {
|
||||
for (i = 0; i < IEEE80211_NUM_TIDS; i++)
|
||||
___ieee80211_stop_rx_ba_session(sta, i, WLAN_BACK_RECIPIENT,
|
||||
WLAN_REASON_QSTA_LEAVE_QBSS,
|
||||
reason != AGG_STOP_DESTROY_STA &&
|
||||
reason != AGG_STOP_PEER_REQUEST);
|
||||
}
|
||||
mutex_unlock(&sta->ampdu_mlme.mtx);
|
||||
|
||||
for (i = 0; i < IEEE80211_NUM_TIDS; i++)
|
||||
___ieee80211_stop_tx_ba_session(sta, i, reason);
|
||||
mutex_unlock(&sta->ampdu_mlme.mtx);
|
||||
|
||||
/* stopping might queue the work again - so cancel only afterwards */
|
||||
cancel_work_sync(&sta->ampdu_mlme.work);
|
||||
|
|
|
@ -25,17 +25,45 @@ endif
|
|||
|
||||
$(obj)/shipped-certs.c: $(wildcard $(srctree)/$(src)/certs/*.x509)
|
||||
@$(kecho) " GEN $@"
|
||||
@echo '#include "reg.h"' > $@
|
||||
@echo 'const u8 shipped_regdb_certs[] = {' >> $@
|
||||
@for f in $^ ; do hexdump -v -e '1/1 "0x%.2x," "\n"' < $$f >> $@ ; done
|
||||
@echo '};' >> $@
|
||||
@echo 'unsigned int shipped_regdb_certs_len = sizeof(shipped_regdb_certs);' >> $@
|
||||
@(set -e; \
|
||||
allf=""; \
|
||||
for f in $^ ; do \
|
||||
# similar to hexdump -v -e '1/1 "0x%.2x," "\n"' \
|
||||
thisf=$$(od -An -v -tx1 < $$f | \
|
||||
sed -e 's/ /\n/g' | \
|
||||
sed -e 's/^[0-9a-f]\+$$/\0/;t;d' | \
|
||||
sed -e 's/^/0x/;s/$$/,/'); \
|
||||
# file should not be empty - maybe command substitution failed? \
|
||||
test ! -z "$$thisf";\
|
||||
allf=$$allf$$thisf;\
|
||||
done; \
|
||||
( \
|
||||
echo '#include "reg.h"'; \
|
||||
echo 'const u8 shipped_regdb_certs[] = {'; \
|
||||
echo "$$allf"; \
|
||||
echo '};'; \
|
||||
echo 'unsigned int shipped_regdb_certs_len = sizeof(shipped_regdb_certs);'; \
|
||||
) >> $@)
|
||||
|
||||
$(obj)/extra-certs.c: $(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR:"%"=%) \
|
||||
$(wildcard $(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR:"%"=%)/*.x509)
|
||||
@$(kecho) " GEN $@"
|
||||
@echo '#include "reg.h"' > $@
|
||||
@echo 'const u8 extra_regdb_certs[] = {' >> $@
|
||||
@for f in $^ ; do test -f $$f && hexdump -v -e '1/1 "0x%.2x," "\n"' < $$f >> $@ || true ; done
|
||||
@echo '};' >> $@
|
||||
@echo 'unsigned int extra_regdb_certs_len = sizeof(extra_regdb_certs);' >> $@
|
||||
@(set -e; \
|
||||
allf=""; \
|
||||
for f in $^ ; do \
|
||||
# similar to hexdump -v -e '1/1 "0x%.2x," "\n"' \
|
||||
thisf=$$(od -An -v -tx1 < $$f | \
|
||||
sed -e 's/ /\n/g' | \
|
||||
sed -e 's/^[0-9a-f]\+$$/\0/;t;d' | \
|
||||
sed -e 's/^/0x/;s/$$/,/'); \
|
||||
# file should not be empty - maybe command substitution failed? \
|
||||
test ! -z "$$thisf";\
|
||||
allf=$$allf$$thisf;\
|
||||
done; \
|
||||
( \
|
||||
echo '#include "reg.h"'; \
|
||||
echo 'const u8 extra_regdb_certs[] = {'; \
|
||||
echo "$$allf"; \
|
||||
echo '};'; \
|
||||
echo 'unsigned int extra_regdb_certs_len = sizeof(extra_regdb_certs);'; \
|
||||
) >> $@)
|
||||
|
|
Загрузка…
Ссылка в новой задаче