Merge ^/head r276347 through r276356.

This commit is contained in:
dim 2014-12-29 09:27:42 +00:00
parent 6a83300648
commit 0cdb9f6679
8 changed files with 25 additions and 15 deletions

View File

@ -6185,7 +6185,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
howto = NULL;
if (r_type < R_PPC_max)
howto = ppc_elf_howto_table[r_type];
switch (r_type)
switch ((int) r_type)
{
default:
(*_bfd_error_handler)

View File

@ -37,14 +37,16 @@
/*
* Define cache functions used by startup code, which counts on the fact that
* only r0-r4,r12 (ip) are modified and no stack space is used. This set
* of function must be called with interrupts disabled and don't follow
* ARM ABI (cannot be called form C code.
* Moreover, it works only with caches integrated to CPU (accessible via CP15).
* only r0-r3,r12 (ip) are modified and no stack space is used. These functions
* must be called with interrupts disabled. Moreover, these work only with
* caches integrated to CPU (accessible via CP15); systems with an external L2
* cache controller such as a PL310 need separate calls to that device driver
* to affect L2 caches. This is not a factor during early kernel startup, as
* any external L2 cache controller has not been enabled yet.
*/
/* Invalidate D cache to PoC. (aka all cache levels)*/
ASENTRY(dcache_inv_poc_all)
ASENTRY_NP(dcache_inv_poc_all)
mrc CP15_CLIDR(r0)
ands r0, r0, #0x07000000
mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */
@ -96,7 +98,7 @@ ASENTRY(dcache_inv_poc_all)
END(dcache_inv_poc_all)
/* Invalidate D cache to PoU. (aka L1 cache only)*/
ASENTRY(dcache_inv_pou_all)
ASENTRY_NP(dcache_inv_pou_all)
mrc CP15_CLIDR(r0)
ands r0, r0, #0x07000000
mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */
@ -147,7 +149,7 @@ ASENTRY(dcache_inv_pou_all)
END(dcache_inv_pou_all)
/* Write back and Invalidate D cache to PoC. */
ASENTRY(dcache_wbinv_poc_all)
ASENTRY_NP(dcache_wbinv_poc_all)
mrc CP15_CLIDR(r0)
ands r0, r0, #0x07000000
mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */

View File

@ -15,7 +15,7 @@ MAN=
CFLAGS= -ffreestanding -msoft-float -Os \
-I${.CURDIR}/../../common -I${.CURDIR}/../../../ \
-D_STANDALONE
LDFLAGS=-nostdlib -static -N
LDFLAGS=-nostdlib -static -Wl,-N
.include "${.CURDIR}/../Makefile.inc"
.PATH: ${.CURDIR}/../../../libkern ${.CURDIR}/../../../../lib/libc/powerpc/gen ${.CURDIR}

View File

@ -82,7 +82,8 @@ __FBSDID("$FreeBSD$");
#include <dev/virtio/mmio/virtio_mmio.h>
#include <dev/virtio/network/virtio_net.h>
#include <dev/virtio/virtio.h>
#include <dev/virtio/virtio_ids.h>
#include <dev/virtio/virtio_config.h>
#include <dev/virtio/virtio_ring.h>
#include "pio_if.h"

View File

@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus_subr.h>
#include <dev/beri/virtio/virtio.h>
#include <dev/virtio/virtio.h>
#include <dev/virtio/virtqueue.h>
#include <dev/virtio/virtio_ring.h>
#include <dev/altera/pio/pio.h>

View File

@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$");
#include <dev/altera/pio/pio.h>
#include <dev/virtio/mmio/virtio_mmio.h>
#include <dev/virtio/block/virtio_blk.h>
#include <dev/virtio/virtio.h>
#include <dev/virtio/virtio_ids.h>
#include <dev/virtio/virtio_config.h>
#include <dev/virtio/virtio_ring.h>
#include "pio_if.h"

View File

@ -137,8 +137,8 @@ static const struct pci_id pci_ns8250_ids[] = {
"MosChip MCS9901 PCIe to Peripheral Controller", 0x10 },
{ 0x9710, 0x9904, 0xa000, 0x1000,
"MosChip MCS9904 PCIe to Peripheral Controller", 0x10 },
{ 0x9710, 0x9922, 0xffff, 0,
"MosChip MCS9922 Multi I/O Controller", 0x10 },
{ 0x9710, 0x9922, 0xa000, 0x1000,
"MosChip MCS9922 PCIe to Peripheral Controller", 0x10 },
{ 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 },
{ 0xffff, 0, 0xffff, 0, NULL, 0, 0}
};

View File

@ -1096,9 +1096,16 @@ nfscl_checksattr(struct vattr *vap, struct nfsvattr *nvap)
* us to do a SETATTR RPC. FreeBSD servers store the verifier
* in atime, but we can't really assume that all servers will
* so we ensure that our SETATTR sets both atime and mtime.
* Set the VA_UTIMES_NULL flag for this case, so that
* the server's time will be used. This is needed to
* work around a bug in some Solaris servers, where
* setting the time TOCLIENT causes the Setattr RPC
* to return NFS_OK, but not set va_mode.
*/
if (vap->va_mtime.tv_sec == VNOVAL)
if (vap->va_mtime.tv_sec == VNOVAL) {
vfs_timestamp(&vap->va_mtime);
vap->va_vaflags |= VA_UTIMES_NULL;
}
if (vap->va_atime.tv_sec == VNOVAL)
vap->va_atime = vap->va_mtime;
return (1);