Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40863
b: refs/heads/master
c: ea991f0
h: refs/heads/master
i:
  40861: 001c3d4
  40859: 97f84c4
  40855: 3c50709
  40847: 37b86d3
  40831: 562e845
v: v3
  • Loading branch information
Linus Torvalds committed Nov 13, 2006
1 parent 09ee0eb commit b36c223
Show file tree
Hide file tree
Showing 26 changed files with 159 additions and 66 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: bb831eb2027c12a740ad4e4ad78f2a0e841ae808
refs/heads/master: ea991f06d851d58268eac6ce5c2152397757c958
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
7 changes: 5 additions & 2 deletions trunk/drivers/net/arcnet/com20020.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,13 +337,16 @@ static void com20020_set_mc_list(struct net_device *dev)
}
}

#ifdef MODULE

#if defined(CONFIG_ARCNET_COM20020_PCI_MODULE) || \
defined(CONFIG_ARCNET_COM20020_ISA_MODULE)
EXPORT_SYMBOL(com20020_check);
EXPORT_SYMBOL(com20020_found);
#endif

MODULE_LICENSE("GPL");

#ifdef MODULE

int init_module(void)
{
BUGLVL(D_NORMAL) printk(VERSION);
Expand Down
5 changes: 5 additions & 0 deletions trunk/drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4692,6 +4692,8 @@ static int bond_check_params(struct bond_params *params)
return 0;
}

static struct lock_class_key bonding_netdev_xmit_lock_key;

/* Create a new bond based on the specified name and bonding parameters.
* Caller must NOT hold rtnl_lock; we need to release it here before we
* set up our sysfs entries.
Expand Down Expand Up @@ -4727,6 +4729,9 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond
if (res < 0) {
goto out_bond;
}

lockdep_set_class(&bond_dev->_xmit_lock, &bonding_netdev_xmit_lock_key);

if (newbond)
*newbond = bond_dev->priv;

Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/cris/eth_v10.c
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,8 @@ etrax_ethernet_init(void)
* does not share cacheline with any other data (to avoid cache bug)
*/
RxDescList[i].skb = dev_alloc_skb(MAX_MEDIA_DATA_SIZE + 2 * L1_CACHE_BYTES);
if (!RxDescList[i].skb)
return -ENOMEM;
RxDescList[i].descr.ctrl = 0;
RxDescList[i].descr.sw_len = MAX_MEDIA_DATA_SIZE;
RxDescList[i].descr.next = virt_to_phys(&RxDescList[i + 1]);
Expand Down
22 changes: 20 additions & 2 deletions trunk/drivers/net/wireless/bcm43xx/bcm43xx_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -746,7 +746,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom)
if (err)
goto err_ctlreg;
spromctl |= 0x10; /* SPROM WRITE enable. */
bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
if (err)
goto err_ctlreg;
/* We must burn lots of CPU cycles here, but that does not
Expand All @@ -768,7 +768,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom)
mdelay(20);
}
spromctl &= ~0x10; /* SPROM WRITE enable. */
bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
if (err)
goto err_ctlreg;
mdelay(500);
Expand Down Expand Up @@ -1463,6 +1463,23 @@ static void handle_irq_transmit_status(struct bcm43xx_private *bcm)
}
}

static void drain_txstatus_queue(struct bcm43xx_private *bcm)
{
u32 dummy;

if (bcm->current_core->rev < 5)
return;
/* Read all entries from the microcode TXstatus FIFO
* and throw them away.
*/
while (1) {
dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0);
if (!dummy)
break;
dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1);
}
}

static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm)
{
bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F);
Expand Down Expand Up @@ -3532,6 +3549,7 @@ int bcm43xx_select_wireless_core(struct bcm43xx_private *bcm,
bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC);
bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr));
bcm43xx_security_init(bcm);
drain_txstatus_queue(bcm);
ieee80211softmac_start(bcm->net_dev);

/* Let's go! Be careful after enabling the IRQs.
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
8 changes: 6 additions & 2 deletions trunk/fs/cifs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,10 +492,14 @@ int cifs_close(struct inode *inode, struct file *file)
the struct would be in each open file,
but this should give enough time to
clear the socket */
cERROR(1,("close with pending writes"));
#ifdef CONFIG_CIFS_DEBUG2
cFYI(1,("close delay, write pending"));
#endif /* DEBUG2 */
msleep(timeout);
timeout *= 4;
}
}
if(atomic_read(&pSMBFile->wrtPending))
cERROR(1,("close with pending writes"));
rc = CIFSSMBClose(xid, pTcon,
pSMBFile->netfid);
}
Expand Down
4 changes: 3 additions & 1 deletion trunk/fs/cifs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1089,8 +1089,10 @@ int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
struct kstat *stat)
{
int err = cifs_revalidate(dentry);
if (!err)
if (!err) {
generic_fillattr(dentry->d_inode, stat);
stat->blksize = CIFS_MAX_MSGSIZE;
}
return err;
}

Expand Down
Loading

0 comments on commit b36c223

Please sign in to comment.