Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 57951
b: refs/heads/master
c: 24bce50
h: refs/heads/master
i:
  57949: ae32d61
  57947: bae6d30
  57943: 88b0e9f
  57935: 1f7bc3a
  57919: 1c32185
v: v3
  • Loading branch information
Roland Dreier committed Jun 21, 2007
1 parent d90a9bd commit 5d4c6c1
Show file tree
Hide file tree
Showing 38 changed files with 186 additions and 441 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: e2f90a9141d9e1a4cd0e79716919a5fa39684ae9
refs/heads/master: 24bce5080306bd5255cbda3d6b09a29d5515b470
1 change: 1 addition & 0 deletions trunk/arch/i386/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ config DEBUG_PAGEALLOC
config DEBUG_RODATA
bool "Write protect kernel read-only data structures"
depends on DEBUG_KERNEL
depends on !KPROBES # temporary for 2.6.22
help
Mark the kernel read-only data as write-protected in the pagetables,
in order to catch accidental (and incorrect) writes to such const
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/i386/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,6 @@ void mark_rodata_ro(void)
unsigned long start = PFN_ALIGN(_text);
unsigned long size = PFN_ALIGN(_etext) - start;

#ifndef CONFIG_KPROBES
#ifdef CONFIG_HOTPLUG_CPU
/* It must still be possible to apply SMP alternatives. */
if (num_possible_cpus() <= 1)
Expand All @@ -809,7 +808,7 @@ void mark_rodata_ro(void)
size >> PAGE_SHIFT, PAGE_KERNEL_RX);
printk("Write protecting the kernel text: %luk\n", size >> 10);
}
#endif

start += size;
size = (unsigned long)__end_rodata - start;
change_page_attr(virt_to_page(start),
Expand Down
43 changes: 7 additions & 36 deletions trunk/arch/parisc/kernel/unwind.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

#include <asm/uaccess.h>
#include <asm/assembly.h>
#include <asm/asm-offsets.h>
#include <asm/ptrace.h>

#include <asm/unwind.h>

Expand All @@ -28,8 +26,6 @@
#define dbg(x...)
#endif

#define KERNEL_START (KERNEL_BINARY_TEXT_START - 0x1000)

extern struct unwind_table_entry __start___unwind[];
extern struct unwind_table_entry __stop___unwind[];

Expand Down Expand Up @@ -201,29 +197,6 @@ static int unwind_init(void)
return 0;
}

#ifdef CONFIG_64BIT
#define get_func_addr(fptr) fptr[2]
#else
#define get_func_addr(fptr) fptr[0]
#endif

static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int frame_size)
{
void handle_interruption(int, struct pt_regs *);
static unsigned long *hi = (unsigned long)&handle_interruption;

if (pc == get_func_addr(hi)) {
struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size - PT_SZ_ALGN);
dbg("Unwinding through handle_interruption()\n");
info->prev_sp = regs->gr[30];
info->prev_ip = regs->iaoq[0];

return 1;
}

return 0;
}

static void unwind_frame_regs(struct unwind_frame_info *info)
{
const struct unwind_table_entry *e;
Expand Down Expand Up @@ -337,15 +310,13 @@ static void unwind_frame_regs(struct unwind_frame_info *info)
}
}

if (!unwind_special(info, e->region_start, frame_size)) {
info->prev_sp = info->sp - frame_size;
if (e->Millicode)
info->rp = info->r31;
else if (rpoffset)
info->rp = *(unsigned long *)(info->prev_sp - rpoffset);
info->prev_ip = info->rp;
info->rp = 0;
}
info->prev_sp = info->sp - frame_size;
if (e->Millicode)
info->rp = info->r31;
else if (rpoffset)
info->rp = *(unsigned long *)(info->prev_sp - rpoffset);
info->prev_ip = info->rp;
info->rp = 0;

dbg("analyzing func @ %lx, setting prev_sp=%lx "
"prev_ip=%lx npc=%lx\n", info->ip, info->prev_sp,
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/x86_64/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ source "lib/Kconfig.debug"
config DEBUG_RODATA
bool "Write protect kernel read-only data structures"
depends on DEBUG_KERNEL
depends on !KPROBES # temporary for 2.6.22
help
Mark the kernel read-only data as write-protected in the pagetables,
in order to catch accidental (and incorrect) writes to such const data.
Expand Down
5 changes: 0 additions & 5 deletions trunk/arch/x86_64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -605,11 +605,6 @@ void mark_rodata_ro(void)
if (num_possible_cpus() > 1)
start = (unsigned long)_etext;
#endif

#ifdef CONFIG_KPROBES
start = (unsigned long)__start_rodata;
#endif

end = (unsigned long)__end_rodata;
start = (start + PAGE_SIZE - 1) & PAGE_MASK;
end &= PAGE_MASK;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/ata/ahci.c
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ static void ahci_save_initial_config(struct pci_dev *pdev,

/* fixup zero port_map */
if (!port_map) {
port_map = (1 << ahci_nr_ports(cap)) - 1;
port_map = (1 << ahci_nr_ports(hpriv->cap)) - 1;
dev_printk(KERN_WARNING, &pdev->dev,
"PORTS_IMPL is zero, forcing 0x%x\n", port_map);

Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/ata/libata-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3659,7 +3659,7 @@ static int ata_dev_same_device(struct ata_device *dev, unsigned int new_class,

/**
* ata_dev_reread_id - Re-read IDENTIFY data
* @dev: target ATA device
* @adev: target ATA device
* @readid_flags: read ID flags
*
* Re-read IDENTIFY page and make sure @dev is still attached to
Expand Down Expand Up @@ -3802,8 +3802,6 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
{ "HTS541010G9SA00", "MBZOC60D", ATA_HORKAGE_NONCQ, },
/* Drives which do spurious command completion */
{ "HTS541680J9SA00", "SB2IC7EP", ATA_HORKAGE_NONCQ, },
{ "HTS541612J9SA00", "SBDIC7JP", ATA_HORKAGE_NONCQ, },
{ "WDC WD740ADFD-00NLR1", NULL, ATA_HORKAGE_NONCQ, },

/* Devices with NCQ limits */

Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/ata/pata_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -693,8 +693,6 @@ static const struct pci_device_id amd[] = {
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE), 8 },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CS5536_IDE), 9 },

{ },
Expand Down
13 changes: 9 additions & 4 deletions trunk/drivers/ata/pata_it821x.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
* pata_it821x.c - IT821x PATA for new ATA layer
* (C) 2005 Red Hat Inc
* Alan Cox <alan@redhat.com>
* (C) 2007 Bartlomiej Zolnierkiewicz
*
* based upon
*
Expand Down Expand Up @@ -80,7 +79,7 @@


#define DRV_NAME "pata_it821x"
#define DRV_VERSION "0.3.7"
#define DRV_VERSION "0.3.6"

struct it821x_dev
{
Expand Down Expand Up @@ -461,8 +460,14 @@ static unsigned int it821x_passthru_qc_issue_prot(struct ata_queued_cmd *qc)

static int it821x_smart_set_mode(struct ata_port *ap, struct ata_device **unused)
{
int dma_enabled = 0;
int i;

/* Bits 5 and 6 indicate if DMA is active on master/slave */
/* It is possible that BMDMA isn't allocated */
if (ap->ioaddr.bmdma_addr)
dma_enabled = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD);

for (i = 0; i < ATA_MAX_DEVICES; i++) {
struct ata_device *dev = &ap->device[i];
if (ata_dev_enabled(dev)) {
Expand All @@ -471,7 +476,7 @@ static int it821x_smart_set_mode(struct ata_port *ap, struct ata_device **unused
dev->dma_mode = XFER_MW_DMA_0;
/* We do need the right mode information for DMA or PIO
and this comes from the current configuration flags */
if (ata_id_has_dma(dev->id)) {
if (dma_enabled & (1 << (5 + i))) {
ata_dev_printk(dev, KERN_INFO, "configured for DMA\n");
dev->xfer_mode = XFER_MW_DMA_0;
dev->xfer_shift = ATA_SHIFT_MWDMA;
Expand Down Expand Up @@ -794,7 +799,7 @@ MODULE_VERSION(DRV_VERSION);


module_param_named(noraid, it8212_noraid, int, S_IRUGO);
MODULE_PARM_DESC(noraid, "Force card into bypass mode");
MODULE_PARM_DESC(it8212_noraid, "Force card into bypass mode");

module_init(it821x_init);
module_exit(it821x_exit);
35 changes: 16 additions & 19 deletions trunk/drivers/char/agp/intel-agp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1843,35 +1843,35 @@ static const struct intel_driver_description {
&intel_845_driver, &intel_830_driver },
{ PCI_DEVICE_ID_INTEL_82875_HB, 0, 0, "i875", &intel_845_driver, NULL },
{ PCI_DEVICE_ID_INTEL_82915G_HB, PCI_DEVICE_ID_INTEL_82915G_IG, 0, "915G",
NULL, &intel_915_driver },
&intel_845_driver, &intel_915_driver },
{ PCI_DEVICE_ID_INTEL_82915GM_HB, PCI_DEVICE_ID_INTEL_82915GM_IG, 0, "915GM",
NULL, &intel_915_driver },
&intel_845_driver, &intel_915_driver },
{ PCI_DEVICE_ID_INTEL_82945G_HB, PCI_DEVICE_ID_INTEL_82945G_IG, 0, "945G",
NULL, &intel_915_driver },
&intel_845_driver, &intel_915_driver },
{ PCI_DEVICE_ID_INTEL_82945GM_HB, PCI_DEVICE_ID_INTEL_82945GM_IG, 1, "945GM",
NULL, &intel_915_driver },
&intel_845_driver, &intel_915_driver },
{ PCI_DEVICE_ID_INTEL_82945GM_HB, PCI_DEVICE_ID_INTEL_82945GME_IG, 0, "945GME",
NULL, &intel_915_driver },
&intel_845_driver, &intel_915_driver },
{ PCI_DEVICE_ID_INTEL_82946GZ_HB, PCI_DEVICE_ID_INTEL_82946GZ_IG, 0, "946GZ",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965G_1_HB, PCI_DEVICE_ID_INTEL_82965G_1_IG, 0, "965G",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965Q_HB, PCI_DEVICE_ID_INTEL_82965Q_IG, 0, "965Q",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965G_HB, PCI_DEVICE_ID_INTEL_82965G_IG, 0, "965G",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GM_IG, 1, "965GM",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GME_IG, 0, "965GME/GLE",
NULL, &intel_i965_driver },
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_7505_0, 0, 0, "E7505", &intel_7505_driver, NULL },
{ PCI_DEVICE_ID_INTEL_7205_0, 0, 0, "E7205", &intel_7505_driver, NULL },
{ PCI_DEVICE_ID_INTEL_G33_HB, PCI_DEVICE_ID_INTEL_G33_IG, 0, "G33",
NULL, &intel_g33_driver },
&intel_845_driver, &intel_g33_driver },
{ PCI_DEVICE_ID_INTEL_Q35_HB, PCI_DEVICE_ID_INTEL_Q35_IG, 0, "Q35",
NULL, &intel_g33_driver },
&intel_845_driver, &intel_g33_driver },
{ PCI_DEVICE_ID_INTEL_Q33_HB, PCI_DEVICE_ID_INTEL_Q33_IG, 0, "Q33",
NULL, &intel_g33_driver },
&intel_845_driver, &intel_g33_driver },
{ 0, 0, 0, NULL, NULL, NULL }
};

Expand Down Expand Up @@ -1917,11 +1917,8 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev,
}

if (bridge->driver == NULL) {
/* bridge has no AGP and no IGD detected */
if (cap_ptr)
printk(KERN_WARNING PFX "Failed to find bridge device "
"(chip_id: %04x)\n",
intel_agp_chipsets[i].gmch_chip_id);
printk(KERN_WARNING PFX "Failed to find bridge device "
"(chip_id: %04x)\n", intel_agp_chipsets[i].gmch_chip_id);
agp_put_bridge(bridge);
return -ENODEV;
}
Expand Down
16 changes: 9 additions & 7 deletions trunk/drivers/infiniband/core/umem.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,13 +225,15 @@ void ib_umem_release(struct ib_umem *umem)
* up here and not be able to take the mmap_sem. In that case
* we defer the vm_locked accounting to the system workqueue.
*/
if (context->closing && !down_write_trylock(&mm->mmap_sem)) {
INIT_WORK(&umem->work, ib_umem_account);
umem->mm = mm;
umem->diff = diff;

schedule_work(&umem->work);
return;
if (context->closing) {
if (!down_write_trylock(&mm->mmap_sem)) {
INIT_WORK(&umem->work, ib_umem_account);
umem->mm = mm;
umem->diff = diff;

schedule_work(&umem->work);
return;
}
} else
down_write(&mm->mmap_sem);

Expand Down
9 changes: 5 additions & 4 deletions trunk/drivers/net/bonding/bond_3ad.c
Original file line number Diff line number Diff line change
Expand Up @@ -2303,18 +2303,19 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)
}

