Skip to content

4.4.x #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 144 commits into from
Nov 22, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
8a56b1b
adv7604: Initialize drive strength to default when using DT
larsclausen Nov 29, 2016
414aa11
video: fbdev: pmag-ba-fb: Remove bad `__init' annotation
Jan 30, 2017
f3170e6
PCI: mvebu: Handle changes to the bridge windows while enabled
jgunthorpe Dec 12, 2016
4e0d26b
xen/netback: set default upper limit of tx/rx queues to 8
jgross1 Jan 10, 2017
2393241
drm: drm_minor_register(): Clean up debugfs on failure
notro Jan 26, 2017
f20065b
KVM: PPC: Book 3S: XICS: correct the real mode ICP rejecting counter
Nov 11, 2016
158bc64
iommu/arm-smmu-v3: Clear prior settings when updating STEs
Dec 21, 2016
83fe38f
powerpc/corenet: explicitly disable the SDHC controller on kmcoge4
Dec 15, 2016
30019ca
ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6
tmlind Jan 20, 2017
26fa336
crypto: vmx - disable preemption to enable vsx in aes_ctr.c
Jan 20, 2017
079822d
iio: trigger: free trigger resource correctly
AlisonSchofield Jan 20, 2017
ca2090a
phy: increase size of MII_BUS_ID_SIZE and bus_id
Jan 19, 2017
6450c9a
serial: sh-sci: Fix register offsets for the IRDA serial port
Jan 11, 2017
cfb2cb3
usb: hcd: initialize hcd->flags to 0 when rm hcd
wuliangfeng Jan 13, 2017
9ee83b0
netfilter: nft_meta: deal with PACKET_LOOPBACK in netdev family
Jan 7, 2017
ffa6332
IPsec: do not ignore crypto err in ah4 input
Jan 16, 2017
0a73192
Input: mpr121 - handle multiple bits change of status register
mita Jan 15, 2017
aa4af0f
Input: mpr121 - set missing event capability
mita Jan 15, 2017
3652b0b
IB/ipoib: Change list_del to list_del_init in the tx object
ferasd Dec 28, 2016
581243d
s390/qeth: issue STARTLAN as first IPA command
julianwiedmann Jan 12, 2017
f38a3a1
net: dsa: select NET_SWITCHDEV
vivien Jan 9, 2017
5ffc673
platform/x86: hp-wmi: Fix detection for dock and tablet mode
Apr 9, 2017
75f82a7
cdc_ncm: Set NTB format again after altsetting switch for Huawei devices
mrkiko Jul 11, 2017
939cafa
KEYS: trusted: sanitize all key material
ebiggers Jun 8, 2017
df53715
KEYS: trusted: fix writing past end of buffer in trusted_read()
ebiggers Nov 2, 2017
ce93b66
platform/x86: hp-wmi: Fix error value for hp_wmi_tablet_state
Apr 9, 2017
44e0e2b
platform/x86: hp-wmi: Do not shadow error values
Apr 19, 2017
ad8c619
x86/uaccess, sched/preempt: Verify access_ok() context
Nov 22, 2016
44540ea
workqueue: Fix NULL pointer dereference
libin2015 Oct 28, 2017
4827670
crypto: x86/sha1-mb - fix panic due to unaligned access
aryabinin Oct 16, 2017
3fc61b8
KEYS: fix NULL pointer dereference during ASN.1 parsing [ver #2]
ebiggers Nov 7, 2017
4d5b67a
ARM: 8720/1: ensure dump_instr() checks addr_limit
mrutland-arm Nov 2, 2017
adc4bac
ALSA: seq: Fix OSS sysex delivery in OSS emulation
tiwai Nov 7, 2017
1e54b5f
ALSA: seq: Avoid invalid lockdep class warning
tiwai Nov 6, 2017
ff8e973
MIPS: microMIPS: Fix incorrect mask in insn_table_MM
GustavoARSilva Oct 31, 2017
207c214
MIPS: Fix CM region target definitions
paulburton Oct 31, 2017
175c062
MIPS: SMP: Use a completion event to signal CPU up
mpredfearn Nov 4, 2016
857e810
MIPS: Fix race on setting and getting cpu_online_mask
matijaGP Aug 3, 2017
6004eb4
MIPS: SMP: Fix deadlock & online race
mpredfearn Sep 27, 2017
c08f3a8
test: firmware_class: report errors properly on failure
computersforpeace Dec 9, 2015
ed1deec
selftests: firmware: add empty string and async tests
computersforpeace Dec 9, 2015
4afaa49
selftests: firmware: send expected errors to /dev/null
mcgrof Dec 16, 2016
d0cfebd
tools: firmware: check for distro fallback udev cancel rule
mcgrof Jan 23, 2017
721d4be
MIPS: AR7: Defer registration of GPIO
KanjiMonster Oct 29, 2017
4694272
MIPS: AR7: Ensure that serial ports are properly set up
ossilator Oct 29, 2017
05b690c
Input: elan_i2c - add ELAN060C to the ACPI table
khfeng Nov 8, 2017
ba4828a
drm/vmwgfx: Fix Ubuntu 17.10 Wayland black screen issue
Nov 1, 2017
493cb19
rbd: use GFP_NOIO for parent stat and data requests
idryomov Nov 6, 2017
cdb5a2d
can: sun4i: handle overrun in RX FIFO
GBert Nov 6, 2017
4df27e6
can: c_can: don't indicate triple sampling support for D_CAN
richardschuetz Oct 29, 2017
b01f1d6
x86/oprofile/ppro: Do not use __this_cpu*() in preemptible context
suryasaimadhu Nov 7, 2017
9c40515
PKCS#7: fix unitialized boolean 'want'
Feb 27, 2016
c4e3d53
Linux 4.4.98
gregkh Nov 15, 2017
6440f0e
mac80211: accept key reinstall without changing anything
jmberg-intel Sep 5, 2017
cdac202
mac80211: use constant time comparison with keys
zx2c4 Oct 17, 2017
c93df40
mac80211: don't compare TKIP TX MIC key in reinstall prevention
jmberg-intel Oct 24, 2017
de46c1a
usb: usbtest: fix NULL pointer dereference
AlanStern Sep 29, 2017
b7c625c
Input: ims-psu - check if CDC union descriptor is sane
dtor Oct 7, 2017
1e98fd5
ALSA: seq: Cancel pending autoload work at unbinding device
tiwai Sep 12, 2017
735818a
tun/tap: sanitize TUNSETSNDBUF input
kraigatgoog Oct 30, 2017
71c4a0f
tcp: fix tcp_mtu_probe() vs highest_sack
Oct 31, 2017
196f475
l2tp: check ps->sock before running pppol2tp_session_ioctl()
Oct 13, 2017
4b27fe3
tun: call dev_get_valid_name() before register_netdevice()
congwang Oct 13, 2017
ef3a12f
sctp: add the missing sock_owned_by_user check in sctp_icmp_redirect
lxin Oct 18, 2017
d552c8c
packet: avoid panic in packet_getsockopt()
Oct 18, 2017
84237c5
ipv6: flowlabel: do not leave opt->tot_len with garbage
Oct 21, 2017
93b12f2
net/unix: don't show information about sockets from other namespaces
avagin Oct 25, 2017
5c8a085
ip6_gre: only increase err_count for some certain type icmpv6 in ip6g…
lxin Oct 26, 2017
bcb3b90
tun: allow positive return values on dev_get_valid_name() call
gomesj Oct 25, 2017
4b5bb77
sctp: reset owner sk for data chunks on out queues when migrating a sock
lxin Oct 27, 2017
9bae2ff
ppp: fix race in ppp device destruction
Oct 6, 2017
b9b0c99
ipip: only increase err_count for some certain type icmp in ipip_err
lxin Oct 26, 2017
13eddc6
tcp/dccp: fix ireq->opt races
Oct 20, 2017
6f8048c
tcp/dccp: fix lockdep splat in inet_csk_route_req()
Oct 22, 2017
11fa335
tcp/dccp: fix other lockdep splats accessing ireq_opt
Oct 24, 2017
c8f1391
security/keys: add CONFIG_KEYS_COMPAT to Kconfig
bamarni Jun 8, 2017
d27383f
tipc: fix link attribute propagation bug
Feb 1, 2016
7ecc076
brcmfmac: remove setting IBSS mode when stopping AP
cy-chihsien May 18, 2017
4063c20
target/iscsi: Fix iSCSI task reassignment handling
Jan 5, 2017
01000c5
target: Fix node_acl demo-mode + uncached dynamic shutdown regression
Aug 6, 2017
e8d6505
misc: panel: properly restore atomic counter on error path
wtarreau Sep 7, 2017
0cbac00
Linux 4.4.99
gregkh Nov 18, 2017
c344019
media: imon: Fix null-ptr-deref in imon_probe
ArvindYadavCs Oct 9, 2017
0a418e5
media: dib0700: fix invalid dvb_detach argument
xairy Nov 2, 2017
ceb5c56
ext4: fix data exposure after a crash
jankara Apr 24, 2016
07e3aff
KVM: x86: fix singlestepping over syscall
bonzini Jun 7, 2017
49630dd
bpf: don't let ldimm64 leak map addresses on unprivileged
borkmann May 7, 2017
11e8e55
xen-blkback: don't leak stack data via response ring
jbeulich Jun 13, 2017
46bdabb
sctp: do not peel off an assoc from one netns to another one
lxin Oct 17, 2017
caeeef8
net: cdc_ether: fix divide by 0 on bad descriptors
bmork Nov 6, 2017
e455048
net: qmi_wwan: fix divide by 0 on bad descriptors
bmork Nov 6, 2017
9777846
arm: crypto: reduce priority of bit-sliced AES cipher
ebiggers Nov 17, 2017
ec4f8a7
Bluetooth: btusb: fix QCA Rome suspend/resume
Jul 8, 2017
8d9142f
dmaengine: dmatest: warn user when dma test times out
Nov 2, 2017
2bb04f1
extcon: palmas: Check the parent instance to prevent the NULL
Dec 8, 2016
6264101
fm10k: request reset when mbx->state changes
nmkwan Nov 2, 2016
84a97ea
ARM: dts: Fix compatible for ti81xx uarts for 8250
tmlind Jan 5, 2017
4a23041
ARM: dts: Fix am335x and dm814x scm syscon to probe children
tmlind Jan 5, 2017
955840e
ARM: OMAP2+: Fix init for multiple quirks for the same SoC
tmlind Jan 5, 2017
4fd669f
ARM: dts: Fix omap3 off mode pull defines
tmlind Jan 5, 2017
2066882
ata: ATA_BMDMA should depend on HAS_DMA
geertu Jan 3, 2017
11cb9de
ata: SATA_HIGHBANK should depend on HAS_DMA
geertu Jan 3, 2017
b9ea0af
ata: SATA_MV should depend on HAS_DMA
geertu Jan 3, 2017
7878dca
drm/sti: sti_vtg: Handle return NULL error from devm_ioremap_nocache
ArvindYadavCs Dec 21, 2016
559a208
igb: reset the PHY before reading the PHY ID
Nov 29, 2016
ba83011
igb: close/suspend race in netif_device_detach
Nov 15, 2016
bb848b6
igb: Fix hw_dbg logging in igb_update_flash_i210
Jan 2, 2017
469e75d
scsi: ufs-qcom: Fix module autoload
Jan 2, 2017
0c09815
scsi: ufs: add capability to keep auto bkops always enabled
Dec 23, 2016
fdc1e9d
staging: rtl8188eu: fix incorrect ERROR tags from logs
srvaroa Jan 3, 2017
18477ba
scsi: lpfc: Add missing memory barrier
Dec 19, 2016
a7e7d31
scsi: lpfc: FCoE VPort enable-disable does not bring up the VPort
Dec 19, 2016
44eb947
scsi: lpfc: Correct host name in symbolic_name field
Dec 19, 2016
8d8723c
scsi: lpfc: Correct issue leading to oops during link reset
Dec 19, 2016
51abb2a
scsi: lpfc: Clear the VendorVersion in the PLOGI/PLOGI ACC payload
Dec 19, 2016
3b985d3
ALSA: vx: Don't try to update capture stream before running
tiwai Jan 4, 2017
fe21a3d
ALSA: vx: Fix possible transfer overflow
tiwai Jan 4, 2017
d6f21ea
backlight: lcd: Fix race condition during register
Jul 6, 2016
3e89999
backlight: adp5520: Fix error handling in adp5520_bl_probe()
khoroshilov Jul 8, 2016
b1e8e6d
gpu: drm: mgag200: mgag200_main:- Handle error from pci_iomap
ArvindYadavCs Jan 3, 2017
e2d12bd
ALSA: hda/realtek - Add new codec ID ALC299
KailangYang Jan 4, 2017
865fe71
arm64: dts: NS2: reserve memory for Nitro firmware
Dec 5, 2016
f12976c
ixgbe: fix AER error handling
etantilov Nov 16, 2016
9d51db4
ixgbe: handle close/suspend race with netif_device_detach/present
etantilov Nov 11, 2016
12ec51a
ixgbe: Reduce I2C retry count on X550 devices
anguy11 Nov 10, 2016
b6e7fb0
ixgbe: add mask for 64 RSS queues
etantilov Nov 4, 2016
ade7205
ixgbe: do not disable FEC from the driver
etantilov Sep 28, 2016
b158774
staging: rtl8712: fixed little endian problem
jannikbecher Dec 20, 2016
7f5eb09
MIPS: End asm function prologue macros with .insn
paulburton Nov 7, 2016
a904ebe
mm: add PHYS_PFN, use it in __phys_to_pfn()
Jan 14, 2016
034347a
MIPS: init: Ensure bootmem does not corrupt reserved memory
MJNowakowski Nov 23, 2016
9a8ef14
MIPS: init: Ensure reserved memory regions are not added to bootmem
MJNowakowski Nov 23, 2016
d2d72c0
MIPS: Netlogic: Exclude netlogic,xlp-pic code from XLR builds
paulburton Nov 7, 2016
d9c8d4a
Revert "crypto: xts - Add ECB dependency"
Nov 13, 2017
f5e303d
Revert "uapi: fix linux/rds.h userspace compilation errors"
Nov 13, 2017
16e7973
uapi: fix linux/rds.h userspace compilation error
ldv-alt Feb 16, 2017
834a5d8
uapi: fix linux/rds.h userspace compilation errors
ldv-alt Feb 16, 2017
965003b
USB: usbfs: compute urb->actual_length for isochronous
AlanStern Nov 8, 2017
302dd59
USB: Add delay-init quirk for Corsair K70 LUX keyboards
Nov 3, 2017
5cd9385
USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update
Oct 29, 2017
8b36209
USB: serial: garmin_gps: fix I/O after failed probe and remove
jhovold Oct 11, 2017
f119ff8
USB: serial: garmin_gps: fix memory leak on probe errors
jhovold Oct 11, 2017
26d6298
Linux 4.4.100
gregkh Nov 21, 2017
d15335a
Merge tag 'v4.4.100' into 4.4.x
redbrain17 Nov 22, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 97
SUBLEVEL = 100
EXTRAVERSION =
NAME = Blurry Fish Butt

Expand Down
3 changes: 2 additions & 1 deletion arch/arm/boot/dts/am33xx.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,11 @@
};

scm_conf: scm_conf@0 {
compatible = "syscon";
compatible = "syscon", "simple-bus";
reg = <0x0 0x800>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x800>;

scm_clocks: clocks {
#address-cells = <1>;
Expand Down
9 changes: 5 additions & 4 deletions arch/arm/boot/dts/dm814x.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@
};

uart1: uart@20000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart1";
reg = <0x20000 0x2000>;
clock-frequency = <48000000>;
Expand All @@ -148,7 +148,7 @@
};

uart2: uart@22000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart2";
reg = <0x22000 0x2000>;
clock-frequency = <48000000>;
Expand All @@ -158,7 +158,7 @@
};

uart3: uart@24000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart3";
reg = <0x24000 0x2000>;
clock-frequency = <48000000>;
Expand Down Expand Up @@ -189,10 +189,11 @@
ranges = <0 0x160000 0x16d000>;

scm_conf: scm_conf@0 {
compatible = "syscon";
compatible = "syscon", "simple-bus";
reg = <0x0 0x800>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x800>;

scm_clocks: clocks {
#address-cells = <1>;
Expand Down
6 changes: 3 additions & 3 deletions arch/arm/boot/dts/dm816x.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@
};

uart1: uart@48020000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart1";
reg = <0x48020000 0x2000>;
clock-frequency = <48000000>;
Expand All @@ -357,7 +357,7 @@
};

uart2: uart@48022000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart2";
reg = <0x48022000 0x2000>;
clock-frequency = <48000000>;
Expand All @@ -367,7 +367,7 @@
};

uart3: uart@48024000 {
compatible = "ti,omap3-uart";
compatible = "ti,am3352-uart", "ti,omap3-uart";
ti,hwmods = "uart3";
reg = <0x48024000 0x2000>;
clock-frequency = <48000000>;
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/omap2plus_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ CONFIG_SERIO=m
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=6
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
Expand Down
6 changes: 3 additions & 3 deletions arch/arm/crypto/aesbs-glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ static struct crypto_alg aesbs_algs[] = { {
}, {
.cra_name = "cbc(aes)",
.cra_driver_name = "cbc-aes-neonbs",
.cra_priority = 300,
.cra_priority = 250,
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct async_helper_ctx),
Expand All @@ -377,7 +377,7 @@ static struct crypto_alg aesbs_algs[] = { {
}, {
.cra_name = "ctr(aes)",
.cra_driver_name = "ctr-aes-neonbs",
.cra_priority = 300,
.cra_priority = 250,
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct async_helper_ctx),
Expand All @@ -397,7 +397,7 @@ static struct crypto_alg aesbs_algs[] = { {
}, {
.cra_name = "xts(aes)",
.cra_driver_name = "xts-aes-neonbs",
.cra_priority = 300,
.cra_priority = 250,
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct async_helper_ctx),
Expand Down
28 changes: 18 additions & 10 deletions arch/arm/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,30 +132,26 @@ static void dump_mem(const char *lvl, const char *str, unsigned long bottom,
set_fs(fs);
}

static void dump_instr(const char *lvl, struct pt_regs *regs)
static void __dump_instr(const char *lvl, struct pt_regs *regs)
{
unsigned long addr = instruction_pointer(regs);
const int thumb = thumb_mode(regs);
const int width = thumb ? 4 : 8;
mm_segment_t fs;
char str[sizeof("00000000 ") * 5 + 2 + 1], *p = str;
int i;

/*
* We need to switch to kernel mode so that we can use __get_user
* to safely read from kernel space. Note that we now dump the
* code first, just in case the backtrace kills us.
* Note that we now dump the code first, just in case the backtrace
* kills us.
*/
fs = get_fs();
set_fs(KERNEL_DS);

for (i = -4; i < 1 + !!thumb; i++) {
unsigned int val, bad;

if (thumb)
bad = __get_user(val, &((u16 *)addr)[i]);
bad = get_user(val, &((u16 *)addr)[i]);
else
bad = __get_user(val, &((u32 *)addr)[i]);
bad = get_user(val, &((u32 *)addr)[i]);

if (!bad)
p += sprintf(p, i == 0 ? "(%0*x) " : "%0*x ",
Expand All @@ -166,8 +162,20 @@ static void dump_instr(const char *lvl, struct pt_regs *regs)
}
}
printk("%sCode: %s\n", lvl, str);
}

set_fs(fs);
static void dump_instr(const char *lvl, struct pt_regs *regs)
{
mm_segment_t fs;

if (!user_mode(regs)) {
fs = get_fs();
set_fs(KERNEL_DS);
__dump_instr(lvl, regs);
set_fs(fs);
} else {
__dump_instr(lvl, regs);
}
}

#ifdef CONFIG_ARM_UNWIND
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-omap2/pdata-quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,6 @@ static void pdata_quirks_check(struct pdata_init *quirks)
if (of_machine_is_compatible(quirks->compatible)) {
if (quirks->fn)
quirks->fn();
break;
}
quirks++;
}
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/broadcom/ns2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/memreserve/ 0x81000000 0x00200000;

#include <dt-bindings/interrupt-controller/arm-gic.h>

/memreserve/ 0x84b00000 0x00000008;
Expand Down
5 changes: 5 additions & 0 deletions arch/mips/ar7/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@ static int __init ar7_register_uarts(void)
uart_port.type = PORT_AR7;
uart_port.uartclk = clk_get_rate(bus_clk) / 2;
uart_port.iotype = UPIO_MEM32;
uart_port.flags = UPF_FIXED_TYPE;
uart_port.regshift = 2;

uart_port.line = 0;
Expand Down Expand Up @@ -654,6 +655,10 @@ static int __init ar7_register_devices(void)
u32 val;
int res;

res = ar7_gpio_init();
if (res)
pr_warn("unable to register gpios: %d\n", res);

res = ar7_register_uarts();
if (res)
pr_err("unable to setup uart(s): %d\n", res);
Expand Down
2 changes: 0 additions & 2 deletions arch/mips/ar7/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,6 @@ void __init prom_init(void)
ar7_init_cmdline(fw_arg0, (char **)fw_arg1);
ar7_init_env((struct env_var *)fw_arg2);
console_config();

ar7_gpio_init();
}

#define PORT(offset) (KSEG1ADDR(AR7_REGS_UART0 + (offset * 4)))
Expand Down
10 changes: 6 additions & 4 deletions arch/mips/include/asm/asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@
.align 2; \
.type symbol, @function; \
.ent symbol, 0; \
symbol: .frame sp, 0, ra
symbol: .frame sp, 0, ra; \
.insn

/*
* NESTED - declare nested routine entry point
Expand All @@ -63,8 +64,9 @@ symbol: .frame sp, 0, ra
.globl symbol; \
.align 2; \
.type symbol, @function; \
.ent symbol, 0; \
symbol: .frame sp, framesize, rpc
.ent symbol, 0; \
symbol: .frame sp, framesize, rpc; \
.insn

/*
* END - mark end of function
Expand All @@ -86,7 +88,7 @@ symbol: .frame sp, framesize, rpc
#define FEXPORT(symbol) \
.globl symbol; \
.type symbol, @function; \
symbol:
symbol: .insn

/*
* ABS - export absolute symbol
Expand Down
4 changes: 2 additions & 2 deletions arch/mips/include/asm/mips-cm.h
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,8 @@ BUILD_CM_Cx_R_(tcid_8_priority, 0x80)
#define CM_GCR_BASE_GCRBASE_MSK (_ULCAST_(0x1ffff) << 15)
#define CM_GCR_BASE_CMDEFTGT_SHF 0
#define CM_GCR_BASE_CMDEFTGT_MSK (_ULCAST_(0x3) << 0)
#define CM_GCR_BASE_CMDEFTGT_DISABLED 0
#define CM_GCR_BASE_CMDEFTGT_MEM 1
#define CM_GCR_BASE_CMDEFTGT_MEM 0
#define CM_GCR_BASE_CMDEFTGT_RESERVED 1
#define CM_GCR_BASE_CMDEFTGT_IOCU0 2
#define CM_GCR_BASE_CMDEFTGT_IOCU1 3

Expand Down
4 changes: 1 addition & 3 deletions arch/mips/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,7 @@
#ifdef CONFIG_HOTPLUG_CPU
void arch_cpu_idle_dead(void)
{
/* What the heck is this check doing ? */
if (!cpumask_test_cpu(smp_processor_id(), &cpu_callin_map))
play_dead();
play_dead();
}
#endif

Expand Down
78 changes: 75 additions & 3 deletions arch/mips/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,35 @@ void __init detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_add
add_memory_region(start, size, BOOT_MEM_RAM);
}

bool __init memory_region_available(phys_addr_t start, phys_addr_t size)
{
int i;
bool in_ram = false, free = true;

for (i = 0; i < boot_mem_map.nr_map; i++) {
phys_addr_t start_, end_;

start_ = boot_mem_map.map[i].addr;
end_ = boot_mem_map.map[i].addr + boot_mem_map.map[i].size;

switch (boot_mem_map.map[i].type) {
case BOOT_MEM_RAM:
if (start >= start_ && start + size <= end_)
in_ram = true;
break;
case BOOT_MEM_RESERVED:
if ((start >= start_ && start < end_) ||
(start < start_ && start + size >= start_))
free = false;
break;
default:
continue;
}
}

return in_ram && free;
}

static void __init print_memory_map(void)
{
int i;
Expand Down Expand Up @@ -300,11 +329,19 @@ static void __init bootmem_init(void)

#else /* !CONFIG_SGI_IP27 */

static unsigned long __init bootmap_bytes(unsigned long pages)
{
unsigned long bytes = DIV_ROUND_UP(pages, 8);

return ALIGN(bytes, sizeof(long));
}

static void __init bootmem_init(void)
{
unsigned long reserved_end;
unsigned long mapstart = ~0UL;
unsigned long bootmap_size;
bool bootmap_valid = false;
int i;

/*
Expand Down Expand Up @@ -385,11 +422,42 @@ static void __init bootmem_init(void)
#endif

/*
* Initialize the boot-time allocator with low memory only.
* check that mapstart doesn't overlap with any of
* memory regions that have been reserved through eg. DTB
*/
bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart,
min_low_pfn, max_low_pfn);
bootmap_size = bootmap_bytes(max_low_pfn - min_low_pfn);

bootmap_valid = memory_region_available(PFN_PHYS(mapstart),
bootmap_size);
for (i = 0; i < boot_mem_map.nr_map && !bootmap_valid; i++) {
unsigned long mapstart_addr;

switch (boot_mem_map.map[i].type) {
case BOOT_MEM_RESERVED:
mapstart_addr = PFN_ALIGN(boot_mem_map.map[i].addr +
boot_mem_map.map[i].size);
if (PHYS_PFN(mapstart_addr) < mapstart)
break;

bootmap_valid = memory_region_available(mapstart_addr,
bootmap_size);
if (bootmap_valid)
mapstart = PHYS_PFN(mapstart_addr);
break;
default:
break;
}
}

if (!bootmap_valid)
panic("No memory area to place a bootmap bitmap");

/*
* Initialize the boot-time allocator with low memory only.
*/
if (bootmap_size != init_bootmem_node(NODE_DATA(0), mapstart,
min_low_pfn, max_low_pfn))
panic("Unexpected memory size required for bootmap");

for (i = 0; i < boot_mem_map.nr_map; i++) {
unsigned long start, end;
Expand Down Expand Up @@ -438,6 +506,10 @@ static void __init bootmem_init(void)
continue;
default:
/* Not usable memory */
if (start > min_low_pfn && end < max_low_pfn)
reserve_bootmem(boot_mem_map.map[i].addr,
boot_mem_map.map[i].size,
BOOTMEM_DEFAULT);
continue;
}

Expand Down
Loading