Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Browse files Browse the repository at this point in the history
David writes:
  "Sparc fixes:

   1) Minor fallthru comment tweaks from Gustavo A. R. Silva.

   2) VLA removal from Kees Cook.

   3) Make sparc vdso Makefile match x86, from Masahiro Yamada.

   4) Fix clock divider programming in mach64 driver, from Mikulas
      Patocka."

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
  sparc64: fix fall-through annotation
  sparc32: fix fall-through annotation
  sparc: vdso: clean-up vdso Makefile
  oradax: remove redundant null check before kfree
  sparc64: viohs: Remove VLA usage
  sbus: Use of_get_child_by_name helper
  sparc: Convert to using %pOFn instead of device_node.name
  mach64: detect the dot clock divider correctly on sparc
  • Loading branch information
gregkh committed Oct 8, 2018
2 parents 0238df6 + b7dc10b commit 0854ba5
Show file tree
Hide file tree
Showing 13 changed files with 78 additions and 82 deletions.
4 changes: 2 additions & 2 deletions arch/sparc/kernel/auxio_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ static int auxio_probe(struct platform_device *dev)
auxio_devtype = AUXIO_TYPE_SBUS;
size = 1;
} else {
printk("auxio: Unknown parent bus type [%s]\n",
dp->parent->name);
printk("auxio: Unknown parent bus type [%pOFn]\n",
dp->parent);
return -ENODEV;
}
auxio_register = of_ioremap(&dev->resource[0], 0, size, "auxio");
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc/kernel/kgdb_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
linux_regs->pc = addr;
linux_regs->npc = addr + 4;
}
/* fallthru */
/* fall through */

case 'D':
case 'k':
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc/kernel/kgdb_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
linux_regs->tpc = addr;
linux_regs->tnpc = addr + 4;
}
/* fallthru */
/* fall through */

case 'D':
case 'k':
Expand Down
4 changes: 2 additions & 2 deletions arch/sparc/kernel/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ static int power_probe(struct platform_device *op)

power_reg = of_ioremap(res, 0, 0x4, "power");

printk(KERN_INFO "%s: Control reg at %llx\n",
op->dev.of_node->name, res->start);
printk(KERN_INFO "%pOFn: Control reg at %llx\n",
op->dev.of_node, res->start);

if (has_button_interrupt(irq, op->dev.of_node)) {
if (request_irq(irq,
Expand Down
26 changes: 13 additions & 13 deletions arch/sparc/kernel/prom_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ static void __init sparc32_path_component(struct device_node *dp, char *tmp_buf)
return;

regs = rprop->value;
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
regs->which_io, regs->phys_addr);
}

Expand All @@ -84,8 +84,8 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
return;

regs = prop->value;
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
regs->which_io,
regs->phys_addr);
}
Expand All @@ -104,13 +104,13 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
regs = prop->value;
devfn = (regs->phys_hi >> 8) & 0xff;
if (devfn & 0x07) {
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
devfn >> 3,
devfn & 0x07);
} else {
sprintf(tmp_buf, "%s@%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x",
dp,
devfn >> 3);
}
}
Expand All @@ -127,8 +127,8 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)

regs = prop->value;

sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
regs->which_io, regs->phys_addr);
}

Expand Down Expand Up @@ -167,8 +167,8 @@ static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)
return;
device = prop->value;

sprintf(tmp_buf, "%s:%d:%d@%x,%x",
dp->name, *vendor, *device,
sprintf(tmp_buf, "%pOFn:%d:%d@%x,%x",
dp, *vendor, *device,
*intr, reg0);
}

Expand Down Expand Up @@ -201,7 +201,7 @@ char * __init build_path_component(struct device_node *dp)
tmp_buf[0] = '\0';
__build_path_component(dp, tmp_buf);
if (tmp_buf[0] == '\0')
strcpy(tmp_buf, dp->name);
snprintf(tmp_buf, sizeof(tmp_buf), "%pOFn", dp);

n = prom_early_alloc(strlen(tmp_buf) + 1);
strcpy(n, tmp_buf);
Expand Down
68 changes: 34 additions & 34 deletions arch/sparc/kernel/prom_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)

regs = rprop->value;
if (!of_node_is_root(dp->parent)) {
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
(unsigned int) (regs->phys_addr >> 32UL),
(unsigned int) (regs->phys_addr & 0xffffffffUL));
return;
Expand All @@ -97,17 +97,17 @@ static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)
const char *prefix = (type == 0) ? "m" : "i";

