Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SUNLANCE]: Fix probing problem. [SPARC64]: Fix X server hangs due to large pages.
This commit is contained in:
commit
df31405a9a
@ -69,6 +69,8 @@ static inline void io_remap_pte_range(struct mm_struct *mm, pte_t * pte,
|
|||||||
} else
|
} else
|
||||||
offset += PAGE_SIZE;
|
offset += PAGE_SIZE;
|
||||||
|
|
||||||
|
if (pte_write(entry))
|
||||||
|
entry = pte_mkdirty(entry);
|
||||||
do {
|
do {
|
||||||
BUG_ON(!pte_none(*pte));
|
BUG_ON(!pte_none(*pte));
|
||||||
set_pte_at(mm, address, pte, entry);
|
set_pte_at(mm, address, pte, entry);
|
||||||
|
@ -1566,20 +1566,21 @@ static int __exit sunlance_sun4_remove(void)
|
|||||||
static int __devinit sunlance_sbus_probe(struct of_device *dev, const struct of_device_id *match)
|
static int __devinit sunlance_sbus_probe(struct of_device *dev, const struct of_device_id *match)
|
||||||
{
|
{
|
||||||
struct sbus_dev *sdev = to_sbus_device(&dev->dev);
|
struct sbus_dev *sdev = to_sbus_device(&dev->dev);
|
||||||
struct device_node *dp = dev->node;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (!strcmp(dp->name, "le")) {
|
if (sdev->parent) {
|
||||||
|
struct of_device *parent = &sdev->parent->ofdev;
|
||||||
|
|
||||||
|
if (!strcmp(parent->node->name, "ledma")) {
|
||||||
|
struct sbus_dma *ledma = find_ledma(to_sbus_device(&parent->dev));
|
||||||
|
|
||||||
|
err = sparc_lance_probe_one(sdev, ledma, NULL);
|
||||||
|
} else if (!strcmp(parent->node->name, "lebuffer")) {
|
||||||
|
err = sparc_lance_probe_one(sdev, NULL, to_sbus_device(&parent->dev));
|
||||||
|
} else
|
||||||
|
err = sparc_lance_probe_one(sdev, NULL, NULL);
|
||||||
|
} else
|
||||||
err = sparc_lance_probe_one(sdev, NULL, NULL);
|
err = sparc_lance_probe_one(sdev, NULL, NULL);
|
||||||
} else if (!strcmp(dp->name, "ledma")) {
|
|
||||||
struct sbus_dma *ledma = find_ledma(sdev);
|
|
||||||
|
|
||||||
err = sparc_lance_probe_one(sdev->child, ledma, NULL);
|
|
||||||
} else {
|
|
||||||
BUG_ON(strcmp(dp->name, "lebuffer"));
|
|
||||||
|
|
||||||
err = sparc_lance_probe_one(sdev->child, NULL, sdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -1604,12 +1605,6 @@ static struct of_device_id sunlance_sbus_match[] = {
|
|||||||
{
|
{
|
||||||
.name = "le",
|
.name = "le",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
.name = "ledma",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.name = "lebuffer",
|
|
||||||
},
|
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user