Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/pseries: Simplify H_GET_TERM_CHAR

plpar_get_term_char is only used once and just adds a layer
of complexity to H_GET_TERM_CHAR. plpar_put_term_char isn't
used at all so we can remove it.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Anton Blanchard and committed by
Benjamin Herrenschmidt
a0a96ee9 01b0e07e

+9 -27
+9 -3
arch/powerpc/platforms/pseries/hvconsole.c
··· 40 40 */ 41 41 int hvc_get_chars(uint32_t vtermno, char *buf, int count) 42 42 { 43 - unsigned long got; 43 + long ret; 44 + unsigned long retbuf[PLPAR_HCALL_BUFSIZE]; 45 + unsigned long *lbuf = (unsigned long *)buf; 44 46 45 - if (plpar_get_term_char(vtermno, &got, buf) == H_SUCCESS) 46 - return got; 47 + ret = plpar_hcall(H_GET_TERM_CHAR, retbuf, vtermno); 48 + lbuf[0] = retbuf[1]; 49 + lbuf[1] = retbuf[2]; 50 + 51 + if (ret == H_SUCCESS) 52 + return retbuf[0]; 47 53 48 54 return 0; 49 55 }
-24
arch/powerpc/platforms/pseries/plpar_wrappers.h
··· 256 256 return plpar_hcall_norets(H_STUFF_TCE, liobn, ioba, tceval, count); 257 257 } 258 258 259 - static inline long plpar_get_term_char(unsigned long termno, 260 - unsigned long *len_ret, char *buf_ret) 261 - { 262 - long rc; 263 - unsigned long retbuf[PLPAR_HCALL_BUFSIZE]; 264 - unsigned long *lbuf = (unsigned long *)buf_ret; /* TODO: alignment? */ 265 - 266 - rc = plpar_hcall(H_GET_TERM_CHAR, retbuf, termno); 267 - 268 - *len_ret = retbuf[0]; 269 - lbuf[0] = retbuf[1]; 270 - lbuf[1] = retbuf[2]; 271 - 272 - return rc; 273 - } 274 - 275 - static inline long plpar_put_term_char(unsigned long termno, unsigned long len, 276 - const char *buffer) 277 - { 278 - unsigned long *lbuf = (unsigned long *)buffer; /* TODO: alignment? */ 279 - return plpar_hcall_norets(H_PUT_TERM_CHAR, termno, len, lbuf[0], 280 - lbuf[1]); 281 - } 282 - 283 259 /* Set various resource mode parameters */ 284 260 static inline long plpar_set_mode(unsigned long mflags, unsigned long resource, 285 261 unsigned long value1, unsigned long value2)