Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
This commit is contained in:
commit
9aef3b7c20
|
@ -1176,8 +1176,8 @@ T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
|
|||
S: Maintained
|
||||
|
||||
SN-IA64 (Itanium) SUB-PLATFORM
|
||||
P: Greg Edwards
|
||||
M: edwardsg@sgi.com
|
||||
P: Jes Sorensen
|
||||
M: jes@sgi.com
|
||||
L: linux-altix@sgi.com
|
||||
L: linux-ia64@vger.kernel.org
|
||||
W: http://www.sgi.com/altix
|
||||
|
|
|
@ -512,7 +512,7 @@ ia64_state_save:
|
|||
st8 [temp1]=r12 // os_status, default is cold boot
|
||||
mov r6=IA64_MCA_SAME_CONTEXT
|
||||
;;
|
||||
st8 [temp1]=r6 // context, default is same context
|
||||
st8 [temp2]=r6 // context, default is same context
|
||||
|
||||
// Save the pt_regs data that is not in minstate. The previous code
|
||||
// left regs at sos.
|
||||
|
|
|
@ -1283,8 +1283,9 @@ within_logging_rate_limit (void)
|
|||
|
||||
if (jiffies - last_time > 5*HZ)
|
||||
count = 0;
|
||||
if (++count < 5) {
|
||||
if (count < 5) {
|
||||
last_time = jiffies;
|
||||
count++;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <linux/nodemask.h>
|
||||
#include <asm/sn/types.h>
|
||||
#include <asm/sn/addrs.h>
|
||||
#include <asm/sn/sn_feature_sets.h>
|
||||
#include <asm/sn/geo.h>
|
||||
#include <asm/sn/io.h>
|
||||
#include <asm/sn/pcibr_provider.h>
|
||||
|
@ -173,7 +174,7 @@ sn_pcidev_info_get(struct pci_dev *dev)
|
|||
*/
|
||||
static u8 war_implemented = 0;
|
||||
|
||||
static void sn_device_fixup_war(u64 nasid, u64 widget, int device,
|
||||
static s64 sn_device_fixup_war(u64 nasid, u64 widget, int device,
|
||||
struct sn_flush_device_common *common)
|
||||
{
|
||||
struct sn_flush_device_war *war_list;
|
||||
|
@ -198,8 +199,9 @@ static void sn_device_fixup_war(u64 nasid, u64 widget, int device,
|
|||
|
||||
dev_entry = war_list + device;
|
||||
memcpy(common,dev_entry, sizeof(*common));
|
||||
|
||||
kfree(war_list);
|
||||
|
||||
return isrv.status;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -279,23 +281,21 @@ static void sn_fixup_ionodes(void)
|
|||
memset(dev_entry->common, 0x0, sizeof(struct
|
||||
sn_flush_device_common));
|
||||
|
||||
status = sal_get_device_dmaflush_list(nasid,
|
||||
if (sn_prom_feature_available(
|
||||
PRF_DEVICE_FLUSH_LIST))
|
||||
status = sal_get_device_dmaflush_list(
|
||||
nasid,
|
||||
widget,
|
||||
device,
|
||||
(u64)(dev_entry->common));
|
||||
if (status) {
|
||||
if (sn_sal_rev() < 0x0450) {
|
||||
/* shortlived WAR for older
|
||||
* PROM images
|
||||
*/
|
||||
sn_device_fixup_war(nasid,
|
||||
else
|
||||
status = sn_device_fixup_war(nasid,
|
||||
widget,
|
||||
device,
|
||||
dev_entry->common);
|
||||
}
|
||||
else
|
||||
BUG();
|
||||
}
|
||||
if (status != SALRET_OK)
|
||||
panic("SAL call failed: %s\n",
|
||||
ia64_sal_strerror(status));
|
||||
|
||||
spin_lock_init(&dev_entry->sfdl_flush_lock);
|
||||
}
|
||||
|
|
|
@ -447,7 +447,7 @@ xpc_allocate_local_msgqueue(struct xpc_channel *ch)
|
|||
|
||||
nbytes = nentries * ch->msg_size;
|
||||
ch->local_msgqueue = xpc_kmalloc_cacheline_aligned(nbytes,
|
||||
(GFP_KERNEL | GFP_DMA),
|
||||
GFP_KERNEL,
|
||||
&ch->local_msgqueue_base);
|
||||
if (ch->local_msgqueue == NULL) {
|
||||
continue;
|
||||
|
@ -455,7 +455,7 @@ xpc_allocate_local_msgqueue(struct xpc_channel *ch)
|
|||
memset(ch->local_msgqueue, 0, nbytes);
|
||||
|
||||
nbytes = nentries * sizeof(struct xpc_notify);
|
||||
ch->notify_queue = kmalloc(nbytes, (GFP_KERNEL | GFP_DMA));
|
||||
ch->notify_queue = kmalloc(nbytes, GFP_KERNEL);
|
||||
if (ch->notify_queue == NULL) {
|
||||
kfree(ch->local_msgqueue_base);
|
||||
ch->local_msgqueue = NULL;
|
||||
|
@ -502,7 +502,7 @@ xpc_allocate_remote_msgqueue(struct xpc_channel *ch)
|
|||
|
||||
nbytes = nentries * ch->msg_size;
|
||||
ch->remote_msgqueue = xpc_kmalloc_cacheline_aligned(nbytes,
|
||||
(GFP_KERNEL | GFP_DMA),
|
||||
GFP_KERNEL,
|
||||
&ch->remote_msgqueue_base);
|
||||
if (ch->remote_msgqueue == NULL) {
|
||||
continue;
|
||||
|
|
|
@ -90,14 +90,14 @@ void *sn_dma_alloc_coherent(struct device *dev, size_t size,
|
|||
*/
|
||||
node = pcibus_to_node(pdev->bus);
|
||||
if (likely(node >=0)) {
|
||||
struct page *p = alloc_pages_node(node, GFP_ATOMIC, get_order(size));
|
||||
struct page *p = alloc_pages_node(node, flags, get_order(size));
|
||||
|
||||
if (likely(p))
|
||||
cpuaddr = page_address(p);
|
||||
else
|
||||
return NULL;
|
||||
} else
|
||||
cpuaddr = (void *)__get_free_pages(GFP_ATOMIC, get_order(size));
|
||||
cpuaddr = (void *)__get_free_pages(flags, get_order(size));
|
||||
|
||||
if (unlikely(!cpuaddr))
|
||||
return NULL;
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (c) 2005 Silicon Graphics, Inc. All rights reserved.
|
||||
* Copyright (c) 2005-2006 Silicon Graphics, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
|
@ -27,14 +27,12 @@ extern int sn_prom_feature_available(int id);
|
|||
* "false" for new features.
|
||||
*
|
||||
* Use:
|
||||
* if (sn_prom_feature_available(PRF_FEATURE_XXX))
|
||||
* if (sn_prom_feature_available(PRF_XXX))
|
||||
* ...
|
||||
*/
|
||||
|
||||
/*
|
||||
* Example: feature XXX
|
||||
*/
|
||||
#define PRF_FEATURE_XXX 0
|
||||
#define PRF_PAL_CACHE_FLUSH_SAFE 0
|
||||
#define PRF_DEVICE_FLUSH_LIST 1
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue