Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40855
b: refs/heads/master
c: 189e7cc
h: refs/heads/master
i:
  40853: 87dcf9d
  40851: 80b3657
  40847: 37b86d3
v: v3
  • Loading branch information
Linus Torvalds committed Nov 13, 2006
1 parent afeff9c commit 3c50709
Show file tree
Hide file tree
Showing 19 changed files with 105 additions and 49 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1f10bec3ef9d9d97999c72e19625432836820221
refs/heads/master: 189e7cc1e092a31183febe598f8e37385ff9936e
1 change: 1 addition & 0 deletions trunk/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
# Top-level generic files
#
tags
TAGS
vmlinux*
System.map
Module.symvers
Expand Down
9 changes: 9 additions & 0 deletions trunk/arch/ia64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,15 @@ source "net/Kconfig"

source "drivers/Kconfig"

config MSPEC
tristate "Memory special operations driver"
depends on IA64
select IA64_UNCACHED_ALLOCATOR
help
If you have an ia64 and you want to enable memory special
operations support (formerly known as fetchop), say Y here,
otherwise say N.

source "fs/Kconfig"

source "lib/Kconfig"
Expand Down
8 changes: 0 additions & 8 deletions trunk/drivers/char/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -409,14 +409,6 @@ config SGI_MBCS
If you have an SGI Altix with an attached SABrick
say Y or M here, otherwise say N.

config MSPEC
tristate "Memory special operations driver"
depends on IA64
help
If you have an ia64 and you want to enable memory special
operations support (formerly known as fetchop), say Y here,
otherwise say N.

source "drivers/serial/Kconfig"

config UNIX98_PTYS
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/char/ipmi/ipmi_msghandler.c
Original file line number Diff line number Diff line change
Expand Up @@ -1854,7 +1854,7 @@ static ssize_t provides_dev_sdrs_show(struct device *dev,
struct bmc_device *bmc = dev_get_drvdata(dev);

return snprintf(buf, 10, "%u\n",
bmc->id.device_revision && 0x80 >> 7);
(bmc->id.device_revision & 0x80) >> 7);
}

static ssize_t revision_show(struct device *dev, struct device_attribute *attr,
Expand All @@ -1863,7 +1863,7 @@ static ssize_t revision_show(struct device *dev, struct device_attribute *attr,
struct bmc_device *bmc = dev_get_drvdata(dev);

return snprintf(buf, 20, "%u\n",
bmc->id.device_revision && 0x0F);
bmc->id.device_revision & 0x0F);
}

static ssize_t firmware_rev_show(struct device *dev,
Expand Down
8 changes: 7 additions & 1 deletion trunk/drivers/char/mspec.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,11 @@ enum {
MSPEC_UNCACHED
};

#ifdef CONFIG_SGI_SN
static int is_sn2;
#else
#define is_sn2 0
#endif

/*
* One of these structures is allocated when an mspec region is mmaped. The
Expand Down Expand Up @@ -211,7 +215,7 @@ mspec_nopfn(struct vm_area_struct *vma, unsigned long address)
if (vdata->type == MSPEC_FETCHOP)
paddr = TO_AMO(maddr);
else
paddr = __pa(TO_CAC(maddr));
paddr = maddr & ~__IA64_UNCACHED_OFFSET;

pfn = paddr >> PAGE_SHIFT;

Expand Down Expand Up @@ -335,6 +339,7 @@ mspec_init(void)
* The fetchop device only works on SN2 hardware, uncached and cached
* memory drivers should both be valid on all ia64 hardware
*/
#ifdef CONFIG_SGI_SN
if (ia64_platform_is("sn2")) {
is_sn2 = 1;
if (is_shub2()) {
Expand Down Expand Up @@ -363,6 +368,7 @@ mspec_init(void)
goto free_scratch_pages;
}
}
#endif
ret = misc_register(&cached_miscdev);
if (ret) {
printk(KERN_ERR "%s: failed to register device %i\n",
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/pci/pci-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,9 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
*/
void pci_remove_sysfs_dev_files(struct pci_dev *pdev)
{
if (!sysfs_initialized)
return;

if (pdev->cfg_size < 4096)
sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr);
else
Expand Down
18 changes: 14 additions & 4 deletions trunk/drivers/scsi/scsi_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -631,12 +631,22 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
* scanning run at their own risk, or supply a user level program
* that can correctly scan.
*/
sdev->inquiry = kmalloc(sdev->inquiry_len, GFP_ATOMIC);
if (sdev->inquiry == NULL) {

/*
* Copy at least 36 bytes of INQUIRY data, so that we don't
* dereference unallocated memory when accessing the Vendor,
* Product, and Revision strings. Badly behaved devices may set
* the INQUIRY Additional Length byte to a small value, indicating
* these strings are invalid, but often they contain plausible data
* nonetheless. It doesn't matter if the device sent < 36 bytes
* total, since scsi_probe_lun() initializes inq_result with 0s.
*/
sdev->inquiry = kmemdup(inq_result,
max_t(size_t, sdev->inquiry_len, 36),
GFP_ATOMIC);
if (sdev->inquiry == NULL)
return SCSI_SCAN_NO_RESPONSE;
}

memcpy(sdev->inquiry, inq_result, sdev->inquiry_len);
sdev->vendor = (char *) (sdev->inquiry + 8);
sdev->model = (char *) (sdev->inquiry + 16);
sdev->rev = (char *) (sdev->inquiry + 32);
Expand Down
12 changes: 9 additions & 3 deletions trunk/drivers/video/nvidia/nv_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,18 @@ static void nvGetClocks(struct nvidia_par *par, unsigned int *MClk,

if (par->Architecture >= NV_ARCH_40) {
pll = NV_RD32(par->PMC, 0x4020);
P = (pll >> 16) & 0x03;
P = (pll >> 16) & 0x07;
pll = NV_RD32(par->PMC, 0x4024);
M = pll & 0xFF;
N = (pll >> 8) & 0xFF;
MB = (pll >> 16) & 0xFF;
NB = (pll >> 24) & 0xFF;
if (((par->Chipset & 0xfff0) == 0x0290) ||
((par->Chipset & 0xfff0) == 0x0390)) {
MB = 1;
NB = 1;
} else {
MB = (pll >> 16) & 0xFF;
NB = (pll >> 24) & 0xFF;
}
*MClk = ((N * NB * par->CrystalFreqKHz) / (M * MB)) >> P;

pll = NV_RD32(par->PMC, 0x4000);
Expand Down
18 changes: 17 additions & 1 deletion trunk/drivers/video/nvidia/nv_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,7 @@ int NVCommonSetup(struct fb_info *info)
case 0x0186:
case 0x0187:
case 0x018D:
case 0x0228:
case 0x0286:
case 0x028C:
case 0x0316:
Expand All @@ -382,6 +383,10 @@ int NVCommonSetup(struct fb_info *info)
case 0x034C:
case 0x0160:
case 0x0166:
case 0x0169:
case 0x016B:
case 0x016C:
case 0x016D:
case 0x00C8:
case 0x00CC:
case 0x0144:
Expand Down Expand Up @@ -639,12 +644,23 @@ int NVCommonSetup(struct fb_info *info)
par->fpHeight = NV_RD32(par->PRAMDAC, 0x0800) + 1;
par->fpSyncs = NV_RD32(par->PRAMDAC, 0x0848) & 0x30000033;

printk("Panel size is %i x %i\n", par->fpWidth, par->fpHeight);
printk("nvidiafb: Panel size is %i x %i\n", par->fpWidth, par->fpHeight);
}

if (monA)
info->monspecs = *monA;

if (!par->FlatPanel || !par->twoHeads)
par->FPDither = 0;

par->LVDS = 0;
if (par->FlatPanel && par->twoHeads) {
NV_WR32(par->PRAMDAC0, 0x08B0, 0x00010004);
if (par->PRAMDAC0[0x08b4] & 1)
par->LVDS = 1;
printk("nvidiafb: Panel is %s\n", par->LVDS ? "LVDS" : "TMDS");
}

kfree(edidA);
kfree(edidB);
done:
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/video/nvidia/nv_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ struct nvidia_par {
int fpHeight;
int PanelTweak;
int paneltweak;
int LVDS;
int pm_state;
u32 crtcSync_read;
u32 fpSyncs;
Expand Down
24 changes: 12 additions & 12 deletions trunk/drivers/video/nvidia/nvidia.c
Original file line number Diff line number Diff line change
Expand Up @@ -1160,20 +1160,20 @@ static u32 __devinit nvidia_get_arch(struct fb_info *info)
case 0x0340: /* GeForceFX 5700 */
arch = NV_ARCH_30;
break;
case 0x0040:
case 0x00C0:
case 0x0120:
case 0x0040: /* GeForce 6800 */
case 0x00C0: /* GeForce 6800 */
case 0x0120: /* GeForce 6800 */
case 0x0130:
case 0x0140:
case 0x0160:
case 0x01D0:
case 0x0090:
case 0x0210:
case 0x0220:
case 0x0140: /* GeForce 6600 */
case 0x0160: /* GeForce 6200 */
case 0x01D0: /* GeForce 7200, 7300, 7400 */
case 0x0090: /* GeForce 7800 */
case 0x0210: /* GeForce 6800 */
case 0x0220: /* GeForce 6200 */
case 0x0230:
case 0x0240:
case 0x0290:
case 0x0390:
case 0x0240: /* GeForce 6100 */
case 0x0290: /* GeForce 7900 */
case 0x0390: /* GeForce 7600 */
arch = NV_ARCH_40;
break;
case 0x0020: /* TNT, TNT2 */
Expand Down
6 changes: 5 additions & 1 deletion trunk/include/asm-ia64/sn/addrs.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,13 @@
*/
#define TO_PHYS(x) (TO_PHYS_MASK & (x))
#define TO_CAC(x) (CAC_BASE | TO_PHYS(x))
#ifdef CONFIG_SGI_SN
#define TO_AMO(x) (AMO_BASE | TO_PHYS(x))
#define TO_GET(x) (GET_BASE | TO_PHYS(x))

#else
#define TO_AMO(x) ({ BUG(); x; })
#define TO_GET(x) ({ BUG(); x; })
#endif

/*
* Covert from processor physical address to II/TIO physical address:
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/personality.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ struct exec_domain {
* Change personality of the currently running process.
*/
#define set_personality(pers) \
((current->personality == pers) ? 0 : __set_personality(pers))
((current->personality == (pers)) ? 0 : __set_personality(pers))

#endif /* __KERNEL__ */

Expand Down
3 changes: 2 additions & 1 deletion trunk/include/linux/vmalloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ struct vm_area_struct;
#endif

struct vm_struct {
/* keep next,addr,size together to speedup lookups */
struct vm_struct *next;
void *addr;
unsigned long size;
unsigned long flags;
struct page **pages;
unsigned int nr_pages;
unsigned long phys_addr;
struct vm_struct *next;
};

/*
Expand Down
1 change: 1 addition & 0 deletions trunk/kernel/fork.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,7 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
* the latest pointer.
*/
spin_lock(&oldf->file_lock);
open_files = count_open_files(old_fdt);
old_fdt = files_fdtable(oldf);
}

Expand Down
6 changes: 5 additions & 1 deletion trunk/kernel/irq/spurious.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,11 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
if (unlikely(irqfixup)) {
/* Don't punish working computers */
if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) {
int ok = misrouted_irq(irq);
int ok;

spin_unlock(&desc->lock);
ok = misrouted_irq(irq);
spin_lock(&desc->lock);
if (action_ret == IRQ_NONE)
desc->irqs_unhandled -= ok;
}
Expand Down
26 changes: 13 additions & 13 deletions trunk/mm/vmalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,8 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long fl
if (unlikely(!area))
return NULL;

if (unlikely(!size)) {
kfree (area);
if (unlikely(!size))
return NULL;
}

/*
* We always allocate a guard page.
Expand Down Expand Up @@ -532,11 +530,12 @@ void *vmalloc_user(unsigned long size)
void *ret;

ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL);
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);

if (ret) {
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);
}
return ret;
}
EXPORT_SYMBOL(vmalloc_user);
Expand Down Expand Up @@ -605,11 +604,12 @@ void *vmalloc_32_user(unsigned long size)
void *ret;

ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL);
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);

if (ret) {
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);
}
return ret;
}
EXPORT_SYMBOL(vmalloc_32_user);
Expand Down
2 changes: 2 additions & 0 deletions trunk/scripts/kconfig/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ lex.*.c
*.tab.c
*.tab.h
zconf.hash.c
*.moc
lkc_defs.h

#
# configuration programs
Expand Down

0 comments on commit 3c50709

Please sign in to comment.