/*
* set link state for bonding master: if we have an active
* set link state for bonding master: if we have an active partnered
* aggregator, we're up, if not, we're down. Presumes that we cannot
* have an active aggregator if there are no slaves with link up.
*
* This behavior complies with IEEE 802.3 section 43.3.9.
*
* Called by bond_set_carrier(). Return zero if carrier state does not
* change, nonzero if it does.
*/
int bond_3ad_set_carrier(struct bonding *bond)
{
if (__get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator))) {
struct aggregator *agg;

agg = __get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator));
if (agg && MAC_ADDRESS_COMPARE(&agg->partner_system, &null_mac_addr)) {
if (!netif_carrier_ok(bond->dev)) {
netif_carrier_on(bond->dev);
return 1;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4345,8 +4345,8 @@ static void bond_free_all(void)
bond_mc_list_destroy(bond);
/* Release the bonded slaves */
bond_release_all(bond_dev);
bond_deinit(bond_dev);
unregister_netdevice(bond_dev);
bond_deinit(bond_dev);
}

#ifdef CONFIG_PROC_FS
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/bonding/bond_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,9 +164,9 @@ static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t
printk(KERN_INFO DRV_NAME
": %s is being deleted...\n",
bond->dev->name);
unregister_netdevice(bond->dev);
bond_deinit(bond->dev);
bond_destroy_sysfs_entry(bond);
unregister_netdevice(bond->dev);
rtnl_unlock();
goto out;
}
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/net/bonding/bonding.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"

#define DRV_VERSION "3.1.3"
#define DRV_RELDATE "June 13, 2007"
#define DRV_VERSION "3.1.2"
#define DRV_RELDATE "January 20, 2007"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"

Expand Down
10 changes: 2 additions & 8 deletions trunk/drivers/net/cxgb3/ael1002.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,7 @@ static int xaui_direct_get_link_status(struct cphy *phy, int *link_ok,
unsigned int status;

status = t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT0, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT1, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT2, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT3, phy->addr));
XGM_REG(A_XGM_SERDES_STAT0, phy->addr));
*link_ok = !(status & F_LOWSIG0);
}
if (speed)
Expand Down Expand Up @@ -253,5 +247,5 @@ static struct cphy_ops xaui_direct_ops = {
void t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter,
int phy_addr, const struct mdio_ops *mdio_ops)
{
cphy_init(phy, adapter, phy_addr, &xaui_direct_ops, mdio_ops);
cphy_init(phy, adapter, 1, &xaui_direct_ops, mdio_ops);
}
16 changes: 3 additions & 13 deletions trunk/drivers/net/cxgb3/cxgb3_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2071,20 +2071,10 @@ static void vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
static void cxgb_netpoll(struct net_device *dev)
{
struct adapter *adapter = dev->priv;
struct port_info *pi = netdev_priv(dev);
int qidx;
struct sge_qset *qs = dev2qset(dev);

for (qidx = pi->first_qset; qidx < pi->first_qset + pi->nqsets; qidx++) {
struct sge_qset *qs = &adapter->sge.qs[qidx];
void *source;

if (adapter->flags & USING_MSIX)
source = qs;
else
source = adapter;

t3_intr_handler(adapter, qs->rspq.polling) (0, source);
}
t3_intr_handler(adapter, qs->rspq.polling) (adapter->pdev->irq,
adapter);
}
#endif

Expand Down
Loading

0 comments on commit 5d4c6c1

Please sign in to comment.