diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmware_loader/fallback.c index bf68e39478147..d5bd9899df91c 100644 --- a/drivers/base/firmware_loader/fallback.c +++ b/drivers/base/firmware_loader/fallback.c @@ -163,6 +163,9 @@ static int fw_load_from_user_helper(struct firmware *firmware, out_unlock: usermodehelper_read_unlock(); + if (!ret) + dev_info(device, "Firmware loaded: %s\n", name); + return ret; } diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c index b58c42f1b1ce6..e5742f617dd9c 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -581,6 +581,7 @@ fw_get_filesystem_firmware(struct device *device, struct fw_priv *fw_priv, fw_priv->size = size; } fw_state_done(fw_priv); + dev_info(device, "Firmware loaded: %s\n", fw_priv->fw_name); break; } __putname(path); @@ -1636,6 +1637,7 @@ static int __init firmware_class_init(void) if (ret) goto out; + pr_info("Firmware loaded: %s\n", "reporting"); return register_sysfs_loader(); out: diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c index f15e7bd690b5b..1cedb926585a9 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -16,6 +16,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include @@ -680,6 +681,10 @@ static void ath_regd_sanitize(struct ath_regulatory *reg) reg->current_rd = 0x64; } +ushort ath_country_default = CTRY_UNITED_KINGDOM; +module_param_named(country_default, ath_country_default, ushort, 0644); +MODULE_PARM_DESC(country_default, "Default country when firmware is unset"); + static int __ath_regd_init(struct ath_regulatory *reg) { struct country_code_to_enum_rd *country = NULL; @@ -704,7 +709,7 @@ static int __ath_regd_init(struct ath_regulatory *reg) regdmn == CTRY_DEFAULT) { printk(KERN_DEBUG "ath: EEPROM indicates default " "country code should be used\n"); - reg->country_code = CTRY_UNITED_STATES; + reg->country_code = ath_country_default; } if (reg->country_code == CTRY_DEFAULT) { diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index d4498037fadc6..d0a62e75669a8 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -5127,16 +5127,15 @@ static int set_device_flags(struct sock *sk, struct hci_dev *hdev, void *data, &cp->addr.bdaddr, cp->addr.type, current_flags); // We should take hci_dev_lock() early, I think.. conn_flags can change + hci_dev_lock(hdev); supported_flags = hdev->conn_flags; if ((supported_flags | current_flags) != supported_flags) { bt_dev_warn(hdev, "Bad flag given (0x%x) vs supported (0x%0x)", current_flags, supported_flags); - goto done; + goto unlock; } - hci_dev_lock(hdev); - if (cp->addr.type == BDADDR_BREDR) { br_params = hci_bdaddr_list_lookup_with_flags(&hdev->accept_list, &cp->addr.bdaddr, @@ -5181,7 +5180,6 @@ static int set_device_flags(struct sock *sk, struct hci_dev *hdev, void *data, unlock: hci_dev_unlock(hdev); -done: if (status == MGMT_STATUS_SUCCESS) device_flags_changed(sk, hdev, &cp->addr.bdaddr, cp->addr.type, supported_flags, current_flags); diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 8bcf8e293308e..84a86b30977b3 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -8606,8 +8606,8 @@ static int nl80211_get_reg_do(struct sk_buff *skb, struct genl_info *info) regdom = get_wiphy_regdom(wiphy); - /* a self-managed-reg device must have a private regdom */ - if (WARN_ON(!regdom && self_managed)) { + /* a self-managed-reg device should have a private regdom */ + if (!regdom && self_managed) { err = -EINVAL; goto nla_put_failure_rcu; } diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 032774eb061e1..7c00935917bf2 100755 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -78,6 +78,10 @@ install_linux_image () { mkdir -p "${pdir}/boot" cp System.map "${pdir}/boot/System.map-${KERNELRELEASE}" cp ${KCONFIG_CONFIG} "${pdir}/boot/config-${KERNELRELEASE}" + + # allow .postinst to detect install|upgrade + touch "${pdir}/boot/.fresh-install-${KERNELRELEASE}" + fi # Not all arches have the same installed path in debian @@ -115,6 +119,30 @@ install_linux_image () { # Tell initramfs builder whether it's wanted export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No) + lus="linux-update-symlinks" + command -v "\$lus" >/dev/null || lus="true" + + case "\$1" in + install) # preinst + ;; + configure) # postinst + change="upgrade" + if [ -f /boot/.fresh-install-${KERNELRELEASE} ]; then + change="install" + rm -f /boot/.fresh-install-${KERNELRELEASE} + depmod ${KERNELRELEASE} + fi + \$lus \$change ${KERNELRELEASE} "/$installed_image_path" + ;; + upgrade) # prerm, preinst, postrm + ;; + remove) # prerm, postrm + \$lus remove ${KERNELRELEASE} "/$installed_image_path" + ;; + purge) # postrm + ;; + esac + test -d ${debhookdir}/${script}.d && run-parts --arg="${KERNELRELEASE}" --arg="/${installed_image_path}" ${debhookdir}/${script}.d exit 0 EOF @@ -130,13 +158,17 @@ install_linux_image_dbg () { for module in $(find ${image_pdir}/lib/modules/ -name *.ko -printf '%P\n'); do module=lib/modules/${module} - mkdir -p $(dirname ${pdir}/usr/lib/debug/${module}) - # only keep debug symbols in the debug file - ${OBJCOPY} --only-keep-debug ${image_pdir}/${module} ${pdir}/usr/lib/debug/${module} + if [ -z "$BUILD_DEBUG_PKG_DISABLE" ]; then + mkdir -p $(dirname ${pdir}/usr/lib/debug/${module}) + # only keep debug symbols in the debug file + ${OBJCOPY} --only-keep-debug ${image_pdir}/${module} ${pdir}/usr/lib/debug/${module} + fi # strip original module from debug symbols ${OBJCOPY} --strip-debug ${image_pdir}/${module} - # then add a link to those - ${OBJCOPY} --add-gnu-debuglink=${pdir}/usr/lib/debug/${module} ${image_pdir}/${module} + if [ -z "$BUILD_DEBUG_PKG_DISABLE" ]; then + # then add a link to those + ${OBJCOPY} --add-gnu-debuglink=${pdir}/usr/lib/debug/${module} ${image_pdir}/${module} + fi done # re-sign stripped modules @@ -144,16 +176,18 @@ install_linux_image_dbg () { ${MAKE} -f ${srctree}/Makefile INSTALL_MOD_PATH="${image_pdir}" modules_sign fi - # Build debug package - # Different tools want the image in different locations - # perf - mkdir -p ${pdir}/usr/lib/debug/lib/modules/${KERNELRELEASE}/ - cp vmlinux ${pdir}/usr/lib/debug/lib/modules/${KERNELRELEASE}/ - # systemtap - mkdir -p ${pdir}/usr/lib/debug/boot/ - ln -s ../lib/modules/${KERNELRELEASE}/vmlinux ${pdir}/usr/lib/debug/boot/vmlinux-${KERNELRELEASE} - # kdump-tools - ln -s lib/modules/${KERNELRELEASE}/vmlinux ${pdir}/usr/lib/debug/vmlinux-${KERNELRELEASE} + if [ -z "$BUILD_DEBUG_PKG_DISABLE" ]; then + # Build debug package + # Different tools want the image in different locations + # perf + mkdir -p ${pdir}/usr/lib/debug/lib/modules/${KERNELRELEASE}/ + cp vmlinux ${pdir}/usr/lib/debug/lib/modules/${KERNELRELEASE}/ + # systemtap + mkdir -p ${pdir}/usr/lib/debug/boot/ + ln -s ../lib/modules/${KERNELRELEASE}/vmlinux ${pdir}/usr/lib/debug/boot/vmlinux-${KERNELRELEASE} + # kdump-tools + ln -s lib/modules/${KERNELRELEASE}/vmlinux ${pdir}/usr/lib/debug/vmlinux-${KERNELRELEASE} + fi } install_kernel_headers () { @@ -234,7 +268,10 @@ for package in ${packages_enabled} do case ${package} in *-dbg) - create_package ${package} debian/linux-image-dbg;; + if [ -z "$BUILD_DEBUG_PKG_DISABLE" ]; then + create_package ${package} debian/linux-image-dbg + fi + ;; linux-image-*|user-mode-linux-*) create_package ${package} debian/linux-image;; linux-libc-dev)