Commit df31405a authored by Linus Torvalds's avatar Linus Torvalds

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.
parents 7c30b065 404dda85
...@@ -69,6 +69,8 @@ static inline void io_remap_pte_range(struct mm_struct *mm, pte_t * pte, ...@@ -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) ...@@ -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) {
err = sparc_lance_probe_one(sdev, NULL, NULL); struct of_device *parent = &sdev->parent->ofdev;
} else if (!strcmp(dp->name, "ledma")) {
struct sbus_dma *ledma = find_ledma(sdev);
err = sparc_lance_probe_one(sdev->child, ledma, NULL); if (!strcmp(parent->node->name, "ledma")) {
} else { struct sbus_dma *ledma = find_ledma(to_sbus_device(&parent->dev));
BUG_ON(strcmp(dp->name, "lebuffer"));
err = sparc_lance_probe_one(sdev->child, NULL, sdev); 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);
return err; return err;
} }
...@@ -1604,12 +1605,6 @@ static struct of_device_id sunlance_sbus_match[] = { ...@@ -1604,12 +1605,6 @@ static struct of_device_id sunlance_sbus_match[] = {
{ {
.name = "le", .name = "le",
}, },
{
.name = "ledma",
},
{
.name = "lebuffer",
},
{}, {},
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment