mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge branches 'tracing/ftrace', 'tracing/textedit' and 'linus' into tracing/core
This commit is contained in:
commit
4dd163a051
50 files changed
+358
-236
No files matched your search
@@ -335,3 +335,12 @@ Why: In 2.6.18 the Secmark concept was introduced to replace the "compat_net"
|
||||
Secmark, it is time to deprecate the older mechanism and start the
|
||||
process of removing the old code.
|
||||
Who: Paul Moore <paul.moore@hp.com>
|
||||
---------------------------
|
||||
|
||||
What: sysfs ui for changing p4-clockmod parameters
|
||||
When: September 2009
|
||||
Why: See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
|
||||
e088e4c9cdb618675874becb91b2fd581ee707e6.
|
||||
Removal is subject to fixing any remaining bugs in ACPI which may
|
||||
cause the thermal throttling not to happen at the right time.
|
||||
Who: Dave Jones <davej@redhat.com>, Matthew Garrett <mjg@redhat.com>
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
Options for the ipv6 module are supplied as parameters at load time.
|
||||
|
||||
Module options may be given as command line arguments to the insmod
|
||||
or modprobe command, but are usually specified in either the
|
||||
/etc/modules.conf or /etc/modprobe.conf configuration file, or in a
|
||||
distro-specific configuration file.
|
||||
|
||||
The available ipv6 module parameters are listed below. If a parameter
|
||||
is not specified the default value is used.
|
||||
|
||||
The parameters are as follows:
|
||||
|
||||
disable
|
||||
|
||||
Specifies whether to load the IPv6 module, but disable all
|
||||
its functionality. This might be used when another module
|
||||
has a dependency on the IPv6 module being loaded, but no
|
||||
IPv6 addresses or operations are desired.
|
||||
|
||||
The possible values and their effects are:
|
||||
|
||||
0
|
||||
IPv6 is enabled.
|
||||
|
||||
This is the default value.
|
||||
|
||||
1
|
||||
IPv6 is disabled.
|
||||
|
||||
No IPv6 addresses will be added to interfaces, and
|
||||
it will not be possible to open an IPv6 socket.
|
||||
|
||||
A reboot is required to enable IPv6.
|
||||
|
||||
@@ -81,7 +81,7 @@ static inline void __init ldp_init_smc911x(void)
|
||||
}
|
||||
|
||||
ldp_smc911x_resources[0].start = cs_mem_base + 0x0;
|
||||
ldp_smc911x_resources[0].end = cs_mem_base + 0xf;
|
||||
ldp_smc911x_resources[0].end = cs_mem_base + 0xff;
|
||||
udelay(100);
|
||||
|
||||
eth_gpio = LDP_SMC911X_GPIO;
|
||||
|
||||
@@ -526,13 +526,12 @@ void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
|
||||
pages[1] = virt_to_page(addr + PAGE_SIZE);
|
||||
}
|
||||
BUG_ON(!pages[0]);
|
||||
local_irq_save(flags);
|
||||
set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0]));
|
||||
if (pages[1])
|
||||
set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1]));
|
||||
vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0);
|
||||
local_irq_save(flags);
|
||||
memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
|
||||
local_irq_restore(flags);
|
||||
clear_fixmap(FIX_TEXT_POKE0);
|
||||
if (pages[1])
|
||||
clear_fixmap(FIX_TEXT_POKE1);
|
||||
@@ -542,5 +541,6 @@ void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
|
||||
that causes hangs on some VIA CPUs. */
|
||||
for (i = 0; i < len; i++)
|
||||
BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]);
|
||||
local_irq_restore(flags);
|
||||
return addr;
|
||||
}
|
||||
@@ -277,7 +277,6 @@ static struct cpufreq_driver p4clockmod_driver = {
|
||||
.name = "p4-clockmod",
|
||||
.owner = THIS_MODULE,
|
||||
.attr = p4clockmod_attr,
|
||||
.hide_interface = 1,
|
||||
};
|
||||
|
||||
|
||||
|
||||
+14
-7
@@ -348,6 +348,11 @@ static void lguest_cpuid(unsigned int *ax, unsigned int *bx,
|
||||
* flush_tlb_user() for both user and kernel mappings unless
|
||||
* the Page Global Enable (PGE) feature bit is set. */
|
||||
*dx |= 0x00002000;
|
||||
/* We also lie, and say we're family id 5. 6 or greater
|
||||
* leads to a rdmsr in early_init_intel which we can't handle.
|
||||
* Family ID is returned as bits 8-12 in ax. */
|
||||
*ax &= 0xFFFFF0FF;
|
||||
*ax |= 0x00000500;
|
||||
break;
|
||||
case 0x80000000:
|
||||
/* Futureproof this a little: if they ask how much extended
|
||||
@@ -594,19 +599,21 @@ static void __init lguest_init_IRQ(void)
|
||||
/* Some systems map "vectors" to interrupts weirdly. Lguest has
|
||||
* a straightforward 1 to 1 mapping, so force that here. */
|
||||
__get_cpu_var(vector_irq)[vector] = i;
|
||||
if (vector != SYSCALL_VECTOR) {
|
||||
set_intr_gate(vector,
|
||||
interrupt[vector-FIRST_EXTERNAL_VECTOR]);
|
||||
set_irq_chip_and_handler_name(i, &lguest_irq_controller,
|
||||
handle_level_irq,
|
||||
"level");
|
||||
}
|
||||
if (vector != SYSCALL_VECTOR)
|
||||
set_intr_gate(vector, interrupt[i]);
|
||||
}
|
||||
/* This call is required to set up for 4k stacks, where we have
|
||||
* separate stacks for hard and soft interrupts. */
|
||||
irq_ctx_init(smp_processor_id());
|
||||
}
|
||||
|
||||
void lguest_setup_irq(unsigned int irq)
|
||||
{
|
||||
irq_to_desc_alloc_cpu(irq, 0);
|
||||
set_irq_chip_and_handler_name(irq, &lguest_irq_controller,
|
||||
handle_level_irq, "level");
|
||||
}
|
||||
|
||||
/*
|
||||
* Time.
|
||||
*
|
||||
|
||||
@@ -173,7 +173,7 @@ skbfree(struct sk_buff *skb)
|
||||
return;
|
||||
while (atomic_read(&skb_shinfo(skb)->dataref) != 1 && i-- > 0)
|
||||
msleep(Sms);
|
||||
if (i <= 0) {
|
||||
if (i < 0) {
|
||||
printk(KERN_ERR
|
||||
"aoe: %s holds ref: %s\n",
|
||||
skb->dev ? skb->dev->name : "netif",
|
||||
|
||||
+18
-33
@@ -754,11 +754,6 @@ static struct kobj_type ktype_cpufreq = {
|
||||
.release = cpufreq_sysfs_release,
|
||||
};
|
||||
|
||||
static struct kobj_type ktype_empty_cpufreq = {
|
||||
.sysfs_ops = &sysfs_ops,
|
||||
.release = cpufreq_sysfs_release,
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* cpufreq_add_dev - add a CPU device
|
||||
@@ -892,36 +887,26 @@ static int cpufreq_add_dev(struct sys_device *sys_dev)
|
||||
memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
|
||||
|
||||
/* prepare interface data */
|
||||
if (!cpufreq_driver->hide_interface) {
|
||||
ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq,
|
||||
&sys_dev->kobj, "cpufreq");
|
||||
ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq, &sys_dev->kobj,
|
||||
"cpufreq");
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
|
||||
/* set up files for this cpu device */
|
||||
drv_attr = cpufreq_driver->attr;
|
||||
while ((drv_attr) && (*drv_attr)) {
|
||||
ret = sysfs_create_file(&policy->kobj, &((*drv_attr)->attr));
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
|
||||
/* set up files for this cpu device */
|
||||
drv_attr = cpufreq_driver->attr;
|
||||
while ((drv_attr) && (*drv_attr)) {
|
||||
ret = sysfs_create_file(&policy->kobj,
|
||||
&((*drv_attr)->attr));
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
drv_attr++;
|
||||
}
|
||||
if (cpufreq_driver->get) {
|
||||
ret = sysfs_create_file(&policy->kobj,
|
||||
&cpuinfo_cur_freq.attr);
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
}
|
||||
if (cpufreq_driver->target) {
|
||||
ret = sysfs_create_file(&policy->kobj,
|
||||
&scaling_cur_freq.attr);
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
}
|
||||
} else {
|
||||
ret = kobject_init_and_add(&policy->kobj, &ktype_empty_cpufreq,
|
||||
&sys_dev->kobj, "cpufreq");
|
||||
drv_attr++;
|
||||
}
|
||||
if (cpufreq_driver->get) {
|
||||
ret = sysfs_create_file(&policy->kobj, &cpuinfo_cur_freq.attr);
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
}
|
||||
if (cpufreq_driver->target) {
|
||||
ret = sysfs_create_file(&policy->kobj, &scaling_cur_freq.attr);
|
||||
if (ret)
|
||||
goto err_out_driver_exit;
|
||||
}
|
||||
|
||||
@@ -212,6 +212,9 @@ static void lg_notify(struct virtqueue *vq)
|
||||
hcall(LHCALL_NOTIFY, lvq->config.pfn << PAGE_SHIFT, 0, 0);
|
||||
}
|
||||
|
||||
/* An extern declaration inside a C file is bad form. Don't do it. */
|
||||
extern void lguest_setup_irq(unsigned int irq);
|
||||
|
||||
/* This routine finds the first virtqueue described in the configuration of
|
||||
* this device and sets it up.
|
||||
*
|
||||
@@ -266,6 +269,9 @@ static struct virtqueue *lg_find_vq(struct virtio_device *vdev,
|
||||
goto unmap;
|
||||
}
|
||||
|
||||
/* Make sure the interrupt is allocated. */
|
||||
lguest_setup_irq(lvq->config.irq);
|
||||
|
||||
/* Tell the interrupt for this virtqueue to go to the virtio_ring
|
||||
* interrupt handler. */
|
||||
/* FIXME: We used to have a flag for the Host to tell us we could use
|
||||
|
||||
@@ -560,7 +560,7 @@ ks8695_reset(struct ks8695_priv *ksp)
|
||||
msleep(1);
|
||||
}
|
||||
|
||||
if (reset_timeout == 0) {
|
||||
if (reset_timeout < 0) {
|
||||
dev_crit(ksp->dev,
|
||||
"Timeout waiting for DMA engines to reset\n");
|
||||
/* And blithely carry on */
|
||||
|
||||
@@ -4113,7 +4113,7 @@ static int bond_neigh_setup(struct net_device *dev, struct neigh_parms *parms)
|
||||
const struct net_device_ops *slave_ops
|
||||
= slave->dev->netdev_ops;
|
||||
if (slave_ops->ndo_neigh_setup)
|
||||
return slave_ops->ndo_neigh_setup(dev, parms);
|
||||
return slave_ops->ndo_neigh_setup(slave->dev, parms);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
+2
-1
@@ -957,13 +957,14 @@ jme_process_receive(struct jme_adapter *jme, int limit)
|
||||
goto out_inc;
|
||||
|
||||
i = atomic_read(&rxring->next_to_clean);
|
||||
while (limit-- > 0) {
|
||||
while (limit > 0) {
|
||||
rxdesc = rxring->desc;
|
||||
rxdesc += i;
|
||||
|
||||
if ((rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_OWN)) ||
|
||||
!(rxdesc->descwb.desccnt & RXWBDCNT_WBCPL))
|
||||
goto out;
|
||||
--limit;
|
||||
|
||||
desccnt = rxdesc->descwb.desccnt & RXWBDCNT_DCNT;
|
||||
|
||||
|
||||
@@ -1035,7 +1035,8 @@ static int el3_rx(struct net_device *dev, int worklimit)
|
||||
DEBUG(3, "%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n",
|
||||
dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RxStatus));
|
||||
while (!((rx_status = inw(ioaddr + RxStatus)) & 0x8000) &&
|
||||
(--worklimit >= 0)) {
|
||||
worklimit > 0) {
|
||||
worklimit--;
|
||||
if (rx_status & 0x4000) { /* Error, update stats. */
|
||||
short error = rx_status & 0x3800;
|
||||
dev->stats.rx_errors++;
|
||||
|
||||
@@ -857,7 +857,8 @@ static int el3_rx(struct net_device *dev)
|
||||
DEBUG(3, "%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n",
|
||||
dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RX_STATUS));
|
||||
while (!((rx_status = inw(ioaddr + RX_STATUS)) & 0x8000) &&
|
||||
(--worklimit >= 0)) {
|
||||
worklimit > 0) {
|
||||
worklimit--;
|
||||
if (rx_status & 0x4000) { /* Error, update stats. */
|
||||
short error = rx_status & 0x3800;
|
||||
dev->stats.rx_errors++;
|
||||
|
||||
@@ -42,6 +42,16 @@
|
||||
#define SMC_USE_16BIT 0
|
||||
#define SMC_USE_32BIT 1
|
||||
#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
|
||||
#elif defined(CONFIG_ARCH_OMAP34XX)
|
||||
#define SMC_USE_16BIT 0
|
||||
#define SMC_USE_32BIT 1
|
||||
#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
|
||||
#define SMC_MEM_RESERVED 1
|
||||
#elif defined(CONFIG_ARCH_OMAP24XX)
|
||||
#define SMC_USE_16BIT 0
|
||||
#define SMC_USE_32BIT 1
|
||||
#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
|
||||
#define SMC_MEM_RESERVED 1
|
||||
#else
|
||||
/*
|
||||
* Default configuration
|
||||
@@ -675,6 +685,7 @@ smc_pxa_dma_outsl(struct smc911x_local *lp, u_long physaddr,
|
||||
#define CHIP_9116 0x0116
|
||||
#define CHIP_9117 0x0117
|
||||
#define CHIP_9118 0x0118
|
||||
#define CHIP_9211 0x9211
|
||||
#define CHIP_9215 0x115A
|
||||
#define CHIP_9217 0x117A
|
||||
#define CHIP_9218 0x118A
|
||||
@@ -689,6 +700,7 @@ static const struct chip_id chip_ids[] = {
|
||||
{ CHIP_9116, "LAN9116" },
|
||||
{ CHIP_9117, "LAN9117" },
|
||||
{ CHIP_9118, "LAN9118" },
|
||||
{ CHIP_9211, "LAN9211" },
|
||||
{ CHIP_9215, "LAN9215" },
|
||||
{ CHIP_9217, "LAN9217" },
|
||||
{ CHIP_9218, "LAN9218" },
|
||||
|
||||
@@ -1229,7 +1229,7 @@ static void gem_reset(struct gem *gp)
|
||||
break;
|
||||
} while (val & (GREG_SWRST_TXRST | GREG_SWRST_RXRST));
|
||||
|
||||
if (limit <= 0)
|
||||
if (limit < 0)
|
||||
printk(KERN_ERR "%s: SW reset is ghetto.\n", gp->dev->name);
|
||||
|
||||
if (gp->phy_type == phy_serialink || gp->phy_type == phy_serdes)
|
||||
|
||||
+2
-1
@@ -1473,7 +1473,8 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ||
|
||||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
|
||||
return;
|
||||
|
||||
reg = MII_TG3_MISC_SHDW_WREN |
|
||||
|
||||
@@ -121,11 +121,6 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
|
||||
goto err_out_trdev;
|
||||
}
|
||||
|
||||
ret = request_irq(pdev->irq, tms380tr_interrupt, IRQF_SHARED,
|
||||
dev->name, dev);
|
||||
if (ret)
|
||||
goto err_out_region;
|
||||
|
||||
dev->base_addr = pci_ioaddr;
|
||||
dev->irq = pci_irq_line;
|
||||
dev->dma = 0;
|
||||
@@ -142,7 +137,7 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
|
||||
ret = tmsdev_init(dev, &pdev->dev);
|
||||
if (ret) {
|
||||
printk("%s: unable to get memory for dev->priv.\n", dev->name);
|
||||
goto err_out_irq;
|
||||
goto err_out_region;
|
||||
}
|
||||
|
||||
tp = netdev_priv(dev);
|
||||
@@ -157,6 +152,11 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
|
||||
|
||||
tp->tmspriv = cardinfo;
|
||||
|
||||
ret = request_irq(pdev->irq, tms380tr_interrupt, IRQF_SHARED,
|
||||
dev->name, dev);
|
||||
if (ret)
|
||||
goto err_out_tmsdev;
|
||||
|
||||
dev->open = tms380tr_open;
|
||||
dev->stop = tms380tr_close;
|
||||
pci_set_drvdata(pdev, dev);
|
||||
@@ -164,15 +164,15 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
|
||||
|
||||
ret = register_netdev(dev);
|
||||
if (ret)
|
||||
goto err_out_tmsdev;
|
||||
goto err_out_irq;
|
||||
|
||||
return 0;
|
||||
|
||||
err_out_irq:
|
||||
free_irq(pdev->irq, dev);
|
||||
err_out_tmsdev:
|
||||
pci_set_drvdata(pdev, NULL);
|
||||
tmsdev_term(dev);
|
||||
err_out_irq:
|
||||
free_irq(pdev->irq, dev);
|
||||
err_out_region:
|
||||
release_region(pci_ioaddr, TMS_PCI_IO_EXTENT);
|
||||
err_out_trdev:
|
||||
|
||||
@@ -107,7 +107,7 @@ int uec_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
|
||||
static int uec_mdio_reset(struct mii_bus *bus)
|
||||
{
|
||||
struct ucc_mii_mng __iomem *regs = (void __iomem *)bus->priv;
|
||||
unsigned int timeout = PHY_INIT_TIMEOUT;
|
||||
int timeout = PHY_INIT_TIMEOUT;
|
||||
|
||||
mutex_lock(&bus->mdio_lock);
|
||||
|
||||
@@ -123,7 +123,7 @@ static int uec_mdio_reset(struct mii_bus *bus)
|
||||
|
||||
mutex_unlock(&bus->mdio_lock);
|
||||
|
||||
if (timeout <= 0) {
|
||||
if (timeout < 0) {
|
||||
printk(KERN_ERR "%s: The MII Bus is stuck!\n", bus->name);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@@ -633,6 +633,10 @@ static const struct usb_device_id products[] = {
|
||||
},
|
||||
{
|
||||
USB_DEVICE(0x0a47, 0x9601), /* Hirose USB-100 */
|
||||
.driver_info = (unsigned long)&dm9601_info,
|
||||
},
|
||||
{
|
||||
USB_DEVICE(0x0fe6, 0x8101), /* DM9601 USB to Fast Ethernet Adapter */
|
||||
.driver_info = (unsigned long)&dm9601_info,
|
||||
},
|
||||
{}, // END
|
||||
|
||||
Loaded 20 of 50 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user