if (low_bits)
sprintf(tmp_buf, "%s@%s%x,%x",
dp->name, prefix,
sprintf(tmp_buf, "%pOFn@%s%x,%x",
dp, prefix,
high_bits, low_bits);
else
sprintf(tmp_buf, "%s@%s%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%s%x",
dp,
prefix,
high_bits);
} else if (type == 12) {
sprintf(tmp_buf, "%s@%x",
dp->name, high_bits);
sprintf(tmp_buf, "%pOFn@%x",
dp, high_bits);
}
}

Expand All @@ -122,8 +122,8 @@ static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)

regs = prop->value;
if (!of_node_is_root(dp->parent)) {
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
(unsigned int) (regs->phys_addr >> 32UL),
(unsigned int) (regs->phys_addr & 0xffffffffUL));
return;
Expand All @@ -138,8 +138,8 @@ static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
if (tlb_type >= cheetah)
mask = 0x7fffff;

sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
*(u32 *)prop->value,
(unsigned int) (regs->phys_addr & mask));
}
Expand All @@ -156,8 +156,8 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
return;

regs = prop->value;
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
regs->which_io,
regs->phys_addr);
}
Expand All @@ -176,13 +176,13 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
regs = prop->value;
devfn = (regs->phys_hi >> 8) & 0xff;
if (devfn & 0x07) {
sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
devfn >> 3,
devfn & 0x07);
} else {
sprintf(tmp_buf, "%s@%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x",
dp,
devfn >> 3);
}
}
Expand All @@ -203,8 +203,8 @@ static void __init upa_path_component(struct device_node *dp, char *tmp_buf)
if (!prop)
return;

sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
*(u32 *) prop->value,
(unsigned int) (regs->phys_addr & 0xffffffffUL));
}
Expand All @@ -221,7 +221,7 @@ static void __init vdev_path_component(struct device_node *dp, char *tmp_buf)

regs = prop->value;

sprintf(tmp_buf, "%s@%x", dp->name, *regs);
sprintf(tmp_buf, "%pOFn@%x", dp, *regs);
}

/* "name@addrhi,addrlo" */
Expand All @@ -236,8 +236,8 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)

regs = prop->value;

sprintf(tmp_buf, "%s@%x,%x",
dp->name,
sprintf(tmp_buf, "%pOFn@%x,%x",
dp,
(unsigned int) (regs->phys_addr >> 32UL),
(unsigned int) (regs->phys_addr & 0xffffffffUL));
}
Expand All @@ -257,8 +257,8 @@ static void __init i2c_path_component(struct device_node *dp, char *tmp_buf)
/* This actually isn't right... should look at the #address-cells
* property of the i2c bus node etc. etc.
*/
sprintf(tmp_buf, "%s@%x,%x",
dp->name, regs[0], regs[1]);
sprintf(tmp_buf, "%pOFn@%x,%x",
dp, regs[0], regs[1]);
}

/* "name@reg0[,reg1]" */
Expand All @@ -274,11 +274,11 @@ static void __init usb_path_component(struct device_node *dp, char *tmp_buf)
regs = prop->value;

if (prop->length == sizeof(u32) || regs[1] == 1) {
sprintf(tmp_buf, "%s@%x",
dp->name, regs[0]);
sprintf(tmp_buf, "%pOFn@%x",
dp, regs[0]);
} else {
sprintf(tmp_buf, "%s@%x,%x",
dp->name, regs[0], regs[1]);
sprintf(tmp_buf, "%pOFn@%x,%x",
dp, regs[0], regs[1]);
}
}

Expand All @@ -295,11 +295,11 @@ static void __init ieee1394_path_component(struct device_node *dp, char *tmp_buf
regs = prop->value;

if (regs[2] || regs[3]) {
sprintf(tmp_buf, "%s@%08x%08x,%04x%08x",
dp->name, regs[0], regs[1], regs[2], regs[3]);
sprintf(tmp_buf, "%pOFn@%08x%08x,%04x%08x",
dp, regs[0], regs[1], regs[2], regs[3]);
} else {
sprintf(tmp_buf, "%s@%08x%08x",
dp->name, regs[0], regs[1]);
sprintf(tmp_buf, "%pOFn@%08x%08x",
dp, regs[0], regs[1]);
}
}

Expand Down Expand Up @@ -361,7 +361,7 @@ char * __init build_path_component(struct device_node *dp)
tmp_buf[0] = '\0';
__build_path_component(dp, tmp_buf);
if (tmp_buf[0] == '\0')
strcpy(tmp_buf, dp->name);
snprintf(tmp_buf, sizeof(tmp_buf), "%pOFn", dp);

n = prom_early_alloc(strlen(tmp_buf) + 1);
strcpy(n, tmp_buf);
Expand Down
12 changes: 9 additions & 3 deletions arch/sparc/kernel/viohs.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,11 +180,17 @@ static int send_dreg(struct vio_driver_state *vio)
struct vio_dring_register pkt;
char all[sizeof(struct vio_dring_register) +
(sizeof(struct ldc_trans_cookie) *
dr->ncookies)];
VIO_MAX_RING_COOKIES)];
} u;
size_t bytes = sizeof(struct vio_dring_register) +
(sizeof(struct ldc_trans_cookie) *
dr->ncookies);
int i;

memset(&u, 0, sizeof(u));
if (WARN_ON(bytes > sizeof(u)))
return -EINVAL;

memset(&u, 0, bytes);
init_tag(&u.pkt.tag, VIO_TYPE_CTRL, VIO_SUBTYPE_INFO, VIO_DRING_REG);
u.pkt.dring_ident = 0;
u.pkt.num_descr = dr->num_entries;
Expand All @@ -206,7 +212,7 @@ static int send_dreg(struct vio_driver_state *vio)
(unsigned long long) u.pkt.cookies[i].cookie_size);
}

return send_ctrl(vio, &u.pkt.tag, sizeof(u));
return send_ctrl(vio, &u.pkt.tag, bytes);
}

static int send_rdx(struct vio_driver_state *vio)
Expand Down
8 changes: 3 additions & 5 deletions arch/sparc/vdso/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,21 @@ obj-y += $(vdso_img_objs)
targets += $(vdso_img_cfiles)
targets += $(vdso_img_sodbg) $(vdso_img-y:%=vdso%.so)

export CPPFLAGS_vdso.lds += -P -C
CPPFLAGS_vdso.lds += -P -C

VDSO_LDFLAGS_vdso.lds = -m64 -Wl,-soname=linux-vdso.so.1 \
-Wl,--no-undefined \
-Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192 \
$(DISABLE_LTO)

$(obj)/vdso64.so.dbg: $(src)/vdso.lds $(vobjs) FORCE
$(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
$(call if_changed,vdso)

HOST_EXTRACFLAGS += -I$(srctree)/tools/include
hostprogs-y += vdso2c

quiet_cmd_vdso2c = VDSO2C $@
define cmd_vdso2c
$(obj)/vdso2c $< $(<:%.dbg=%) $@
endef
cmd_vdso2c = $(obj)/vdso2c $< $(<:%.dbg=%) $@

$(obj)/vdso-image-%.c: $(obj)/vdso%.so.dbg $(obj)/vdso%.so $(obj)/vdso2c FORCE
$(call if_changed,vdso2c)
Expand Down
11 changes: 1 addition & 10 deletions drivers/sbus/char/openprom.c
Original file line number Diff line number Diff line change
Expand Up @@ -715,22 +715,13 @@ static struct miscdevice openprom_dev = {

static int __init openprom_init(void)
{
struct device_node *dp;
int err;

err = misc_register(&openprom_dev);
if (err)
return err;

dp = of_find_node_by_path("/");
dp = dp->child;
while (dp) {
if (!strcmp(dp->name, "options"))
break;
dp = dp->sibling;
}
options_node = dp;

options_node = of_get_child_by_name(of_find_node_by_path("/"), "options");
if (!options_node) {
misc_deregister(&openprom_dev);
return -EIO;
Expand Down
3 changes: 1 addition & 2 deletions drivers/sbus/char/oradax.c
Original file line number Diff line number Diff line change
Expand Up @@ -689,8 +689,7 @@ static int dax_open(struct inode *inode, struct file *f)
alloc_error:
kfree(ctx->ccb_buf);
done:
if (ctx != NULL)
kfree(ctx);
kfree(ctx);
return -ENOMEM;
}

Expand Down
3 changes: 2 additions & 1 deletion drivers/video/fbdev/aty/atyfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,8 @@ extern const struct aty_pll_ops aty_pll_ct; /* Integrated */
extern void aty_set_pll_ct(const struct fb_info *info, const union aty_pll *pll);
extern u8 aty_ld_pll_ct(int offset, const struct atyfb_par *par);

extern const u8 aty_postdividers[8];


/*
* Hardware cursor support
Expand All @@ -359,7 +361,6 @@ static inline void wait_for_idle(struct atyfb_par *par)

extern void aty_reset_engine(const struct atyfb_par *par);
extern void aty_init_engine(struct atyfb_par *par, struct fb_info *info);
extern u8 aty_ld_pll_ct(int offset, const struct atyfb_par *par);

void atyfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
void atyfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
Expand Down
Loading

0 comments on commit 0854ba5

Please sign in to comment.