Release linux (4.5.3-2).
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVy9ITOe/yOyVhhEJAQq2Tw/+IbJSVFZ3v7J7I6ZwZuJLmhnEpPyuE1Md OkJieChhe0wpnIFQD3fhHsKClXUzHORahq8O4qGd5BPb9ttYSr7Hm/SvPxQK91Cr mP857CZWNopLatVbKAzmQ3unFcpD/zbTGr2iC0IBmu4TJQBMr2tDejd2ndlq2psG YoaHSh1wHutenaF9iFQ2/H2V6ScM7DX9DMTOrqhFxaIkc7WaJSjpVoKCrYxRFQUX 9ogMqxPRqTzsEBxS0PwO1vBTDx2OgwkmvnY0rOj1fpswgEfwvS4XO46EpiFx45Mc grzDW6jrKMKWpeH1JC1YLvOltR/nSx4vM3E5sbjSKJQv0F1oIoQuKyfRLOw9Oe3q 4/7xqS5/aNJ9aaNPi4p7/L8JdGtkJEW26XczgXbKRlY4AfKvt7bPTztoe4KQOSDA roqmj7f782nJOerQxKScsE7HM6DpLViSoGhCyf0DNnqwQaUKDyaLhdu0LNA73wCx FMFQfZnDN8Yg0UP5BJouSoKprf4hL7CiQcMcfXqLj/QsNB8vCjfs6offKtZ7bckZ Si1L2proXY3esQ95Npd2HIKDo4gGajQ8Xkpkf9+6FZdhMLm/w17y9kppgVlcKQ/T q/emN0JEuzxMkvtZbmVMRzd0NI4tXzlBwOVcASMzI0ak5CLOPoWO0Cc/jOYg24H3 yabrIvpcq0s= =jVBT -----END PGP SIGNATURE----- Merge tag 'debian/4.5.3-2' Drop the ABI reference files and patches. Rebase patches added on the sid branch.
This commit is contained in:
commit
be31f1ecd5
|
@ -75,10 +75,9 @@ Aside from those general rules:
|
|||
list all changes that are relevant to our package and that fix bugs
|
||||
that we would consider 'important' or higher severity
|
||||
|
||||
- The script debian/bin/stable-update.sh updates the changelog
|
||||
version and inserts the list of changes (but it doesn't always
|
||||
put it in the right place!). It doesn't attempt to filter out
|
||||
irrelevant or unimportant changes.
|
||||
- The script debian/bin/stable-update updates the changelog
|
||||
version and inserts the list of changes. It doesn't attempt to
|
||||
filter out irrelevant or unimportant changes.
|
||||
|
||||
- The script debian/bin/ckt-stable-update.sh does the same for
|
||||
stable updates by the Canonical Kernel Team.
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
#!/bin/bash -eu
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo >&2 "Usage: $0 REPO VERSION"
|
||||
echo >&2 "REPO is the git repository to generate a changelog from"
|
||||
echo >&2 "VERSION is the stable version (without leading v)"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Get base version, i.e. the stable release that a branch started from
|
||||
base_version() {
|
||||
local ver
|
||||
ver="${1%-rc*}"
|
||||
case "$ver" in
|
||||
*-ckt*)
|
||||
ver="${ver%-*}"
|
||||
;;
|
||||
esac
|
||||
echo "$ver"
|
||||
}
|
||||
|
||||
add_update() {
|
||||
local base update
|
||||
base="$(base_version "$1")"
|
||||
update="${1#$base-ckt}"
|
||||
if [ "$update" = "$1" ]; then
|
||||
update=0
|
||||
fi
|
||||
update="$((update + $2))"
|
||||
if [ $update = 0 ]; then
|
||||
echo "$base"
|
||||
else
|
||||
echo "$base-ckt$update"
|
||||
fi
|
||||
}
|
||||
|
||||
# Get next stable update version
|
||||
next_update() {
|
||||
add_update "$1" 1
|
||||
}
|
||||
|
||||
export GIT_DIR="$1/.git"
|
||||
|
||||
new_ver="$2"
|
||||
cur_pkg_ver="$(dpkg-parsechangelog | sed -n 's/^Version: //p')"
|
||||
cur_ver="${cur_pkg_ver%-*}"
|
||||
|
||||
if [ "$(base_version "$new_ver")" != "$(base_version "$cur_ver")" ]; then
|
||||
echo >&2 "$new_ver is not on the same stable series as $cur_ver"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
case "$cur_pkg_ver" in
|
||||
*~exp*)
|
||||
new_pkg_ver="$new_ver-1~exp1"
|
||||
;;
|
||||
*)
|
||||
new_pkg_ver="$new_ver-1"
|
||||
;;
|
||||
esac
|
||||
|
||||
# dch insists on word-wrapping everything, so just add the first line initially
|
||||
dch -v "$new_pkg_ver" --preserve --multimaint-merge -D UNRELEASED \
|
||||
--release-heuristic=changelog 'New upstream stable update:'
|
||||
|
||||
# Then append the shortlogs with sed
|
||||
sed -i '1,/^ --/ { /New upstream stable update:/ { a\
|
||||
'"$(
|
||||
while [ "v$cur_ver" != "v$new_ver" ]; do
|
||||
next_ver="$(next_update "$cur_ver")"
|
||||
echo " http://kernel.ubuntu.com/stable/ChangeLog-$next_ver\\"
|
||||
git log --reverse --pretty=' - %s\' "v$cur_ver..v$next_ver^"
|
||||
cur_ver="$next_ver"
|
||||
done)"'
|
||||
|
||||
} }' debian/changelog
|
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
sys.path.append(sys.path[0] + "/../lib/python")
|
||||
|
||||
import os, re, subprocess
|
||||
|
||||
from debian_linux.debian import Changelog, VersionLinux
|
||||
|
||||
def base_version(ver):
|
||||
# Assume base version is at least 3.0, thus only 2 components wanted
|
||||
match = re.match(r'^(\d+\.\d+)', ver)
|
||||
assert match
|
||||
return match.group(1)
|
||||
|
||||
def add_update(ver, inc):
|
||||
base = base_version(ver)
|
||||
if base == ver:
|
||||
update = 0
|
||||
else:
|
||||
update = int(ver[len(base)+1:])
|
||||
update += inc
|
||||
if update == 0:
|
||||
return base
|
||||
else:
|
||||
return '{}.{}'.format(base, update)
|
||||
|
||||
def next_update(ver):
|
||||
return add_update(ver, 1)
|
||||
|
||||
def print_stable_log(log, cur_ver, new_ver):
|
||||
major_ver = re.sub(r'^(\d+)\..*', r'\1', cur_ver)
|
||||
while cur_ver != new_ver:
|
||||
next_ver = next_update(cur_ver)
|
||||
print(' https://www.kernel.org/pub/linux/kernel/v{}.x/ChangeLog-{}'
|
||||
.format(major_ver, next_ver),
|
||||
file=log)
|
||||
log.flush() # serialise our output with git's
|
||||
subprocess.check_call(['git', 'log', '--reverse',
|
||||
'--pretty= - %s',
|
||||
'v{}..v{}^'.format(cur_ver, next_ver)],
|
||||
stdout=log)
|
||||
cur_ver = next_ver
|
||||
|
||||
def main(repo, new_ver):
|
||||
os.environ['GIT_DIR'] = repo + '/.git'
|
||||
|
||||
changelog = Changelog(version=VersionLinux)
|
||||
cur_pkg_ver = changelog[0].version
|
||||
cur_ver = cur_pkg_ver.linux_upstream_full
|
||||
|
||||
if base_version(new_ver) != base_version(cur_ver):
|
||||
print('{} is not on the same stable series as {}'
|
||||
.format(new_ver, cur_ver),
|
||||
file=sys.stderr)
|
||||
sys.exit(2)
|
||||
|
||||
new_pkg_ver = new_ver + '-1'
|
||||
if cur_pkg_ver.linux_revision_experimental:
|
||||
new_pkg_ver += '~exp1'
|
||||
|
||||
# Three possible cases:
|
||||
# 1. The current version has been released so we need to add a new
|
||||
# version to the changelog.
|
||||
# 2. The current version has not been released so we're changing its
|
||||
# version string.
|
||||
# (a) There are no stable updates included in the current version,
|
||||
# so we need to insert an introductory line, the URL(s) and
|
||||
# git log(s) and a blank line at the top.
|
||||
# (b) One or more stable updates are already included in the current
|
||||
# version, so we need to insert the URL(s) and git log(s) after
|
||||
# them.
|
||||
|
||||
changelog_intro = 'New upstream stable update:'
|
||||
|
||||
# Case 1
|
||||
if changelog[0].distribution != 'UNRELEASED':
|
||||
subprocess.check_call(['dch', '-v', new_pkg_ver, '-D', 'UNRELEASED',
|
||||
changelog_intro])
|
||||
|
||||
with open('debian/changelog', 'r') as old_log:
|
||||
with open('debian/changelog.new', 'w') as new_log:
|
||||
line_no = 0
|
||||
inserted = False
|
||||
intro_line = ' * {}\n'.format(changelog_intro)
|
||||
|
||||
for line in old_log:
|
||||
line_no += 1
|
||||
|
||||
# Case 2
|
||||
if changelog[0].distribution == 'UNRELEASED' and line_no == 1:
|
||||
print('{} ({}) UNRELEASED; urgency={}'
|
||||
.format(changelog[0].source, new_pkg_ver,
|
||||
changelog[0].urgency),
|
||||
file=new_log)
|
||||
continue
|
||||
|
||||
if not inserted:
|
||||
# Case 2(a)
|
||||
if line_no == 3 and line != intro_line:
|
||||
new_log.write(intro_line)
|
||||
print_stable_log(new_log, cur_ver, new_ver)
|
||||
new_log.write('\n')
|
||||
inserted = True
|
||||
# Case 1 or 2(b)
|
||||
elif line_no > 3 and line == '\n':
|
||||
print_stable_log(new_log, cur_ver, new_ver)
|
||||
inserted = True
|
||||
|
||||
# Check that we inserted before hitting the end of the
|
||||
# first version entry
|
||||
assert not (line.startswith(' -- ') and not inserted)
|
||||
|
||||
new_log.write(line)
|
||||
|
||||
os.rename('debian/changelog.new', 'debian/changelog')
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 3:
|
||||
print('''\
|
||||
Usage: {} REPO VERSION"
|
||||
REPO is the git repository to generate a changelog from
|
||||
VERSION is the stable version (without leading v)'''.format(sys.argv[0]),
|
||||
file=sys.stderr)
|
||||
sys.exit(2)
|
||||
main(*sys.argv[1:])
|
|
@ -1,78 +1,2 @@
|
|||
#!/bin/bash -eu
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo >&2 "Usage: $0 REPO VERSION"
|
||||
echo >&2 "REPO is the git repository to generate a changelog from"
|
||||
echo >&2 "VERSION is the stable version (without leading v)"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Get base version, i.e. the Linus stable release that a version is based on
|
||||
base_version() {
|
||||
local ver
|
||||
ver="${1%-rc*}"
|
||||
case "$ver" in
|
||||
2.6.*.* | [3-9].*.* | ??.*.*)
|
||||
ver="${ver%.*}"
|
||||
;;
|
||||
esac
|
||||
echo "$ver"
|
||||
}
|
||||
|
||||
add_update() {
|
||||
local base update
|
||||
base="$(base_version "$1")"
|
||||
update="${1#$base.}"
|
||||
if [ "$update" = "$1" ]; then
|
||||
update=0
|
||||
fi
|
||||
update="$((update + $2))"
|
||||
if [ $update = 0 ]; then
|
||||
echo "$base"
|
||||
else
|
||||
echo "$base.$update"
|
||||
fi
|
||||
}
|
||||
|
||||
# Get next stable update version
|
||||
next_update() {
|
||||
add_update "$1" 1
|
||||
}
|
||||
|
||||
export GIT_DIR="$1/.git"
|
||||
|
||||
new_ver="$2"
|
||||
cur_pkg_ver="$(dpkg-parsechangelog | sed -n 's/^Version: //p')"
|
||||
cur_ver="${cur_pkg_ver%-*}"
|
||||
|
||||
if [ "$(base_version "$new_ver")" != "$(base_version "$cur_ver")" ]; then
|
||||
echo >&2 "$new_ver is not on the same stable series as $cur_ver"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
case "$cur_pkg_ver" in
|
||||
*~exp*)
|
||||
new_pkg_ver="$new_ver-1~exp1"
|
||||
;;
|
||||
*)
|
||||
new_pkg_ver="$new_ver-1"
|
||||
;;
|
||||
esac
|
||||
|
||||
# dch insists on word-wrapping everything, so just add the URLs initially
|
||||
dch -v "$new_pkg_ver" --preserve --multimaint-merge -D UNRELEASED \
|
||||
--release-heuristic=changelog "$(
|
||||
echo "New upstream stable update: "
|
||||
while [ "v$cur_ver" != "v$new_ver" ]; do
|
||||
cur_ver="$(next_update "$cur_ver")"
|
||||
echo "https://www.kernel.org/pub/linux/kernel/v${cur_ver%%.*}.x/ChangeLog-$cur_ver"
|
||||
done)"
|
||||
|
||||
# Then insert the shortlogs with sed
|
||||
while [ "v$cur_ver" != "v$new_ver" ]; do
|
||||
next_ver="$(next_update "$cur_ver")"
|
||||
sed -i '/ChangeLog-'"${next_ver//./\\.}"'/a\
|
||||
'"$(git log --reverse --pretty=' - %s\' "v$cur_ver..v$next_ver^")"'
|
||||
' debian/changelog
|
||||
cur_ver="$next_ver"
|
||||
done
|
||||
#!/bin/sh -e
|
||||
exec "$(dirname "$0")/stable-update" "$@"
|
||||
|
|
|
@ -37,6 +37,211 @@ linux (4.6~rc3-1~exp1) experimental; urgency=medium
|
|||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Thu, 14 Apr 2016 23:55:15 +0100
|
||||
|
||||
linux (4.5.3-2) unstable; urgency=medium
|
||||
|
||||
* [s390x] PCI: Ignore zpci ABI changes; these functions are not used by
|
||||
modules
|
||||
* [powerpc*] Fix sstep compile on powerpcspe (Closes: #823526; thanks to
|
||||
Lennart Sorensen)
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Sun, 08 May 2016 15:03:45 +0100
|
||||
|
||||
linux (4.5.3-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.3
|
||||
- mmc: block: Use the mmc host device index as the mmcblk device index
|
||||
- block: partition: initialize percpuref before sending out KOBJ_ADD
|
||||
- block: loop: fix filesystem corruption in case of aio/dio
|
||||
- [arm64] efi: Don't apply MEMBLOCK_NOMAP to UEFI memory map mapping
|
||||
- [x86] mce: Avoid using object after free in genpool
|
||||
- [x86] kvm: do not leak guest xcr0 into host interrupt handlers
|
||||
- [arm*] KVM: Handle forward time correction gracefully
|
||||
- [armhf] mvebu: Correct unit address for linksys
|
||||
- [armhf] OMAP2: Fix up interconnect barrier initialization for DRA7
|
||||
- [armhf] OMAP2+: hwmod: Fix updating of sysconfig register
|
||||
- assoc_array: don't call compare_object() on a node
|
||||
- [x86] usb: xhci: applying XHCI_PME_STUCK_QUIRK to Intel BXT B0 host
|
||||
- xhci: resume USB 3 roothub first
|
||||
- usb: host: xhci: add a new quirk XHCI_NO_64BIT_SUPPORT
|
||||
- usb: xhci: fix wild pointers in xhci_mem_cleanup
|
||||
- xhci: fix 10 second timeout on removal of PCI hotpluggable xhci
|
||||
controllers
|
||||
- usb: host: xhci-plat: Make enum xhci_plat_type start at a non zero value
|
||||
- usb: hcd: out of bounds access in for_each_companion
|
||||
- usb: gadget: f_fs: Fix use-after-free
|
||||
- dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros
|
||||
- dm cache metadata: fix cmd_read_lock() acquiring write lock
|
||||
- lib: lz4: fixed zram with lz4 on big endian machines
|
||||
- debugfs: Make automount point inodes permanently empty
|
||||
- dmaengine: dw: fix master selection
|
||||
- [armhf] dmaengine: omap-dma: Fix polled channel completion detection
|
||||
and handling
|
||||
- dmaengine: edma: Remove dynamic TPTC power management feature
|
||||
- mtd: nand: pxa3xx_nand: fix dmaengine initialization
|
||||
- sched/cgroup: Fix/cleanup cgroup teardown/init
|
||||
- [x86] EDAC, sb_edac.c: Repair damage introduced when "fixing"
|
||||
channel address
|
||||
- [x86] EDAC, sb_edac.c: Take account of channel hashing when needed
|
||||
- ALSA: hda - Don't trust the reported actual power state
|
||||
- [x86] ALSA: hda/realtek - Add ALC3234 headset mode for Optiplex 9020m
|
||||
- ALSA: hda - Keep powering up ADCs on Cirrus codecs
|
||||
- [x86] ALSA: hda - add PCI ID for Intel Broxton-T
|
||||
- ALSA: pcxhr: Fix missing mutex unlock
|
||||
- [x86] ALSA: hda - Add dock support for ThinkPad X260
|
||||
- [x86] ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW
|
||||
- asm-generic/futex: Re-enable preemption in futex_atomic_cmpxchg_inatomic()
|
||||
- futex: Handle unlock_pi race gracefully
|
||||
- futex: Acknowledge a new waiter in counter before plist
|
||||
- drm/nouveau/core: use vzalloc for allocating ramht
|
||||
- drm/qxl: fix cursor position with non-zero hotspot
|
||||
- [x86] drm/i915: Fix race condition in intel_dp_destroy_mst_connector()
|
||||
- Revert "drm/radeon: disable runtime pm on PX laptops without dGPU
|
||||
power control"
|
||||
- [armhf] Revert "PCI: imx6: Add support for active-low reset GPIO"
|
||||
- usbvision: revert commit 588afcc1
|
||||
- [x86] Revert "drm/amdgpu: disable runtime pm on PX laptops without dGPU
|
||||
power control"
|
||||
- cpufreq: intel_pstate: Fix processing for turbo activation ratio
|
||||
- [s390x] pci: add extra padding to function measurement block
|
||||
- iwlwifi: pcie: lower the debug level for RSA semaphore access
|
||||
- iwlwifi: mvm: fix memory leak in paging
|
||||
- crypto: rsa-pkcs1pad - fix dst len
|
||||
- [x86] crypto: ccp - Prevent information leakage on export
|
||||
- crypto: sha1-mb - use corrcet pointer while completing jobs
|
||||
- [powerpc*] scan_features() updates incorrect bits for REAL_LE
|
||||
- [powerpc*] Update cpu_user_features2 in scan_features()
|
||||
- [powerpc*] Update TM user feature bits in scan_features()
|
||||
- nl80211: check netlink protocol in socket release notification
|
||||
- netlink: don't send NETLINK_URELEASE for unbound sockets
|
||||
- pinctrl: single: Fix pcs_parse_bits_in_pinctrl_entry to use __ffs than ffs
|
||||
- [x86] iommu/amd: Fix checking of pci dma aliases
|
||||
- iommu/dma: Restore scatterlist offsets correctly
|
||||
- [x86] drm/amdgpu: when suspending, if uvd/vce was running. need to cancel
|
||||
delay work.
|
||||
- [x86] drm/amdgpu: use defines for CRTCs and AMFT blocks
|
||||
- [x86] drm/amdgpu: bump the afmt limit for CZ, ST, Polaris
|
||||
- [x86] amdgpu/uvd: add uvd fw version for amdgpu
|
||||
- [x86] drm/amdgpu: fix regression on CIK (v2)
|
||||
- drm/radeon: add a quirk for a XFX R9 270X
|
||||
- drm/radeon: fix initial connector audio value
|
||||
- drm/radeon: forbid mapping of userptr bo through radeon device file
|
||||
- drm/radeon: fix vertical bars appear on monitor (v2)
|
||||
- [mips*el/loongson-3] drm: Loongson-3 doesn't fully support wc memory
|
||||
- drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries
|
||||
- drm/dp/mst: Validate port in drm_dp_payload_send_msg()
|
||||
- drm/dp/mst: Restore primary hub guid on resume
|
||||
- drm/dp/mst: Get validated port ref in drm_dp_update_payload_part1()
|
||||
- [x86] drm/i915: Pass the correct encoder to intel_ddi_clk_select()
|
||||
with MST
|
||||
- [x86] drm/i915: Cleanup phys status page too
|
||||
- [x86] drm/i915: Use the active wm config for merging on ILK-BDW
|
||||
- [x86] drm/i915: Start WM computation from scratch on ILK-BDW
|
||||
- [x86] drm/i915: skl_update_scaler() wants a rotation bitmask instead of
|
||||
bit number
|
||||
- [x86] drm/amdkfd: uninitialized variable in
|
||||
dbgdev_wave_control_set_registers()
|
||||
- [x86] drm/i915/skl: Fix DMC load on Skylake J0 and K0
|
||||
- [x86] drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs
|
||||
- [x86] drm/i915: Fixup the free space logic in ring_prepare
|
||||
- [x86] drm/i915: Force ringbuffers to not be at offset 0
|
||||
- [x86] drm/i915: Use fw_domains_put_with_fifo() on HSW
|
||||
- drm/ttm: fix kref count mess in ttm_bo_move_to_lru_tail
|
||||
- [x86] perf intel-pt: Fix segfault tracing transactions
|
||||
- [armhf] i2c: exynos5: Fix possible ABBA deadlock by keeping I2C
|
||||
clock prepared
|
||||
- ACPICA / Interpreter: Fix a regression triggered because of wrong Linux
|
||||
ECDT support
|
||||
- [x86] mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs
|
||||
- [x86] toshiba_acpi: Fix regression caused by hotkey enabling value
|
||||
- [x86] EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder
|
||||
callback
|
||||
- [x86] ASoC: ssm4567: Reset device before regcache_sync()
|
||||
- [x86] ASoC: rt5640: Correct the digital interface data select
|
||||
- vb2-memops: Fix over allocation of frame vectors
|
||||
- media: vb2: Fix regression on poll() for RW mode
|
||||
- videobuf2-core: Check user space planes array in dqbuf
|
||||
- videobuf2-v4l2: Verify planes array in buffer dequeueing (CVE-2016-4568)
|
||||
- v4l2-dv-timings.h: fix polarity for 4k formats
|
||||
- IB/core: Fix oops in ib_cache_gid_set_default_gid
|
||||
- mwifiex: fix IBSS data path issue.
|
||||
- IB/mlx5: Expose correct max_sge_rd limit
|
||||
- IB/security: Restrict use of the write() interface (CVE-2016-4565)
|
||||
- efi: Fix out-of-bounds read in variable_matches()
|
||||
- efi: Expose non-blocking set_variable() wrapper to efivars
|
||||
- [x86] apic: Handle zero vector gracefully in clear_vector_irq()
|
||||
- workqueue: fix ghost PENDING flag while doing MQ IO
|
||||
- slub: clean up code for kmem cgroup support to kmem_cache_free_bulk
|
||||
- cgroup, cpuset: replace cpuset_post_attach_flush() with
|
||||
cgroup_subsys->post_attach callback
|
||||
- memcg: relocate charge moving from ->attach to ->post_attach
|
||||
- mm: exclude HugeTLB pages from THP page_mapped() logic
|
||||
- mm/huge_memory: replace VM_NO_THP VM_BUG_ON with actual VMA check
|
||||
- numa: fix /proc/<pid>/numa_maps for THP
|
||||
- mm: vmscan: reclaim highmem zone if buffer_heads is over limit
|
||||
- mm/hwpoison: fix wrong num_poisoned_pages accounting
|
||||
- locking/mcs: Fix mcs_spin_lock() ordering
|
||||
- [armhf] spi/rockchip: Make sure spi clk is on in rockchip_spi_set_cs
|
||||
- [armhf] irqchip/sunxi-nmi: Fix error check of of_io_request_and_map()
|
||||
- [armhf] regulator: s5m8767: fix get_register() error handling
|
||||
- scsi_dh: force modular build if SCSI is a module
|
||||
- lib/mpi: Endianness fix
|
||||
- [x86] misc: mic/scif: fix wrap around tests
|
||||
- PM / OPP: Initialize u_volt_min/max to a valid value
|
||||
- PM / Domains: Fix removal of a subdomain
|
||||
- drivers/misc/ad525x_dpot: AD5274 fix RDAC read back errors
|
||||
- perf evlist: Reference count the cpu and thread maps at set_maps()
|
||||
- perf tools: Fix perf script python database export crash
|
||||
- [x86] mm/kmmio: Fix mmiotrace for hugepages
|
||||
- ext4: fix NULL pointer dereference in ext4_mark_inode_dirty()
|
||||
- f2fs crypto: fix corrupted symlink in encrypted case
|
||||
- f2fs: slightly reorganize read_raw_super_block
|
||||
- f2fs: cover large section in sanity check of super
|
||||
- ext4/fscrypto: avoid RCU lookup in d_revalidate
|
||||
- f2fs: do f2fs_balance_fs when block is allocated
|
||||
- f2fs: don't need to call set_page_dirty for io error
|
||||
- f2fs crypto: handle unexpected lack of encryption keys
|
||||
- f2fs crypto: make sure the encryption info is initialized on opendir(2)
|
||||
- bus: uniphier-system-bus: fix condition of overlap check
|
||||
- mtd: spi-nor: remove micron_quad_enable()
|
||||
- mtd: brcmnand: Fix v7.1 register offsets
|
||||
- mtd: nand: Drop mtd.owner requirement in nand_scan
|
||||
- perf hists browser: Only offer symbol scripting when a symbol is under
|
||||
the cursor
|
||||
- perf hists browser: Fix dump to show correct callchain style
|
||||
- perf tools: handle spaces in file names obtained from /proc/pid/maps
|
||||
- NTB: Remove _addr functions from ntb_hw_amd
|
||||
- perf/core: Don't leak event in the syscall error path
|
||||
- perf/core: Fix time tracking bug with multiplexing
|
||||
- perf hists: Fix determination of a callchain node's childlessness
|
||||
- [armhf] OMAP3: Add cpuidle parameters table for omap3430
|
||||
- [armhf] dts: armada-375: use armada-370-sata for SATA
|
||||
- [armhf] dts: am33xx: Fix GPMC dma properties
|
||||
- btrfs: fix memory leak of fs_info in block group cache
|
||||
- btrfs: cleaner_kthread() doesn't need explicit freeze
|
||||
- [armhf] thermal: rockchip: fix a impossible condition caused by the
|
||||
warning
|
||||
- sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects
|
||||
a race
|
||||
- megaraid_sas: add missing curly braces in ioctl handler
|
||||
- tpm: fix checks for policy digest existence in tpm2_seal_trusted()
|
||||
- tpm: fix: set continueSession attribute for the unseal operation
|
||||
|
||||
[ Uwe Kleine-König ]
|
||||
* [armhf] enable I2C_MUX_PCA954x, MMC_SDHCI_PXAV3, AHCI_MVEBU
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* bug control: Update list of related firmware packages
|
||||
* Revert "sp5100_tco: fix the device check for SB800 and later chipsets"
|
||||
(Closes: #823146; probably fixes #822651)
|
||||
* bpf: fix double-fdput in replace_map_fd_with_map_ptr() (CVE-2016-4557)
|
||||
(Closes: #823603)
|
||||
* bpf: fix refcnt overflow (CVE-2016-4558)
|
||||
* bpf: fix check_map_func_compatibility logic
|
||||
* stable-update: Rewrite stable-update.sh in Python
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Sat, 07 May 2016 21:59:15 +0100
|
||||
|
||||
linux (4.5.2-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
|
|
|
@ -144,6 +144,7 @@ CONFIG_OMAP_PM_NOOP=y
|
|||
##
|
||||
CONFIG_SATA_AHCI_PLATFORM=m
|
||||
CONFIG_AHCI_IMX=m
|
||||
CONFIG_AHCI_MVEBU=m
|
||||
CONFIG_AHCI_SUNXI=m
|
||||
CONFIG_AHCI_TEGRA=m
|
||||
CONFIG_SATA_HIGHBANK=m
|
||||
|
@ -346,6 +347,11 @@ CONFIG_SENSORS_GPIO_FAN=m
|
|||
##
|
||||
CONFIG_HWSPINLOCK_OMAP=m
|
||||
|
||||
##
|
||||
## file: drivers/i2c/Kconfig
|
||||
##
|
||||
CONFIG_I2C_MUX=m
|
||||
|
||||
##
|
||||
## file: drivers/i2c/busses/Kconfig
|
||||
##
|
||||
|
@ -365,6 +371,7 @@ CONFIG_I2C_VERSATILE=m
|
|||
## file: drivers/i2c/muxes/Kconfig
|
||||
##
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
|
||||
CONFIG_I2C_MUX_PCA954x=m
|
||||
|
||||
##
|
||||
## file: drivers/iio/Kconfig
|
||||
|
@ -533,6 +540,7 @@ CONFIG_MMC_SDHCI=m
|
|||
CONFIG_MMC_SDHCI_PLTFM=m
|
||||
CONFIG_MMC_SDHCI_ESDHC_IMX=m
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MMC_SDHCI_BCM2835=m
|
||||
CONFIG_MMC_OMAP=m
|
||||
CONFIG_MMC_OMAP_HS=m
|
||||
|
|
|
@ -21,15 +21,19 @@ class Changelog(list):
|
|||
(?P<distribution>
|
||||
[-+0-9a-zA-Z.]+
|
||||
)
|
||||
\;
|
||||
\;\s+urgency=
|
||||
(?P<urgency>
|
||||
\w+
|
||||
)
|
||||
"""
|
||||
_re = re.compile(_rules, re.X)
|
||||
|
||||
class Entry(object):
|
||||
__slot__ = 'distribution', 'source', 'version'
|
||||
__slot__ = 'distribution', 'source', 'version', 'urgency'
|
||||
|
||||
def __init__(self, distribution, source, version):
|
||||
self.distribution, self.source, self.version = distribution, source, version
|
||||
def __init__(self, distribution, source, version, urgency):
|
||||
self.distribution, self.source, self.version, self.urgency = \
|
||||
distribution, source, version, urgency
|
||||
|
||||
def __init__(self, dir='', version=None):
|
||||
if version is None:
|
||||
|
@ -48,7 +52,9 @@ class Changelog(list):
|
|||
if not len(self):
|
||||
raise
|
||||
v = Version(match.group('version'))
|
||||
self.append(self.Entry(match.group('distribution'), match.group('source'), v))
|
||||
self.append(self.Entry(match.group('distribution'),
|
||||
match.group('source'), v,
|
||||
match.group('urgency')))
|
||||
|
||||
|
||||
class Version(object):
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
From: Alexei Starovoitov <ast@fb.com>
|
||||
Date: Wed, 27 Apr 2016 18:56:21 -0700
|
||||
Subject: [3/3] bpf: fix check_map_func_compatibility logic
|
||||
Origin: https://git.kernel.org/linus/6aff67c85c9e5a4bc99e5211c1bac547936626ca
|
||||
|
||||
The commit 35578d798400 ("bpf: Implement function bpf_perf_event_read() that get the selected hardware PMU conuter")
|
||||
introduced clever way to check bpf_helper<->map_type compatibility.
|
||||
Later on commit a43eec304259 ("bpf: introduce bpf_perf_event_output() helper") adjusted
|
||||
the logic and inadvertently broke it.
|
||||
Get rid of the clever bool compare and go back to two-way check
|
||||
from map and from helper perspective.
|
||||
|
||||
Fixes: a43eec304259 ("bpf: introduce bpf_perf_event_output() helper")
|
||||
Reported-by: Jann Horn <jannh@google.com>
|
||||
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
|
||||
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
kernel/bpf/verifier.c | 65 +++++++++++++++++++++++++++++++--------------------
|
||||
1 file changed, 40 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
|
||||
index 89bcaa0966da..c5c17a62f509 100644
|
||||
--- a/kernel/bpf/verifier.c
|
||||
+++ b/kernel/bpf/verifier.c
|
||||
@@ -239,16 +239,6 @@ static const char * const reg_type_str[] = {
|
||||
[CONST_IMM] = "imm",
|
||||
};
|
||||
|
||||
-static const struct {
|
||||
- int map_type;
|
||||
- int func_id;
|
||||
-} func_limit[] = {
|
||||
- {BPF_MAP_TYPE_PROG_ARRAY, BPF_FUNC_tail_call},
|
||||
- {BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_FUNC_perf_event_read},
|
||||
- {BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_FUNC_perf_event_output},
|
||||
- {BPF_MAP_TYPE_STACK_TRACE, BPF_FUNC_get_stackid},
|
||||
-};
|
||||
-
|
||||
static void print_verifier_state(struct verifier_env *env)
|
||||
{
|
||||
enum bpf_reg_type t;
|
||||
@@ -921,27 +911,52 @@ static int check_func_arg(struct verifier_env *env, u32 regno,
|
||||
|
||||
static int check_map_func_compatibility(struct bpf_map *map, int func_id)
|
||||
{
|
||||
- bool bool_map, bool_func;
|
||||
- int i;
|
||||
-
|
||||
if (!map)
|
||||
return 0;
|
||||
|
||||
- for (i = 0; i < ARRAY_SIZE(func_limit); i++) {
|
||||
- bool_map = (map->map_type == func_limit[i].map_type);
|
||||
- bool_func = (func_id == func_limit[i].func_id);
|
||||
- /* only when map & func pair match it can continue.
|
||||
- * don't allow any other map type to be passed into
|
||||
- * the special func;
|
||||
- */
|
||||
- if (bool_func && bool_map != bool_func) {
|
||||
- verbose("cannot pass map_type %d into func %d\n",
|
||||
- map->map_type, func_id);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
+ /* We need a two way check, first is from map perspective ... */
|
||||
+ switch (map->map_type) {
|
||||
+ case BPF_MAP_TYPE_PROG_ARRAY:
|
||||
+ if (func_id != BPF_FUNC_tail_call)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ case BPF_MAP_TYPE_PERF_EVENT_ARRAY:
|
||||
+ if (func_id != BPF_FUNC_perf_event_read &&
|
||||
+ func_id != BPF_FUNC_perf_event_output)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ case BPF_MAP_TYPE_STACK_TRACE:
|
||||
+ if (func_id != BPF_FUNC_get_stackid)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* ... and second from the function itself. */
|
||||
+ switch (func_id) {
|
||||
+ case BPF_FUNC_tail_call:
|
||||
+ if (map->map_type != BPF_MAP_TYPE_PROG_ARRAY)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ case BPF_FUNC_perf_event_read:
|
||||
+ case BPF_FUNC_perf_event_output:
|
||||
+ if (map->map_type != BPF_MAP_TYPE_PERF_EVENT_ARRAY)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ case BPF_FUNC_get_stackid:
|
||||
+ if (map->map_type != BPF_MAP_TYPE_STACK_TRACE)
|
||||
+ goto error;
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
+error:
|
||||
+ verbose("cannot pass map_type %d into func %d\n",
|
||||
+ map->map_type, func_id);
|
||||
+ return -EINVAL;
|
||||
}
|
||||
|
||||
static int check_call(struct verifier_env *env, int func_id)
|
|
@ -0,0 +1,147 @@
|
|||
From: Alexei Starovoitov <ast@fb.com>
|
||||
Date: Wed, 27 Apr 2016 18:56:20 -0700
|
||||
Subject: [2/3] bpf: fix refcnt overflow
|
||||
Origin: https://git.kernel.org/linus/92117d8443bc5afacc8d5ba82e541946310f106e
|
||||
|
||||
On a system with >32Gbyte of phyiscal memory and infinite RLIMIT_MEMLOCK,
|
||||
the malicious application may overflow 32-bit bpf program refcnt.
|
||||
It's also possible to overflow map refcnt on 1Tb system.
|
||||
Impose 32k hard limit which means that the same bpf program or
|
||||
map cannot be shared by more than 32k processes.
|
||||
|
||||
Fixes: 1be7f75d1668 ("bpf: enable non-root eBPF programs")
|
||||
Reported-by: Jann Horn <jannh@google.com>
|
||||
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
|
||||
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
include/linux/bpf.h | 3 ++-
|
||||
kernel/bpf/inode.c | 7 ++++---
|
||||
kernel/bpf/syscall.c | 24 ++++++++++++++++++++----
|
||||
kernel/bpf/verifier.c | 11 +++++++----
|
||||
4 files changed, 33 insertions(+), 12 deletions(-)
|
||||
|
||||
--- a/include/linux/bpf.h
|
||||
+++ b/include/linux/bpf.h
|
||||
@@ -171,12 +171,13 @@ void bpf_register_prog_type(struct bpf_p
|
||||
void bpf_register_map_type(struct bpf_map_type_list *tl);
|
||||
|
||||
struct bpf_prog *bpf_prog_get(u32 ufd);
|
||||
+struct bpf_prog *bpf_prog_inc(struct bpf_prog *prog);
|
||||
void bpf_prog_put(struct bpf_prog *prog);
|
||||
void bpf_prog_put_rcu(struct bpf_prog *prog);
|
||||
|
||||
struct bpf_map *bpf_map_get_with_uref(u32 ufd);
|
||||
struct bpf_map *__bpf_map_get(struct fd f);
|
||||
-void bpf_map_inc(struct bpf_map *map, bool uref);
|
||||
+struct bpf_map *bpf_map_inc(struct bpf_map *map, bool uref);
|
||||
void bpf_map_put_with_uref(struct bpf_map *map);
|
||||
void bpf_map_put(struct bpf_map *map);
|
||||
int bpf_map_precharge_memlock(u32 pages);
|
||||
--- a/kernel/bpf/inode.c
|
||||
+++ b/kernel/bpf/inode.c
|
||||
@@ -31,10 +31,10 @@ static void *bpf_any_get(void *raw, enum
|
||||
{
|
||||
switch (type) {
|
||||
case BPF_TYPE_PROG:
|
||||
- atomic_inc(&((struct bpf_prog *)raw)->aux->refcnt);
|
||||
+ raw = bpf_prog_inc(raw);
|
||||
break;
|
||||
case BPF_TYPE_MAP:
|
||||
- bpf_map_inc(raw, true);
|
||||
+ raw = bpf_map_inc(raw, true);
|
||||
break;
|
||||
default:
|
||||
WARN_ON_ONCE(1);
|
||||
@@ -297,7 +297,8 @@ static void *bpf_obj_do_get(const struct
|
||||
goto out;
|
||||
|
||||
raw = bpf_any_get(inode->i_private, *type);
|
||||
- touch_atime(&path);
|
||||
+ if (!IS_ERR(raw))
|
||||
+ touch_atime(&path);
|
||||
|
||||
path_put(&path);
|
||||
return raw;
|
||||
--- a/kernel/bpf/syscall.c
|
||||
+++ b/kernel/bpf/syscall.c
|
||||
@@ -218,11 +218,18 @@ struct bpf_map *__bpf_map_get(struct fd
|
||||
return f.file->private_data;
|
||||
}
|
||||
|
||||
-void bpf_map_inc(struct bpf_map *map, bool uref)
|
||||
+/* prog's and map's refcnt limit */
|
||||
+#define BPF_MAX_REFCNT 32768
|
||||
+
|
||||
+struct bpf_map *bpf_map_inc(struct bpf_map *map, bool uref)
|
||||
{
|
||||
- atomic_inc(&map->refcnt);
|
||||
+ if (atomic_inc_return(&map->refcnt) > BPF_MAX_REFCNT) {
|
||||
+ atomic_dec(&map->refcnt);
|
||||
+ return ERR_PTR(-EBUSY);
|
||||
+ }
|
||||
if (uref)
|
||||
atomic_inc(&map->usercnt);
|
||||
+ return map;
|
||||
}
|
||||
|
||||
struct bpf_map *bpf_map_get_with_uref(u32 ufd)
|
||||
@@ -234,7 +241,7 @@ struct bpf_map *bpf_map_get_with_uref(u3
|
||||
if (IS_ERR(map))
|
||||
return map;
|
||||
|
||||
- bpf_map_inc(map, true);
|
||||
+ map = bpf_map_inc(map, true);
|
||||
fdput(f);
|
||||
|
||||
return map;
|
||||
@@ -658,6 +665,15 @@ static struct bpf_prog *__bpf_prog_get(s
|
||||
return f.file->private_data;
|
||||
}
|
||||
|
||||
+struct bpf_prog *bpf_prog_inc(struct bpf_prog *prog)
|
||||
+{
|
||||
+ if (atomic_inc_return(&prog->aux->refcnt) > BPF_MAX_REFCNT) {
|
||||
+ atomic_dec(&prog->aux->refcnt);
|
||||
+ return ERR_PTR(-EBUSY);
|
||||
+ }
|
||||
+ return prog;
|
||||
+}
|
||||
+
|
||||
/* called by sockets/tracing/seccomp before attaching program to an event
|
||||
* pairs with bpf_prog_put()
|
||||
*/
|
||||
@@ -670,7 +686,7 @@ struct bpf_prog *bpf_prog_get(u32 ufd)
|
||||
if (IS_ERR(prog))
|
||||
return prog;
|
||||
|
||||
- atomic_inc(&prog->aux->refcnt);
|
||||
+ prog = bpf_prog_inc(prog);
|
||||
fdput(f);
|
||||
|
||||
return prog;
|
||||
--- a/kernel/bpf/verifier.c
|
||||
+++ b/kernel/bpf/verifier.c
|
||||
@@ -2049,15 +2049,18 @@ static int replace_map_fd_with_map_ptr(s
|
||||
return -E2BIG;
|
||||
}
|
||||
|
||||
- /* remember this map */
|
||||
- env->used_maps[env->used_map_cnt++] = map;
|
||||
-
|
||||
/* hold the map. If the program is rejected by verifier,
|
||||
* the map will be released by release_maps() or it
|
||||
* will be used by the valid program until it's unloaded
|
||||
* and all maps are released in free_bpf_prog_info()
|
||||
*/
|
||||
- bpf_map_inc(map, false);
|
||||
+ map = bpf_map_inc(map, false);
|
||||
+ if (IS_ERR(map)) {
|
||||
+ fdput(f);
|
||||
+ return PTR_ERR(map);
|
||||
+ }
|
||||
+ env->used_maps[env->used_map_cnt++] = map;
|
||||
+
|
||||
fdput(f);
|
||||
next_insn:
|
||||
insn++;
|
|
@ -0,0 +1,48 @@
|
|||
From: "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca>
|
||||
Subject: powerpc: Fix sstep compile on powerpcspe
|
||||
Date: Thu, 5 May 2016 16:44:44 -0400
|
||||
Forwarded: http://news.gmane.org/gmane.linux.ports.ppc.embedded/95502
|
||||
Bug-Debian: https://bugs.debian.org/823526
|
||||
|
||||
Commit be96f63375a14ee8e690856ac77e579c75bd0bae introduced ldarx and stdcx
|
||||
into the instructions in sstep.c, which are not accepted by the assembler
|
||||
on powerpcspe, but does seem to be accepted by the normal powerpc assembler
|
||||
even in 32 bit mode.
|
||||
|
||||
Wrap these two instructions in a __powerpc64__ check like it is everywhere
|
||||
else in the file.
|
||||
|
||||
Fixes: be96f63375a1 ("powerpc: Split out instruction analysis part of emulate_step()")
|
||||
Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
|
||||
---
|
||||
arch/powerpc/lib/sstep.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
|
||||
index dc885b3..6d34310 100644
|
||||
--- a/arch/powerpc/lib/sstep.c
|
||||
+++ b/arch/powerpc/lib/sstep.c
|
||||
@@ -1818,9 +1818,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
||||
case 4:
|
||||
__get_user_asmx(val, op.ea, err, "lwarx");
|
||||
break;
|
||||
+#ifdef __powerpc64__
|
||||
case 8:
|
||||
__get_user_asmx(val, op.ea, err, "ldarx");
|
||||
break;
|
||||
+#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@@ -1841,9 +1843,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
||||
case 4:
|
||||
__put_user_asmx(op.val, op.ea, err, "stwcx.", cr);
|
||||
break;
|
||||
+#ifdef __powerpc64__
|
||||
case 8:
|
||||
__put_user_asmx(op.val, op.ea, err, "stdcx.", cr);
|
||||
break;
|
||||
+#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
73
debian/patches/bugfix/x86/revert-sp5100_tco-fix-the-device-check-for-SB800-and.patch
vendored
Normal file
73
debian/patches/bugfix/x86/revert-sp5100_tco-fix-the-device-check-for-SB800-and.patch
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Mon, 2 May 2016 21:15:00 +0200
|
||||
Subject: Revert "sp5100_tco: fix the device check for SB800 and later chipsets"
|
||||
Bug: https://bugzilla.kernel.org/show_bug.cgi?id=114201
|
||||
Bug-Debian: https://bugs.debian.org/823146
|
||||
|
||||
This reverts commit bdecfcdb5461834aab24002bb18d3cbdd907b7fb, which
|
||||
caused log flooding and hung CPUs on some systems.
|
||||
---
|
||||
drivers/watchdog/sp5100_tco.c | 28 ++++++++++++----------------
|
||||
1 file changed, 12 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c
|
||||
index 6467b91f2245..0ccadb44b609 100644
|
||||
--- a/drivers/watchdog/sp5100_tco.c
|
||||
+++ b/drivers/watchdog/sp5100_tco.c
|
||||
@@ -335,24 +335,21 @@ static unsigned char sp5100_tco_setupdevice(void)
|
||||
if (!sp5100_tco_pci)
|
||||
return 0;
|
||||
|
||||
- pr_info("PCI Vendor ID: 0x%x, Device ID: 0x%x, Revision ID: 0x%x\n",
|
||||
- sp5100_tco_pci->vendor, sp5100_tco_pci->device,
|
||||
- sp5100_tco_pci->revision);
|
||||
+ pr_info("PCI Revision ID: 0x%x\n", sp5100_tco_pci->revision);
|
||||
|
||||
/*
|
||||
* Determine type of southbridge chipset.
|
||||
*/
|
||||
- if (sp5100_tco_pci->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS &&
|
||||
- sp5100_tco_pci->revision < 0x40) {
|
||||
- dev_name = SP5100_DEVNAME;
|
||||
- index_reg = SP5100_IO_PM_INDEX_REG;
|
||||
- data_reg = SP5100_IO_PM_DATA_REG;
|
||||
- base_addr = SP5100_PM_WATCHDOG_BASE;
|
||||
- } else {
|
||||
+ if (sp5100_tco_pci->revision >= 0x40) {
|
||||
dev_name = SB800_DEVNAME;
|
||||
index_reg = SB800_IO_PM_INDEX_REG;
|
||||
data_reg = SB800_IO_PM_DATA_REG;
|
||||
base_addr = SB800_PM_WATCHDOG_BASE;
|
||||
+ } else {
|
||||
+ dev_name = SP5100_DEVNAME;
|
||||
+ index_reg = SP5100_IO_PM_INDEX_REG;
|
||||
+ data_reg = SP5100_IO_PM_DATA_REG;
|
||||
+ base_addr = SP5100_PM_WATCHDOG_BASE;
|
||||
}
|
||||
|
||||
/* Request the IO ports used by this driver */
|
||||
@@ -388,12 +385,7 @@ static unsigned char sp5100_tco_setupdevice(void)
|
||||
* Secondly, Find the watchdog timer MMIO address
|
||||
* from SBResource_MMIO register.
|
||||
*/
|
||||
- if (sp5100_tco_pci->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS &&
|
||||
- sp5100_tco_pci->revision < 0x40) {
|
||||
- /* Read SBResource_MMIO from PCI config(PCI_Reg: 9Ch) */
|
||||
- pci_read_config_dword(sp5100_tco_pci,
|
||||
- SP5100_SB_RESOURCE_MMIO_BASE, &val);
|
||||
- } else {
|
||||
+ if (sp5100_tco_pci->revision >= 0x40) {
|
||||
/* Read SBResource_MMIO from AcpiMmioEn(PM_Reg: 24h) */
|
||||
outb(SB800_PM_ACPI_MMIO_EN+3, SB800_IO_PM_INDEX_REG);
|
||||
val = inb(SB800_IO_PM_DATA_REG);
|
||||
@@ -403,6 +395,10 @@ static unsigned char sp5100_tco_setupdevice(void)
|
||||
val = val << 8 | inb(SB800_IO_PM_DATA_REG);
|
||||
outb(SB800_PM_ACPI_MMIO_EN+0, SB800_IO_PM_INDEX_REG);
|
||||
val = val << 8 | inb(SB800_IO_PM_DATA_REG);
|
||||
+ } else {
|
||||
+ /* Read SBResource_MMIO from PCI config(PCI_Reg: 9Ch) */
|
||||
+ pci_read_config_dword(sp5100_tco_pci,
|
||||
+ SP5100_SB_RESOURCE_MMIO_BASE, &val);
|
||||
}
|
||||
|
||||
/* The SBResource_MMIO is enabled and mapped memory space? */
|
|
@ -47,6 +47,8 @@ bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
|
|||
bugfix/mips/MIPS-Allow-emulation-for-unaligned-LSDXC1-instructions.patch
|
||||
bugfix/sparc/sparc-implement-and-wire-up-modalias_show-for-vio.patch
|
||||
bugfix/sparc/sparc-implement-and-wire-up-vio_hotplug-for-vio.patch
|
||||
bugfix/x86/revert-sp5100_tco-fix-the-device-check-for-SB800-and.patch
|
||||
bugfix/powerpc/powerpc-fix-sstep-compile-on-powerpcspe.patch
|
||||
|
||||
# Arch features
|
||||
features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
|
||||
|
@ -97,6 +99,8 @@ features/all/securelevel/enable-cold-boot-attack-mitigation.patch
|
|||
# Security fixes
|
||||
bugfix/all/ptrace-being-capable-wrt-a-process-requires-mapped-uids-gids.patch
|
||||
debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
|
||||
bugfix/all/bpf-fix-refcnt-overflow.patch
|
||||
bugfix/all/bpf-fix-check_map_func_compatibility-logic.patch
|
||||
|
||||
# Tools bug fixes
|
||||
bugfix/all/usbip-document-tcp-wrappers.patch
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Submit-As: src:linux
|
||||
Package-Status: firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-intelwimax firmware-ipw2x00 firmware-ivtv firmware-iwlwifi firmware-libertas firmware-linux firmware-linux-nonfree firmware-myricom firmware-netxen firmware-qlogic firmware-ralink firmware-realtek xen-hypervisor
|
||||
Package-Status: firmware-amd-graphics firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-intelwimax firmware-intel-sound firmware-ipw2x00 firmware-ivtv firmware-iwlwifi firmware-libertas firmware-linux-nonfree firmware-misc-nonfree firmware-myricom firmware-netxen firmware-qlogic firmware-realtek firmware-samsung firmware-siano firmware-ti-connectivity xen-hypervisor
|
||||
|
|
Loading…
Reference in New Issue