diff options
Diffstat (limited to 'include')
114 files changed, 1106 insertions, 650 deletions
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index a322012f16ac..4b2ea1e95c57 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -1406,202 +1406,6 @@ | |||
1406 | #define OSCC_OON (1 << 1) /* 32.768kHz OON (write-once only bit) */ | 1406 | #define OSCC_OON (1 << 1) /* 32.768kHz OON (write-once only bit) */ |
1407 | #define OSCC_OOK (1 << 0) /* 32.768kHz OOK (read-only bit) */ | 1407 | #define OSCC_OOK (1 << 0) /* 32.768kHz OOK (read-only bit) */ |
1408 | 1408 | ||
1409 | |||
1410 | /* | ||
1411 | * LCD | ||
1412 | */ | ||
1413 | |||
1414 | #define LCCR0 __REG(0x44000000) /* LCD Controller Control Register 0 */ | ||
1415 | #define LCCR1 __REG(0x44000004) /* LCD Controller Control Register 1 */ | ||
1416 | #define LCCR2 __REG(0x44000008) /* LCD Controller Control Register 2 */ | ||
1417 | #define LCCR3 __REG(0x4400000C) /* LCD Controller Control Register 3 */ | ||
1418 | #define LCCR4 __REG(0x44000010) /* LCD Controller Control Register 3 */ | ||
1419 | #define DFBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ | ||
1420 | #define DFBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ | ||
1421 | #define LCSR __REG(0x44000038) /* LCD Controller Status Register */ | ||
1422 | #define LIIDR __REG(0x4400003C) /* LCD Controller Interrupt ID Register */ | ||
1423 | #define TMEDRGBR __REG(0x44000040) /* TMED RGB Seed Register */ | ||
1424 | #define TMEDCR __REG(0x44000044) /* TMED Control Register */ | ||
1425 | |||
1426 | #define LCCR3_1BPP (0 << 24) | ||
1427 | #define LCCR3_2BPP (1 << 24) | ||
1428 | #define LCCR3_4BPP (2 << 24) | ||
1429 | #define LCCR3_8BPP (3 << 24) | ||
1430 | #define LCCR3_16BPP (4 << 24) | ||
1431 | |||
1432 | #define LCCR3_PDFOR_0 (0 << 30) | ||
1433 | #define LCCR3_PDFOR_1 (1 << 30) | ||
1434 | #define LCCR3_PDFOR_2 (2 << 30) | ||
1435 | #define LCCR3_PDFOR_3 (3 << 30) | ||
1436 | |||
1437 | #define LCCR4_PAL_FOR_0 (0 << 15) | ||
1438 | #define LCCR4_PAL_FOR_1 (1 << 15) | ||
1439 | #define LCCR4_PAL_FOR_2 (2 << 15) | ||
1440 | #define LCCR4_PAL_FOR_MASK (3 << 15) | ||
1441 | |||
1442 | #define FDADR0 __REG(0x44000200) /* DMA Channel 0 Frame Descriptor Address Register */ | ||
1443 | #define FSADR0 __REG(0x44000204) /* DMA Channel 0 Frame Source Address Register */ | ||
1444 | #define FIDR0 __REG(0x44000208) /* DMA Channel 0 Frame ID Register */ | ||
1445 | #define LDCMD0 __REG(0x4400020C) /* DMA Channel 0 Command Register */ | ||
1446 | #define FDADR1 __REG(0x44000210) /* DMA Channel 1 Frame Descriptor Address Register */ | ||
1447 | #define FSADR1 __REG(0x44000214) /* DMA Channel 1 Frame Source Address Register */ | ||
1448 | #define FIDR1 __REG(0x44000218) /* DMA Channel 1 Frame ID Register */ | ||
1449 | #define LDCMD1 __REG(0x4400021C) /* DMA Channel 1 Command Register */ | ||
1450 | |||
1451 | #define LCCR0_ENB (1 << 0) /* LCD Controller enable */ | ||
1452 | #define LCCR0_CMS (1 << 1) /* Color/Monochrome Display Select */ | ||
1453 | #define LCCR0_Color (LCCR0_CMS*0) /* Color display */ | ||
1454 | #define LCCR0_Mono (LCCR0_CMS*1) /* Monochrome display */ | ||
1455 | #define LCCR0_SDS (1 << 2) /* Single/Dual Panel Display */ | ||
1456 | /* Select */ | ||
1457 | #define LCCR0_Sngl (LCCR0_SDS*0) /* Single panel display */ | ||
1458 | #define LCCR0_Dual (LCCR0_SDS*1) /* Dual panel display */ | ||
1459 | |||
1460 | #define LCCR0_LDM (1 << 3) /* LCD Disable Done Mask */ | ||
1461 | #define LCCR0_SFM (1 << 4) /* Start of frame mask */ | ||
1462 | #define LCCR0_IUM (1 << 5) /* Input FIFO underrun mask */ | ||
1463 | #define LCCR0_EFM (1 << 6) /* End of Frame mask */ | ||
1464 | #define LCCR0_PAS (1 << 7) /* Passive/Active display Select */ | ||
1465 | #define LCCR0_Pas (LCCR0_PAS*0) /* Passive display (STN) */ | ||
1466 | #define LCCR0_Act (LCCR0_PAS*1) /* Active display (TFT) */ | ||
1467 | #define LCCR0_DPD (1 << 9) /* Double Pixel Data (monochrome */ | ||
1468 | /* display mode) */ | ||
1469 | #define LCCR0_4PixMono (LCCR0_DPD*0) /* 4-Pixel/clock Monochrome */ | ||
1470 | /* display */ | ||
1471 | #define LCCR0_8PixMono (LCCR0_DPD*1) /* 8-Pixel/clock Monochrome */ | ||
1472 | /* display */ | ||
1473 | #define LCCR0_DIS (1 << 10) /* LCD Disable */ | ||
1474 | #define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ | ||
1475 | #define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ | ||
1476 | #define LCCR0_PDD_S 12 | ||
1477 | #define LCCR0_BM (1 << 20) /* Branch mask */ | ||
1478 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ | ||
1479 | #define LCCR0_LCDT (1 << 22) /* LCD panel type */ | ||
1480 | #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ | ||
1481 | #define LCCR0_CMDIM (1 << 24) /* Command interrupt mask */ | ||
1482 | #define LCCR0_OUC (1 << 25) /* Overlay Underlay control bit */ | ||
1483 | #define LCCR0_LDDALT (1 << 26) /* LDD alternate mapping control */ | ||
1484 | |||
1485 | #define LCCR1_PPL Fld (10, 0) /* Pixels Per Line - 1 */ | ||
1486 | #define LCCR1_DisWdth(Pixel) /* Display Width [1..800 pix.] */ \ | ||
1487 | (((Pixel) - 1) << FShft (LCCR1_PPL)) | ||
1488 | |||
1489 | #define LCCR1_HSW Fld (6, 10) /* Horizontal Synchronization */ | ||
1490 | #define LCCR1_HorSnchWdth(Tpix) /* Horizontal Synchronization */ \ | ||
1491 | /* pulse Width [1..64 Tpix] */ \ | ||
1492 | (((Tpix) - 1) << FShft (LCCR1_HSW)) | ||
1493 | |||
1494 | #define LCCR1_ELW Fld (8, 16) /* End-of-Line pixel clock Wait */ | ||
1495 | /* count - 1 [Tpix] */ | ||
1496 | #define LCCR1_EndLnDel(Tpix) /* End-of-Line Delay */ \ | ||
1497 | /* [1..256 Tpix] */ \ | ||
1498 | (((Tpix) - 1) << FShft (LCCR1_ELW)) | ||
1499 | |||
1500 | #define LCCR1_BLW Fld (8, 24) /* Beginning-of-Line pixel clock */ | ||
1501 | /* Wait count - 1 [Tpix] */ | ||
1502 | #define LCCR1_BegLnDel(Tpix) /* Beginning-of-Line Delay */ \ | ||
1503 | /* [1..256 Tpix] */ \ | ||
1504 | (((Tpix) - 1) << FShft (LCCR1_BLW)) | ||
1505 | |||
1506 | |||
1507 | #define LCCR2_LPP Fld (10, 0) /* Line Per Panel - 1 */ | ||
1508 | #define LCCR2_DisHght(Line) /* Display Height [1..1024 lines] */ \ | ||
1509 | (((Line) - 1) << FShft (LCCR2_LPP)) | ||
1510 | |||
1511 | #define LCCR2_VSW Fld (6, 10) /* Vertical Synchronization pulse */ | ||
1512 | /* Width - 1 [Tln] (L_FCLK) */ | ||
1513 | #define LCCR2_VrtSnchWdth(Tln) /* Vertical Synchronization pulse */ \ | ||
1514 | /* Width [1..64 Tln] */ \ | ||
1515 | (((Tln) - 1) << FShft (LCCR2_VSW)) | ||
1516 | |||
1517 | #define LCCR2_EFW Fld (8, 16) /* End-of-Frame line clock Wait */ | ||
1518 | /* count [Tln] */ | ||
1519 | #define LCCR2_EndFrmDel(Tln) /* End-of-Frame Delay */ \ | ||
1520 | /* [0..255 Tln] */ \ | ||
1521 | ((Tln) << FShft (LCCR2_EFW)) | ||
1522 | |||
1523 | #define LCCR2_BFW Fld (8, 24) /* Beginning-of-Frame line clock */ | ||
1524 | /* Wait count [Tln] */ | ||
1525 | #define LCCR2_BegFrmDel(Tln) /* Beginning-of-Frame Delay */ \ | ||
1526 | /* [0..255 Tln] */ \ | ||
1527 | ((Tln) << FShft (LCCR2_BFW)) | ||
1528 | |||
1529 | #if 0 | ||
1530 | #define LCCR3_PCD (0xff) /* Pixel clock divisor */ | ||
1531 | #define LCCR3_ACB (0xff << 8) /* AC Bias pin frequency */ | ||
1532 | #define LCCR3_ACB_S 8 | ||
1533 | #endif | ||
1534 | |||
1535 | #define LCCR3_API (0xf << 16) /* AC Bias pin trasitions per interrupt */ | ||
1536 | #define LCCR3_API_S 16 | ||
1537 | #define LCCR3_VSP (1 << 20) /* vertical sync polarity */ | ||
1538 | #define LCCR3_HSP (1 << 21) /* horizontal sync polarity */ | ||
1539 | #define LCCR3_PCP (1 << 22) /* Pixel Clock Polarity (L_PCLK) */ | ||
1540 | #define LCCR3_PixRsEdg (LCCR3_PCP*0) /* Pixel clock Rising-Edge */ | ||
1541 | #define LCCR3_PixFlEdg (LCCR3_PCP*1) /* Pixel clock Falling-Edge */ | ||
1542 | |||
1543 | #define LCCR3_OEP (1 << 23) /* Output Enable Polarity (L_BIAS, */ | ||
1544 | /* active display mode) */ | ||
1545 | #define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */ | ||
1546 | #define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */ | ||
1547 | |||
1548 | #if 0 | ||
1549 | #define LCCR3_BPP (7 << 24) /* bits per pixel */ | ||
1550 | #define LCCR3_BPP_S 24 | ||
1551 | #endif | ||
1552 | #define LCCR3_DPC (1 << 27) /* double pixel clock mode */ | ||
1553 | |||
1554 | |||
1555 | #define LCCR3_PCD Fld (8, 0) /* Pixel Clock Divisor */ | ||
1556 | #define LCCR3_PixClkDiv(Div) /* Pixel Clock Divisor */ \ | ||
1557 | (((Div) << FShft (LCCR3_PCD))) | ||
1558 | |||
1559 | |||
1560 | #define LCCR3_BPP Fld (3, 24) /* Bit Per Pixel */ | ||
1561 | #define LCCR3_Bpp(Bpp) /* Bit Per Pixel */ \ | ||
1562 | (((Bpp) << FShft (LCCR3_BPP))) | ||
1563 | |||
1564 | #define LCCR3_ACB Fld (8, 8) /* AC Bias */ | ||
1565 | #define LCCR3_Acb(Acb) /* BAC Bias */ \ | ||
1566 | (((Acb) << FShft (LCCR3_ACB))) | ||
1567 | |||
1568 | #define LCCR3_HorSnchH (LCCR3_HSP*0) /* Horizontal Synchronization */ | ||
1569 | /* pulse active High */ | ||
1570 | #define LCCR3_HorSnchL (LCCR3_HSP*1) /* Horizontal Synchronization */ | ||
1571 | |||
1572 | #define LCCR3_VrtSnchH (LCCR3_VSP*0) /* Vertical Synchronization pulse */ | ||
1573 | /* active High */ | ||
1574 | #define LCCR3_VrtSnchL (LCCR3_VSP*1) /* Vertical Synchronization pulse */ | ||
1575 | /* active Low */ | ||
1576 | |||
1577 | #define LCSR_LDD (1 << 0) /* LCD Disable Done */ | ||
1578 | #define LCSR_SOF (1 << 1) /* Start of frame */ | ||
1579 | #define LCSR_BER (1 << 2) /* Bus error */ | ||
1580 | #define LCSR_ABC (1 << 3) /* AC Bias count */ | ||
1581 | #define LCSR_IUL (1 << 4) /* input FIFO underrun Lower panel */ | ||
1582 | #define LCSR_IUU (1 << 5) /* input FIFO underrun Upper panel */ | ||
1583 | #define LCSR_OU (1 << 6) /* output FIFO underrun */ | ||
1584 | #define LCSR_QD (1 << 7) /* quick disable */ | ||
1585 | #define LCSR_EOF (1 << 8) /* end of frame */ | ||
1586 | #define LCSR_BS (1 << 9) /* branch status */ | ||
1587 | #define LCSR_SINT (1 << 10) /* subsequent interrupt */ | ||
1588 | |||
1589 | #define LDCMD_PAL (1 << 26) /* instructs DMA to load palette buffer */ | ||
1590 | |||
1591 | #define LCSR_LDD (1 << 0) /* LCD Disable Done */ | ||
1592 | #define LCSR_SOF (1 << 1) /* Start of frame */ | ||
1593 | #define LCSR_BER (1 << 2) /* Bus error */ | ||
1594 | #define LCSR_ABC (1 << 3) /* AC Bias count */ | ||
1595 | #define LCSR_IUL (1 << 4) /* input FIFO underrun Lower panel */ | ||
1596 | #define LCSR_IUU (1 << 5) /* input FIFO underrun Upper panel */ | ||
1597 | #define LCSR_OU (1 << 6) /* output FIFO underrun */ | ||
1598 | #define LCSR_QD (1 << 7) /* quick disable */ | ||
1599 | #define LCSR_EOF (1 << 8) /* end of frame */ | ||
1600 | #define LCSR_BS (1 << 9) /* branch status */ | ||
1601 | #define LCSR_SINT (1 << 10) /* subsequent interrupt */ | ||
1602 | |||
1603 | #define LDCMD_PAL (1 << 26) /* instructs DMA to load palette buffer */ | ||
1604 | |||
1605 | #ifdef CONFIG_PXA27x | 1409 | #ifdef CONFIG_PXA27x |
1606 | 1410 | ||
1607 | /* Camera Interface */ | 1411 | /* Camera Interface */ |
diff --git a/include/asm-arm/arch-pxa/pxafb.h b/include/asm-arm/arch-pxa/pxafb.h index ea2336aa70e4..bbd22396841a 100644 --- a/include/asm-arm/arch-pxa/pxafb.h +++ b/include/asm-arm/arch-pxa/pxafb.h | |||
@@ -13,6 +13,50 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/fb.h> | 15 | #include <linux/fb.h> |
16 | #include <asm/arch/regs-lcd.h> | ||
17 | |||
18 | /* | ||
19 | * Supported LCD connections | ||
20 | * | ||
21 | * bits 0 - 3: for LCD panel type: | ||
22 | * | ||
23 | * STN - for passive matrix | ||
24 | * DSTN - for dual scan passive matrix | ||
25 | * TFT - for active matrix | ||
26 | * | ||
27 | * bits 4 - 9 : for bus width | ||
28 | * bits 10-17 : for AC Bias Pin Frequency | ||
29 | * bit 18 : for output enable polarity | ||
30 | * bit 19 : for pixel clock edge | ||
31 | */ | ||
32 | #define LCD_CONN_TYPE(_x) ((_x) & 0x0f) | ||
33 | #define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f) | ||
34 | |||
35 | #define LCD_TYPE_UNKNOWN 0 | ||
36 | #define LCD_TYPE_MONO_STN 1 | ||
37 | #define LCD_TYPE_MONO_DSTN 2 | ||
38 | #define LCD_TYPE_COLOR_STN 3 | ||
39 | #define LCD_TYPE_COLOR_DSTN 4 | ||
40 | #define LCD_TYPE_COLOR_TFT 5 | ||
41 | #define LCD_TYPE_SMART_PANEL 6 | ||
42 | #define LCD_TYPE_MAX 7 | ||
43 | |||
44 | #define LCD_MONO_STN_4BPP ((4 << 4) | LCD_TYPE_MONO_STN) | ||
45 | #define LCD_MONO_STN_8BPP ((8 << 4) | LCD_TYPE_MONO_STN) | ||
46 | #define LCD_MONO_DSTN_8BPP ((8 << 4) | LCD_TYPE_MONO_DSTN) | ||
47 | #define LCD_COLOR_STN_8BPP ((8 << 4) | LCD_TYPE_COLOR_STN) | ||
48 | #define LCD_COLOR_DSTN_16BPP ((16 << 4) | LCD_TYPE_COLOR_DSTN) | ||
49 | #define LCD_COLOR_TFT_16BPP ((16 << 4) | LCD_TYPE_COLOR_TFT) | ||
50 | #define LCD_COLOR_TFT_18BPP ((18 << 4) | LCD_TYPE_COLOR_TFT) | ||
51 | #define LCD_SMART_PANEL_8BPP ((8 << 4) | LCD_TYPE_SMART_PANEL) | ||
52 | #define LCD_SMART_PANEL_16BPP ((16 << 4) | LCD_TYPE_SMART_PANEL) | ||
53 | #define LCD_SMART_PANEL_18BPP ((18 << 4) | LCD_TYPE_SMART_PANEL) | ||
54 | |||
55 | #define LCD_AC_BIAS_FREQ(x) (((x) & 0xff) << 10) | ||
56 | #define LCD_BIAS_ACTIVE_HIGH (0 << 17) | ||
57 | #define LCD_BIAS_ACTIVE_LOW (1 << 17) | ||
58 | #define LCD_PCLK_EDGE_RISE (0 << 18) | ||
59 | #define LCD_PCLK_EDGE_FALL (1 << 18) | ||
16 | 60 | ||
17 | /* | 61 | /* |
18 | * This structure describes the machine which we are running on. | 62 | * This structure describes the machine which we are running on. |
@@ -26,6 +70,10 @@ struct pxafb_mode_info { | |||
26 | u_short yres; | 70 | u_short yres; |
27 | 71 | ||
28 | u_char bpp; | 72 | u_char bpp; |
73 | u_int cmap_greyscale:1, | ||
74 | unused:31; | ||
75 | |||
76 | /* Parallel Mode Timing */ | ||
29 | u_char hsync_len; | 77 | u_char hsync_len; |
30 | u_char left_margin; | 78 | u_char left_margin; |
31 | u_char right_margin; | 79 | u_char right_margin; |
@@ -35,14 +83,28 @@ struct pxafb_mode_info { | |||
35 | u_char lower_margin; | 83 | u_char lower_margin; |
36 | u_char sync; | 84 | u_char sync; |
37 | 85 | ||
38 | u_int cmap_greyscale:1, | 86 | /* Smart Panel Mode Timing - see PXA27x DM 7.4.15.0.3 for details |
39 | unused:31; | 87 | * Note: |
88 | * 1. all parameters in nanosecond (ns) | ||
89 | * 2. a0cs{rd,wr}_set_hld are controlled by the same register bits | ||
90 | * in pxa27x and pxa3xx, initialize them to the same value or | ||
91 | * the larger one will be used | ||
92 | * 3. same to {rd,wr}_pulse_width | ||
93 | */ | ||
94 | unsigned a0csrd_set_hld; /* A0 and CS Setup/Hold Time before/after L_FCLK_RD */ | ||
95 | unsigned a0cswr_set_hld; /* A0 and CS Setup/Hold Time before/after L_PCLK_WR */ | ||
96 | unsigned wr_pulse_width; /* L_PCLK_WR pulse width */ | ||
97 | unsigned rd_pulse_width; /* L_FCLK_RD pulse width */ | ||
98 | unsigned cmd_inh_time; /* Command Inhibit time between two writes */ | ||
99 | unsigned op_hold_time; /* Output Hold time from L_FCLK_RD negation */ | ||
40 | }; | 100 | }; |
41 | 101 | ||
42 | struct pxafb_mach_info { | 102 | struct pxafb_mach_info { |
43 | struct pxafb_mode_info *modes; | 103 | struct pxafb_mode_info *modes; |
44 | unsigned int num_modes; | 104 | unsigned int num_modes; |
45 | 105 | ||
106 | unsigned int lcd_conn; | ||
107 | |||
46 | u_int fixed_modes:1, | 108 | u_int fixed_modes:1, |
47 | cmap_inverse:1, | 109 | cmap_inverse:1, |
48 | cmap_static:1, | 110 | cmap_static:1, |
@@ -78,8 +140,11 @@ struct pxafb_mach_info { | |||
78 | u_int lccr4; | 140 | u_int lccr4; |
79 | void (*pxafb_backlight_power)(int); | 141 | void (*pxafb_backlight_power)(int); |
80 | void (*pxafb_lcd_power)(int, struct fb_var_screeninfo *); | 142 | void (*pxafb_lcd_power)(int, struct fb_var_screeninfo *); |
81 | 143 | void (*smart_update)(struct fb_info *); | |
82 | }; | 144 | }; |
83 | void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); | 145 | void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); |
84 | void set_pxa_fb_parent(struct device *parent_dev); | 146 | void set_pxa_fb_parent(struct device *parent_dev); |
85 | unsigned long pxafb_get_hsync_time(struct device *dev); | 147 | unsigned long pxafb_get_hsync_time(struct device *dev); |
148 | |||
149 | extern int pxafb_smart_queue(struct fb_info *info, uint16_t *cmds, int); | ||
150 | extern int pxafb_smart_flush(struct fb_info *info); | ||
diff --git a/include/asm-arm/arch-pxa/regs-lcd.h b/include/asm-arm/arch-pxa/regs-lcd.h new file mode 100644 index 000000000000..f762493f5141 --- /dev/null +++ b/include/asm-arm/arch-pxa/regs-lcd.h | |||
@@ -0,0 +1,171 @@ | |||
1 | #ifndef __ASM_ARCH_REGS_LCD_H | ||
2 | #define __ASM_ARCH_REGS_LCD_H | ||
3 | /* | ||
4 | * LCD Controller Registers and Bits Definitions | ||
5 | */ | ||
6 | #define LCCR0 (0x000) /* LCD Controller Control Register 0 */ | ||
7 | #define LCCR1 (0x004) /* LCD Controller Control Register 1 */ | ||
8 | #define LCCR2 (0x008) /* LCD Controller Control Register 2 */ | ||
9 | #define LCCR3 (0x00C) /* LCD Controller Control Register 3 */ | ||
10 | #define LCCR4 (0x010) /* LCD Controller Control Register 4 */ | ||
11 | #define LCCR5 (0x014) /* LCD Controller Control Register 5 */ | ||
12 | #define DFBR0 (0x020) /* DMA Channel 0 Frame Branch Register */ | ||
13 | #define DFBR1 (0x024) /* DMA Channel 1 Frame Branch Register */ | ||
14 | #define LCSR (0x038) /* LCD Controller Status Register */ | ||
15 | #define LIIDR (0x03C) /* LCD Controller Interrupt ID Register */ | ||
16 | #define TMEDRGBR (0x040) /* TMED RGB Seed Register */ | ||
17 | #define TMEDCR (0x044) /* TMED Control Register */ | ||
18 | |||
19 | #define CMDCR (0x100) /* Command Control Register */ | ||
20 | #define PRSR (0x104) /* Panel Read Status Register */ | ||
21 | |||
22 | #define LCCR3_1BPP (0 << 24) | ||
23 | #define LCCR3_2BPP (1 << 24) | ||
24 | #define LCCR3_4BPP (2 << 24) | ||
25 | #define LCCR3_8BPP (3 << 24) | ||
26 | #define LCCR3_16BPP (4 << 24) | ||
27 | |||
28 | #define LCCR3_PDFOR_0 (0 << 30) | ||
29 | #define LCCR3_PDFOR_1 (1 << 30) | ||
30 | #define LCCR3_PDFOR_2 (2 << 30) | ||
31 | #define LCCR3_PDFOR_3 (3 << 30) | ||
32 | |||
33 | #define LCCR4_PAL_FOR_0 (0 << 15) | ||
34 | #define LCCR4_PAL_FOR_1 (1 << 15) | ||
35 | #define LCCR4_PAL_FOR_2 (2 << 15) | ||
36 | #define LCCR4_PAL_FOR_MASK (3 << 15) | ||
37 | |||
38 | #define FDADR0 (0x200) /* DMA Channel 0 Frame Descriptor Address Register */ | ||
39 | #define FSADR0 (0x204) /* DMA Channel 0 Frame Source Address Register */ | ||
40 | #define FIDR0 (0x208) /* DMA Channel 0 Frame ID Register */ | ||
41 | #define LDCMD0 (0x20C) /* DMA Channel 0 Command Register */ | ||
42 | #define FDADR1 (0x210) /* DMA Channel 1 Frame Descriptor Address Register */ | ||
43 | #define FSADR1 (0x214) /* DMA Channel 1 Frame Source Address Register */ | ||
44 | #define FIDR1 (0x218) /* DMA Channel 1 Frame ID Register */ | ||
45 | #define LDCMD1 (0x21C) /* DMA Channel 1 Command Register */ | ||
46 | #define FDADR6 (0x260) /* DMA Channel 6 Frame Descriptor Address Register */ | ||
47 | #define FSADR6 (0x264) /* DMA Channel 6 Frame Source Address Register */ | ||
48 | #define FIDR6 (0x268) /* DMA Channel 6 Frame ID Register */ | ||
49 | |||
50 | #define LCCR0_ENB (1 << 0) /* LCD Controller enable */ | ||
51 | #define LCCR0_CMS (1 << 1) /* Color/Monochrome Display Select */ | ||
52 | #define LCCR0_Color (LCCR0_CMS*0) /* Color display */ | ||
53 | #define LCCR0_Mono (LCCR0_CMS*1) /* Monochrome display */ | ||
54 | #define LCCR0_SDS (1 << 2) /* Single/Dual Panel Display Select */ | ||
55 | #define LCCR0_Sngl (LCCR0_SDS*0) /* Single panel display */ | ||
56 | #define LCCR0_Dual (LCCR0_SDS*1) /* Dual panel display */ | ||
57 | |||
58 | #define LCCR0_LDM (1 << 3) /* LCD Disable Done Mask */ | ||
59 | #define LCCR0_SFM (1 << 4) /* Start of frame mask */ | ||
60 | #define LCCR0_IUM (1 << 5) /* Input FIFO underrun mask */ | ||
61 | #define LCCR0_EFM (1 << 6) /* End of Frame mask */ | ||
62 | #define LCCR0_PAS (1 << 7) /* Passive/Active display Select */ | ||
63 | #define LCCR0_Pas (LCCR0_PAS*0) /* Passive display (STN) */ | ||
64 | #define LCCR0_Act (LCCR0_PAS*1) /* Active display (TFT) */ | ||
65 | #define LCCR0_DPD (1 << 9) /* Double Pixel Data (monochrome) */ | ||
66 | #define LCCR0_4PixMono (LCCR0_DPD*0) /* 4-Pixel/clock Monochrome display */ | ||
67 | #define LCCR0_8PixMono (LCCR0_DPD*1) /* 8-Pixel/clock Monochrome display */ | ||
68 | #define LCCR0_DIS (1 << 10) /* LCD Disable */ | ||
69 | #define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ | ||
70 | #define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ | ||
71 | #define LCCR0_PDD_S 12 | ||
72 | #define LCCR0_BM (1 << 20) /* Branch mask */ | ||
73 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ | ||
74 | #define LCCR0_LCDT (1 << 22) /* LCD panel type */ | ||
75 | #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ | ||
76 | #define LCCR0_CMDIM (1 << 24) /* Command interrupt mask */ | ||
77 | #define LCCR0_OUC (1 << 25) /* Overlay Underlay control bit */ | ||
78 | #define LCCR0_LDDALT (1 << 26) /* LDD alternate mapping control */ | ||
79 | |||
80 | #define LCCR1_PPL Fld (10, 0) /* Pixels Per Line - 1 */ | ||
81 | #define LCCR1_DisWdth(Pixel) (((Pixel) - 1) << FShft (LCCR1_PPL)) | ||
82 | |||
83 | #define LCCR1_HSW Fld (6, 10) /* Horizontal Synchronization */ | ||
84 | #define LCCR1_HorSnchWdth(Tpix) (((Tpix) - 1) << FShft (LCCR1_HSW)) | ||
85 | |||
86 | #define LCCR1_ELW Fld (8, 16) /* End-of-Line pixel clock Wait - 1 */ | ||
87 | #define LCCR1_EndLnDel(Tpix) (((Tpix) - 1) << FShft (LCCR1_ELW)) | ||
88 | |||
89 | #define LCCR1_BLW Fld (8, 24) /* Beginning-of-Line pixel clock */ | ||
90 | #define LCCR1_BegLnDel(Tpix) (((Tpix) - 1) << FShft (LCCR1_BLW)) | ||
91 | |||
92 | #define LCCR2_LPP Fld (10, 0) /* Line Per Panel - 1 */ | ||
93 | #define LCCR2_DisHght(Line) (((Line) - 1) << FShft (LCCR2_LPP)) | ||
94 | |||
95 | #define LCCR2_VSW Fld (6, 10) /* Vertical Synchronization pulse - 1 */ | ||
96 | #define LCCR2_VrtSnchWdth(Tln) (((Tln) - 1) << FShft (LCCR2_VSW)) | ||
97 | |||
98 | #define LCCR2_EFW Fld (8, 16) /* End-of-Frame line clock Wait */ | ||
99 | #define LCCR2_EndFrmDel(Tln) ((Tln) << FShft (LCCR2_EFW)) | ||
100 | |||
101 | #define LCCR2_BFW Fld (8, 24) /* Beginning-of-Frame line clock */ | ||
102 | #define LCCR2_BegFrmDel(Tln) ((Tln) << FShft (LCCR2_BFW)) | ||
103 | |||
104 | #define LCCR3_API (0xf << 16) /* AC Bias pin trasitions per interrupt */ | ||
105 | #define LCCR3_API_S 16 | ||
106 | #define LCCR3_VSP (1 << 20) /* vertical sync polarity */ | ||
107 | #define LCCR3_HSP (1 << 21) /* horizontal sync polarity */ | ||
108 | #define LCCR3_PCP (1 << 22) /* Pixel Clock Polarity (L_PCLK) */ | ||
109 | #define LCCR3_PixRsEdg (LCCR3_PCP*0) /* Pixel clock Rising-Edge */ | ||
110 | #define LCCR3_PixFlEdg (LCCR3_PCP*1) /* Pixel clock Falling-Edge */ | ||
111 | |||
112 | #define LCCR3_OEP (1 << 23) /* Output Enable Polarity */ | ||
113 | #define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */ | ||
114 | #define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */ | ||
115 | |||
116 | #define LCCR3_DPC (1 << 27) /* double pixel clock mode */ | ||
117 | #define LCCR3_PCD Fld (8, 0) /* Pixel Clock Divisor */ | ||
118 | #define LCCR3_PixClkDiv(Div) (((Div) << FShft (LCCR3_PCD))) | ||
119 | |||
120 | #define LCCR3_BPP Fld (3, 24) /* Bit Per Pixel */ | ||
121 | #define LCCR3_Bpp(Bpp) (((Bpp) << FShft (LCCR3_BPP))) | ||
122 | |||
123 | #define LCCR3_ACB Fld (8, 8) /* AC Bias */ | ||
124 | #define LCCR3_Acb(Acb) (((Acb) << FShft (LCCR3_ACB))) | ||
125 | |||
126 | #define LCCR3_HorSnchH (LCCR3_HSP*0) /* HSP Active High */ | ||
127 | #define LCCR3_HorSnchL (LCCR3_HSP*1) /* HSP Active Low */ | ||
128 | |||
129 | #define LCCR3_VrtSnchH (LCCR3_VSP*0) /* VSP Active High */ | ||
130 | #define LCCR3_VrtSnchL (LCCR3_VSP*1) /* VSP Active Low */ | ||
131 | |||
132 | #define LCCR5_IUM(x) (1 << ((x) + 23)) /* input underrun mask */ | ||
133 | #define LCCR5_BSM(x) (1 << ((x) + 15)) /* branch mask */ | ||
134 | #define LCCR5_EOFM(x) (1 << ((x) + 7)) /* end of frame mask */ | ||
135 | #define LCCR5_SOFM(x) (1 << ((x) + 0)) /* start of frame mask */ | ||
136 | |||
137 | #define LCSR_LDD (1 << 0) /* LCD Disable Done */ | ||
138 | #define LCSR_SOF (1 << 1) /* Start of frame */ | ||
139 | #define LCSR_BER (1 << 2) /* Bus error */ | ||
140 | #define LCSR_ABC (1 << 3) /* AC Bias count */ | ||
141 | #define LCSR_IUL (1 << 4) /* input FIFO underrun Lower panel */ | ||
142 | #define LCSR_IUU (1 << 5) /* input FIFO underrun Upper panel */ | ||
143 | #define LCSR_OU (1 << 6) /* output FIFO underrun */ | ||
144 | #define LCSR_QD (1 << 7) /* quick disable */ | ||
145 | #define LCSR_EOF (1 << 8) /* end of frame */ | ||
146 | #define LCSR_BS (1 << 9) /* branch status */ | ||
147 | #define LCSR_SINT (1 << 10) /* subsequent interrupt */ | ||
148 | #define LCSR_RD_ST (1 << 11) /* read status */ | ||
149 | #define LCSR_CMD_INT (1 << 12) /* command interrupt */ | ||
150 | |||
151 | #define LDCMD_PAL (1 << 26) /* instructs DMA to load palette buffer */ | ||
152 | |||
153 | /* smartpanel related */ | ||
154 | #define PRSR_DATA(x) ((x) & 0xff) /* Panel Data */ | ||
155 | #define PRSR_A0 (1 << 8) /* Read Data Source */ | ||
156 | #define PRSR_ST_OK (1 << 9) /* Status OK */ | ||
157 | #define PRSR_CON_NT (1 << 10) /* Continue to Next Command */ | ||
158 | |||
159 | #define SMART_CMD_A0 (0x1 << 8) | ||
160 | #define SMART_CMD_READ_STATUS_REG (0x0 << 9) | ||
161 | #define SMART_CMD_READ_FRAME_BUFFER ((0x0 << 9) | SMART_CMD_A0) | ||
162 | #define SMART_CMD_WRITE_COMMAND (0x1 << 9) | ||
163 | #define SMART_CMD_WRITE_DATA ((0x1 << 9) | SMART_CMD_A0) | ||
164 | #define SMART_CMD_WRITE_FRAME ((0x2 << 9) | SMART_CMD_A0) | ||
165 | #define SMART_CMD_WAIT_FOR_VSYNC (0x3 << 9) | ||
166 | #define SMART_CMD_NOOP (0x4 << 9) | ||
167 | #define SMART_CMD_INTERRUPT (0x5 << 9) | ||
168 | |||
169 | #define SMART_CMD(x) (SMART_CMD_WRITE_COMMAND | ((x) & 0xff)) | ||
170 | #define SMART_DAT(x) (SMART_CMD_WRITE_DATA | ((x) & 0xff)) | ||
171 | #endif /* __ASM_ARCH_REGS_LCD_H */ | ||
diff --git a/include/asm-generic/bitops.h b/include/asm-generic/bitops.h index 15e6f253dda4..c9f369c4bd7e 100644 --- a/include/asm-generic/bitops.h +++ b/include/asm-generic/bitops.h | |||
@@ -17,8 +17,6 @@ | |||
17 | #include <asm-generic/bitops/fls64.h> | 17 | #include <asm-generic/bitops/fls64.h> |
18 | #include <asm-generic/bitops/find.h> | 18 | #include <asm-generic/bitops/find.h> |
19 | 19 | ||
20 | #ifdef __KERNEL__ | ||
21 | |||
22 | #ifndef _LINUX_BITOPS_H | 20 | #ifndef _LINUX_BITOPS_H |
23 | #error only <linux/bitops.h> can be included directly | 21 | #error only <linux/bitops.h> can be included directly |
24 | #endif | 22 | #endif |
@@ -32,6 +30,4 @@ | |||
32 | #include <asm-generic/bitops/ext2-atomic.h> | 30 | #include <asm-generic/bitops/ext2-atomic.h> |
33 | #include <asm-generic/bitops/minix.h> | 31 | #include <asm-generic/bitops/minix.h> |
34 | 32 | ||
35 | #endif /* __KERNEL__ */ | ||
36 | |||
37 | #endif /* _ASM_GENERIC_BITOPS_H */ | 33 | #endif /* _ASM_GENERIC_BITOPS_H */ |
diff --git a/include/asm-generic/futex.h b/include/asm-generic/futex.h index f422df0956a2..3c2344f48136 100644 --- a/include/asm-generic/futex.h +++ b/include/asm-generic/futex.h | |||
@@ -1,11 +1,9 @@ | |||
1 | #ifndef _ASM_GENERIC_FUTEX_H | 1 | #ifndef _ASM_GENERIC_FUTEX_H |
2 | #define _ASM_GENERIC_FUTEX_H | 2 | #define _ASM_GENERIC_FUTEX_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
5 | #include <linux/uaccess.h> | ||
7 | #include <asm/errno.h> | 6 | #include <asm/errno.h> |
8 | #include <asm/uaccess.h> | ||
9 | 7 | ||
10 | static inline int | 8 | static inline int |
11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | 9 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) |
@@ -56,4 +54,3 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
56 | } | 54 | } |
57 | 55 | ||
58 | #endif | 56 | #endif |
59 | #endif | ||
diff --git a/include/asm-generic/memory_model.h b/include/asm-generic/memory_model.h index 52226e14bd7d..ae060c62aff1 100644 --- a/include/asm-generic/memory_model.h +++ b/include/asm-generic/memory_model.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef __ASM_MEMORY_MODEL_H | 1 | #ifndef __ASM_MEMORY_MODEL_H |
2 | #define __ASM_MEMORY_MODEL_H | 2 | #define __ASM_MEMORY_MODEL_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
6 | 5 | ||
7 | #if defined(CONFIG_FLATMEM) | 6 | #if defined(CONFIG_FLATMEM) |
@@ -81,6 +80,5 @@ extern unsigned long page_to_pfn(struct page *page); | |||
81 | #endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */ | 80 | #endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */ |
82 | 81 | ||
83 | #endif /* __ASSEMBLY__ */ | 82 | #endif /* __ASSEMBLY__ */ |
84 | #endif /* __KERNEL__ */ | ||
85 | 83 | ||
86 | #endif | 84 | #endif |
diff --git a/include/asm-generic/page.h b/include/asm-generic/page.h index a96b5d986b6e..14db733b8e68 100644 --- a/include/asm-generic/page.h +++ b/include/asm-generic/page.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_GENERIC_PAGE_H | 1 | #ifndef _ASM_GENERIC_PAGE_H |
2 | #define _ASM_GENERIC_PAGE_H | 2 | #define _ASM_GENERIC_PAGE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
6 | 5 | ||
7 | #include <linux/compiler.h> | 6 | #include <linux/compiler.h> |
@@ -21,6 +20,5 @@ static __inline__ __attribute_const__ int get_order(unsigned long size) | |||
21 | } | 20 | } |
22 | 21 | ||
23 | #endif /* __ASSEMBLY__ */ | 22 | #endif /* __ASSEMBLY__ */ |
24 | #endif /* __KERNEL__ */ | ||
25 | 23 | ||
26 | #endif /* _ASM_GENERIC_PAGE_H */ | 24 | #endif /* _ASM_GENERIC_PAGE_H */ |
diff --git a/include/asm-generic/rtc.h b/include/asm-generic/rtc.h index dd1bed860e64..be4af0029ac0 100644 --- a/include/asm-generic/rtc.h +++ b/include/asm-generic/rtc.h | |||
@@ -12,8 +12,6 @@ | |||
12 | #ifndef __ASM_RTC_H__ | 12 | #ifndef __ASM_RTC_H__ |
13 | #define __ASM_RTC_H__ | 13 | #define __ASM_RTC_H__ |
14 | 14 | ||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #include <linux/mc146818rtc.h> | 15 | #include <linux/mc146818rtc.h> |
18 | #include <linux/rtc.h> | 16 | #include <linux/rtc.h> |
19 | #include <linux/bcd.h> | 17 | #include <linux/bcd.h> |
@@ -213,5 +211,4 @@ static inline int set_rtc_pll(struct rtc_pll_info *pll) | |||
213 | return -EINVAL; | 211 | return -EINVAL; |
214 | } | 212 | } |
215 | 213 | ||
216 | #endif /* __KERNEL__ */ | ||
217 | #endif /* __ASM_RTC_H__ */ | 214 | #endif /* __ASM_RTC_H__ */ |
diff --git a/include/asm-ia64/futex.h b/include/asm-ia64/futex.h index 8a98a2654139..c7f0f062239c 100644 --- a/include/asm-ia64/futex.h +++ b/include/asm-ia64/futex.h | |||
@@ -2,9 +2,9 @@ | |||
2 | #define _ASM_FUTEX_H | 2 | #define _ASM_FUTEX_H |
3 | 3 | ||
4 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
5 | #include <linux/uaccess.h> | ||
5 | #include <asm/errno.h> | 6 | #include <asm/errno.h> |
6 | #include <asm/system.h> | 7 | #include <asm/system.h> |
7 | #include <asm/uaccess.h> | ||
8 | 8 | ||
9 | #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \ | 9 | #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \ |
10 | do { \ | 10 | do { \ |
diff --git a/include/asm-ia64/thread_info.h b/include/asm-ia64/thread_info.h index 6da8069a0f77..f30e05583869 100644 --- a/include/asm-ia64/thread_info.h +++ b/include/asm-ia64/thread_info.h | |||
@@ -101,7 +101,6 @@ extern void tsk_clear_notify_resume(struct task_struct *tsk); | |||
101 | #define TIF_SYSCALL_TRACE 2 /* syscall trace active */ | 101 | #define TIF_SYSCALL_TRACE 2 /* syscall trace active */ |
102 | #define TIF_SYSCALL_AUDIT 3 /* syscall auditing active */ | 102 | #define TIF_SYSCALL_AUDIT 3 /* syscall auditing active */ |
103 | #define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */ | 103 | #define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */ |
104 | #define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ | ||
105 | #define TIF_NOTIFY_RESUME 6 /* resumption notification requested */ | 104 | #define TIF_NOTIFY_RESUME 6 /* resumption notification requested */ |
106 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ | 105 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ |
107 | #define TIF_MEMDIE 17 | 106 | #define TIF_MEMDIE 17 |
@@ -109,6 +108,7 @@ extern void tsk_clear_notify_resume(struct task_struct *tsk); | |||
109 | #define TIF_DB_DISABLED 19 /* debug trap disabled for fsyscall */ | 108 | #define TIF_DB_DISABLED 19 /* debug trap disabled for fsyscall */ |
110 | #define TIF_FREEZE 20 /* is freezing for suspend */ | 109 | #define TIF_FREEZE 20 /* is freezing for suspend */ |
111 | #define TIF_RESTORE_RSE 21 /* user RBS is newer than kernel RBS */ | 110 | #define TIF_RESTORE_RSE 21 /* user RBS is newer than kernel RBS */ |
111 | #define TIF_RESTORE_SIGMASK 22 /* restore signal mask in do_signal() */ | ||
112 | 112 | ||
113 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | 113 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
114 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | 114 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
@@ -126,8 +126,7 @@ extern void tsk_clear_notify_resume(struct task_struct *tsk); | |||
126 | 126 | ||
127 | /* "work to do on user-return" bits */ | 127 | /* "work to do on user-return" bits */ |
128 | #define TIF_ALLWORK_MASK (_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\ | 128 | #define TIF_ALLWORK_MASK (_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\ |
129 | _TIF_NEED_RESCHED| _TIF_SYSCALL_TRACE|\ | 129 | _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE) |
130 | _TIF_RESTORE_SIGMASK) | ||
131 | /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */ | 130 | /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */ |
132 | #define TIF_WORK_MASK (TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)) | 131 | #define TIF_WORK_MASK (TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)) |
133 | 132 | ||
diff --git a/include/asm-mips/futex.h b/include/asm-mips/futex.h index 17f082cfea85..b9cce90346cf 100644 --- a/include/asm-mips/futex.h +++ b/include/asm-mips/futex.h | |||
@@ -11,9 +11,9 @@ | |||
11 | #ifdef __KERNEL__ | 11 | #ifdef __KERNEL__ |
12 | 12 | ||
13 | #include <linux/futex.h> | 13 | #include <linux/futex.h> |
14 | #include <linux/uaccess.h> | ||
14 | #include <asm/barrier.h> | 15 | #include <asm/barrier.h> |
15 | #include <asm/errno.h> | 16 | #include <asm/errno.h> |
16 | #include <asm/uaccess.h> | ||
17 | #include <asm/war.h> | 17 | #include <asm/war.h> |
18 | 18 | ||
19 | #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ | 19 | #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ |
diff --git a/include/asm-parisc/futex.h b/include/asm-parisc/futex.h index fdc6d055ef7f..0c705c3a55ef 100644 --- a/include/asm-parisc/futex.h +++ b/include/asm-parisc/futex.h | |||
@@ -4,8 +4,8 @@ | |||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/futex.h> | 6 | #include <linux/futex.h> |
7 | #include <linux/uaccess.h> | ||
7 | #include <asm/errno.h> | 8 | #include <asm/errno.h> |
8 | #include <asm/uaccess.h> | ||
9 | 9 | ||
10 | static inline int | 10 | static inline int |
11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | 11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) |
diff --git a/include/asm-powerpc/futex.h b/include/asm-powerpc/futex.h index 3f3673fd3ff3..6d406c5c5de4 100644 --- a/include/asm-powerpc/futex.h +++ b/include/asm-powerpc/futex.h | |||
@@ -4,9 +4,9 @@ | |||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/futex.h> | 6 | #include <linux/futex.h> |
7 | #include <linux/uaccess.h> | ||
7 | #include <asm/errno.h> | 8 | #include <asm/errno.h> |
8 | #include <asm/synch.h> | 9 | #include <asm/synch.h> |
9 | #include <asm/uaccess.h> | ||
10 | #include <asm/asm-compat.h> | 10 | #include <asm/asm-compat.h> |
11 | 11 | ||
12 | #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ | 12 | #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ |
diff --git a/include/asm-s390/ccwgroup.h b/include/asm-s390/ccwgroup.h index 289053ef5e60..a27f68985a79 100644 --- a/include/asm-s390/ccwgroup.h +++ b/include/asm-s390/ccwgroup.h | |||
@@ -57,10 +57,9 @@ struct ccwgroup_driver { | |||
57 | 57 | ||
58 | extern int ccwgroup_driver_register (struct ccwgroup_driver *cdriver); | 58 | extern int ccwgroup_driver_register (struct ccwgroup_driver *cdriver); |
59 | extern void ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver); | 59 | extern void ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver); |
60 | extern int ccwgroup_create (struct device *root, | 60 | int ccwgroup_create_from_string(struct device *root, unsigned int creator_id, |
61 | unsigned int creator_id, | 61 | struct ccw_driver *cdrv, int num_devices, |
62 | struct ccw_driver *gdrv, | 62 | const char *buf); |
63 | int argc, char *argv[]); | ||
64 | 63 | ||
65 | extern int ccwgroup_probe_ccwdev(struct ccw_device *cdev); | 64 | extern int ccwgroup_probe_ccwdev(struct ccw_device *cdev); |
66 | extern void ccwgroup_remove_ccwdev(struct ccw_device *cdev); | 65 | extern void ccwgroup_remove_ccwdev(struct ccw_device *cdev); |
diff --git a/include/asm-s390/hugetlb.h b/include/asm-s390/hugetlb.h new file mode 100644 index 000000000000..600a776f8f75 --- /dev/null +++ b/include/asm-s390/hugetlb.h | |||
@@ -0,0 +1,183 @@ | |||
1 | /* | ||
2 | * IBM System z Huge TLB Page Support for Kernel. | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | ||
5 | * Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com> | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_S390_HUGETLB_H | ||
9 | #define _ASM_S390_HUGETLB_H | ||
10 | |||
11 | #include <asm/page.h> | ||
12 | #include <asm/pgtable.h> | ||
13 | |||
14 | |||
15 | #define is_hugepage_only_range(mm, addr, len) 0 | ||
16 | #define hugetlb_free_pgd_range free_pgd_range | ||
17 | |||
18 | void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, | ||
19 | pte_t *ptep, pte_t pte); | ||
20 | |||
21 | /* | ||
22 | * If the arch doesn't supply something else, assume that hugepage | ||
23 | * size aligned regions are ok without further preparation. | ||
24 | */ | ||
25 | static inline int prepare_hugepage_range(unsigned long addr, unsigned long len) | ||
26 | { | ||
27 | if (len & ~HPAGE_MASK) | ||
28 | return -EINVAL; | ||
29 | if (addr & ~HPAGE_MASK) | ||
30 | return -EINVAL; | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | #define hugetlb_prefault_arch_hook(mm) do { } while (0) | ||
35 | |||
36 | int arch_prepare_hugepage(struct page *page); | ||
37 | void arch_release_hugepage(struct page *page); | ||
38 | |||
39 | static inline pte_t pte_mkhuge(pte_t pte) | ||
40 | { | ||
41 | /* | ||
42 | * PROT_NONE needs to be remapped from the pte type to the ste type. | ||
43 | * The HW invalid bit is also different for pte and ste. The pte | ||
44 | * invalid bit happens to be the same as the ste _SEGMENT_ENTRY_LARGE | ||
45 | * bit, so we don't have to clear it. | ||
46 | */ | ||
47 | if (pte_val(pte) & _PAGE_INVALID) { | ||
48 | if (pte_val(pte) & _PAGE_SWT) | ||
49 | pte_val(pte) |= _HPAGE_TYPE_NONE; | ||
50 | pte_val(pte) |= _SEGMENT_ENTRY_INV; | ||
51 | } | ||
52 | /* | ||
53 | * Clear SW pte bits SWT and SWX, there are no SW bits in a segment | ||
54 | * table entry. | ||
55 | */ | ||
56 | pte_val(pte) &= ~(_PAGE_SWT | _PAGE_SWX); | ||
57 | /* | ||
58 | * Also set the change-override bit because we don't need dirty bit | ||
59 | * tracking for hugetlbfs pages. | ||
60 | */ | ||
61 | pte_val(pte) |= (_SEGMENT_ENTRY_LARGE | _SEGMENT_ENTRY_CO); | ||
62 | return pte; | ||
63 | } | ||
64 | |||
65 | static inline pte_t huge_pte_wrprotect(pte_t pte) | ||
66 | { | ||
67 | pte_val(pte) |= _PAGE_RO; | ||
68 | return pte; | ||
69 | } | ||
70 | |||
71 | static inline int huge_pte_none(pte_t pte) | ||
72 | { | ||
73 | return (pte_val(pte) & _SEGMENT_ENTRY_INV) && | ||
74 | !(pte_val(pte) & _SEGMENT_ENTRY_RO); | ||
75 | } | ||
76 | |||
77 | static inline pte_t huge_ptep_get(pte_t *ptep) | ||
78 | { | ||
79 | pte_t pte = *ptep; | ||
80 | unsigned long mask; | ||
81 | |||
82 | if (!MACHINE_HAS_HPAGE) { | ||
83 | ptep = (pte_t *) (pte_val(pte) & _SEGMENT_ENTRY_ORIGIN); | ||
84 | if (ptep) { | ||
85 | mask = pte_val(pte) & | ||
86 | (_SEGMENT_ENTRY_INV | _SEGMENT_ENTRY_RO); | ||
87 | pte = pte_mkhuge(*ptep); | ||
88 | pte_val(pte) |= mask; | ||
89 | } | ||
90 | } | ||
91 | return pte; | ||
92 | } | ||
93 | |||
94 | static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, | ||
95 | unsigned long addr, pte_t *ptep) | ||
96 | { | ||
97 | pte_t pte = huge_ptep_get(ptep); | ||
98 | |||
99 | pmd_clear((pmd_t *) ptep); | ||
100 | return pte; | ||
101 | } | ||
102 | |||
103 | static inline void __pmd_csp(pmd_t *pmdp) | ||
104 | { | ||
105 | register unsigned long reg2 asm("2") = pmd_val(*pmdp); | ||
106 | register unsigned long reg3 asm("3") = pmd_val(*pmdp) | | ||
107 | _SEGMENT_ENTRY_INV; | ||
108 | register unsigned long reg4 asm("4") = ((unsigned long) pmdp) + 5; | ||
109 | |||
110 | asm volatile( | ||
111 | " csp %1,%3" | ||
112 | : "=m" (*pmdp) | ||
113 | : "d" (reg2), "d" (reg3), "d" (reg4), "m" (*pmdp) : "cc"); | ||
114 | pmd_val(*pmdp) = _SEGMENT_ENTRY_INV | _SEGMENT_ENTRY; | ||
115 | } | ||
116 | |||
117 | static inline void __pmd_idte(unsigned long address, pmd_t *pmdp) | ||
118 | { | ||
119 | unsigned long sto = (unsigned long) pmdp - | ||
120 | pmd_index(address) * sizeof(pmd_t); | ||
121 | |||
122 | if (!(pmd_val(*pmdp) & _SEGMENT_ENTRY_INV)) { | ||
123 | asm volatile( | ||
124 | " .insn rrf,0xb98e0000,%2,%3,0,0" | ||
125 | : "=m" (*pmdp) | ||
126 | : "m" (*pmdp), "a" (sto), | ||
127 | "a" ((address & HPAGE_MASK)) | ||
128 | ); | ||
129 | } | ||
130 | pmd_val(*pmdp) = _SEGMENT_ENTRY_INV | _SEGMENT_ENTRY; | ||
131 | } | ||
132 | |||
133 | static inline void huge_ptep_invalidate(struct mm_struct *mm, | ||
134 | unsigned long address, pte_t *ptep) | ||
135 | { | ||
136 | pmd_t *pmdp = (pmd_t *) ptep; | ||
137 | |||
138 | if (!MACHINE_HAS_IDTE) { | ||
139 | __pmd_csp(pmdp); | ||
140 | if (mm->context.noexec) { | ||
141 | pmdp = get_shadow_table(pmdp); | ||
142 | __pmd_csp(pmdp); | ||
143 | } | ||
144 | return; | ||
145 | } | ||
146 | |||
147 | __pmd_idte(address, pmdp); | ||
148 | if (mm->context.noexec) { | ||
149 | pmdp = get_shadow_table(pmdp); | ||
150 | __pmd_idte(address, pmdp); | ||
151 | } | ||
152 | return; | ||
153 | } | ||
154 | |||
155 | #define huge_ptep_set_access_flags(__vma, __addr, __ptep, __entry, __dirty) \ | ||
156 | ({ \ | ||
157 | int __changed = !pte_same(huge_ptep_get(__ptep), __entry); \ | ||
158 | if (__changed) { \ | ||
159 | huge_ptep_invalidate((__vma)->vm_mm, __addr, __ptep); \ | ||
160 | set_huge_pte_at((__vma)->vm_mm, __addr, __ptep, __entry); \ | ||
161 | } \ | ||
162 | __changed; \ | ||
163 | }) | ||
164 | |||
165 | #define huge_ptep_set_wrprotect(__mm, __addr, __ptep) \ | ||
166 | ({ \ | ||
167 | pte_t __pte = huge_ptep_get(__ptep); \ | ||
168 | if (pte_write(__pte)) { \ | ||
169 | if (atomic_read(&(__mm)->mm_users) > 1 || \ | ||
170 | (__mm) != current->active_mm) \ | ||
171 | huge_ptep_invalidate(__mm, __addr, __ptep); \ | ||
172 | set_huge_pte_at(__mm, __addr, __ptep, \ | ||
173 | huge_pte_wrprotect(__pte)); \ | ||
174 | } \ | ||
175 | }) | ||
176 | |||
177 | static inline void huge_ptep_clear_flush(struct vm_area_struct *vma, | ||
178 | unsigned long address, pte_t *ptep) | ||
179 | { | ||
180 | huge_ptep_invalidate(vma->vm_mm, address, ptep); | ||
181 | } | ||
182 | |||
183 | #endif /* _ASM_S390_HUGETLB_H */ | ||
diff --git a/include/asm-s390/page.h b/include/asm-s390/page.h index fe7f92b6ae6d..f0f4579eac13 100644 --- a/include/asm-s390/page.h +++ b/include/asm-s390/page.h | |||
@@ -19,17 +19,34 @@ | |||
19 | #define PAGE_DEFAULT_ACC 0 | 19 | #define PAGE_DEFAULT_ACC 0 |
20 | #define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4) | 20 | #define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4) |
21 | 21 | ||
22 | #define HPAGE_SHIFT 20 | ||
23 | #define HPAGE_SIZE (1UL << HPAGE_SHIFT) | ||
24 | #define HPAGE_MASK (~(HPAGE_SIZE - 1)) | ||
25 | #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) | ||
26 | |||
27 | #define ARCH_HAS_SETCLEAR_HUGE_PTE | ||
28 | #define ARCH_HAS_HUGE_PTE_TYPE | ||
29 | #define ARCH_HAS_PREPARE_HUGEPAGE | ||
30 | #define ARCH_HAS_HUGEPAGE_CLEAR_FLUSH | ||
31 | |||
22 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
23 | #ifndef __ASSEMBLY__ | 33 | #ifndef __ASSEMBLY__ |
24 | 34 | ||
25 | static inline void clear_page(void *page) | 35 | static inline void clear_page(void *page) |
26 | { | 36 | { |
27 | register unsigned long reg1 asm ("1") = 0; | 37 | if (MACHINE_HAS_PFMF) { |
28 | register void *reg2 asm ("2") = page; | 38 | asm volatile( |
29 | register unsigned long reg3 asm ("3") = 4096; | 39 | " .insn rre,0xb9af0000,%0,%1" |
30 | asm volatile( | 40 | : : "d" (0x10000), "a" (page) : "memory", "cc"); |
31 | " mvcl 2,0" | 41 | } else { |
32 | : "+d" (reg2), "+d" (reg3) : "d" (reg1) : "memory", "cc"); | 42 | register unsigned long reg1 asm ("1") = 0; |
43 | register void *reg2 asm ("2") = page; | ||
44 | register unsigned long reg3 asm ("3") = 4096; | ||
45 | asm volatile( | ||
46 | " mvcl 2,0" | ||
47 | : "+d" (reg2), "+d" (reg3) : "d" (reg1) | ||
48 | : "memory", "cc"); | ||
49 | } | ||
33 | } | 50 | } |
34 | 51 | ||
35 | static inline void copy_page(void *to, void *from) | 52 | static inline void copy_page(void *to, void *from) |
@@ -108,26 +125,6 @@ page_get_storage_key(unsigned long addr) | |||
108 | return skey; | 125 | return skey; |
109 | } | 126 | } |
110 | 127 | ||
111 | extern unsigned long max_pfn; | ||
112 | |||
113 | static inline int pfn_valid(unsigned long pfn) | ||
114 | { | ||
115 | unsigned long dummy; | ||
116 | int ccode; | ||
117 | |||
118 | if (pfn >= max_pfn) | ||
119 | return 0; | ||
120 | |||
121 | asm volatile( | ||
122 | " lra %0,0(%2)\n" | ||
123 | " ipm %1\n" | ||
124 | " srl %1,28\n" | ||
125 | : "=d" (dummy), "=d" (ccode) | ||
126 | : "a" (pfn << PAGE_SHIFT) | ||
127 | : "cc"); | ||
128 | return !ccode; | ||
129 | } | ||
130 | |||
131 | #endif /* !__ASSEMBLY__ */ | 128 | #endif /* !__ASSEMBLY__ */ |
132 | 129 | ||
133 | /* to align the pointer to the (next) page boundary */ | 130 | /* to align the pointer to the (next) page boundary */ |
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index f8347ce9c5a1..c7f4f8e3e297 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
@@ -129,7 +129,7 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
129 | #define VMEM_MAX_PAGES ((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page)) | 129 | #define VMEM_MAX_PAGES ((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page)) |
130 | #define VMEM_MAX_PFN min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES) | 130 | #define VMEM_MAX_PFN min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES) |
131 | #define VMEM_MAX_PHYS ((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1)) | 131 | #define VMEM_MAX_PHYS ((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1)) |
132 | #define VMEM_MAP ((struct page *) VMALLOC_END) | 132 | #define vmemmap ((struct page *) VMALLOC_END) |
133 | 133 | ||
134 | /* | 134 | /* |
135 | * A 31 bit pagetable entry of S390 has following format: | 135 | * A 31 bit pagetable entry of S390 has following format: |
@@ -234,6 +234,15 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
234 | #define _PAGE_TYPE_EX_RW 0x002 | 234 | #define _PAGE_TYPE_EX_RW 0x002 |
235 | 235 | ||
236 | /* | 236 | /* |
237 | * Only four types for huge pages, using the invalid bit and protection bit | ||
238 | * of a segment table entry. | ||
239 | */ | ||
240 | #define _HPAGE_TYPE_EMPTY 0x020 /* _SEGMENT_ENTRY_INV */ | ||
241 | #define _HPAGE_TYPE_NONE 0x220 | ||
242 | #define _HPAGE_TYPE_RO 0x200 /* _SEGMENT_ENTRY_RO */ | ||
243 | #define _HPAGE_TYPE_RW 0x000 | ||
244 | |||
245 | /* | ||
237 | * PTE type bits are rather complicated. handle_pte_fault uses pte_present, | 246 | * PTE type bits are rather complicated. handle_pte_fault uses pte_present, |
238 | * pte_none and pte_file to find out the pte type WITHOUT holding the page | 247 | * pte_none and pte_file to find out the pte type WITHOUT holding the page |
239 | * table lock. ptep_clear_flush on the other hand uses ptep_clear_flush to | 248 | * table lock. ptep_clear_flush on the other hand uses ptep_clear_flush to |
@@ -325,6 +334,9 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
325 | #define _SEGMENT_ENTRY (0) | 334 | #define _SEGMENT_ENTRY (0) |
326 | #define _SEGMENT_ENTRY_EMPTY (_SEGMENT_ENTRY_INV) | 335 | #define _SEGMENT_ENTRY_EMPTY (_SEGMENT_ENTRY_INV) |
327 | 336 | ||
337 | #define _SEGMENT_ENTRY_LARGE 0x400 /* STE-format control, large page */ | ||
338 | #define _SEGMENT_ENTRY_CO 0x100 /* change-recording override */ | ||
339 | |||
328 | #endif /* __s390x__ */ | 340 | #endif /* __s390x__ */ |
329 | 341 | ||
330 | /* | 342 | /* |
@@ -1063,8 +1075,8 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset) | |||
1063 | 1075 | ||
1064 | #define kern_addr_valid(addr) (1) | 1076 | #define kern_addr_valid(addr) (1) |
1065 | 1077 | ||
1066 | extern int add_shared_memory(unsigned long start, unsigned long size); | 1078 | extern int vmem_add_mapping(unsigned long start, unsigned long size); |
1067 | extern int remove_shared_memory(unsigned long start, unsigned long size); | 1079 | extern int vmem_remove_mapping(unsigned long start, unsigned long size); |
1068 | extern int s390_enable_sie(void); | 1080 | extern int s390_enable_sie(void); |
1069 | 1081 | ||
1070 | /* | 1082 | /* |
@@ -1072,9 +1084,6 @@ extern int s390_enable_sie(void); | |||
1072 | */ | 1084 | */ |
1073 | #define pgtable_cache_init() do { } while (0) | 1085 | #define pgtable_cache_init() do { } while (0) |
1074 | 1086 | ||
1075 | #define __HAVE_ARCH_MEMMAP_INIT | ||
1076 | extern void memmap_init(unsigned long, int, unsigned long, unsigned long); | ||
1077 | |||
1078 | #include <asm-generic/pgtable.h> | 1087 | #include <asm-generic/pgtable.h> |
1079 | 1088 | ||
1080 | #endif /* _S390_PAGE_H */ | 1089 | #endif /* _S390_PAGE_H */ |
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h index 8eaf343a12a8..a00f79dd323b 100644 --- a/include/asm-s390/processor.h +++ b/include/asm-s390/processor.h | |||
@@ -172,16 +172,7 @@ extern unsigned long thread_saved_pc(struct task_struct *t); | |||
172 | */ | 172 | */ |
173 | extern void task_show_regs(struct seq_file *m, struct task_struct *task); | 173 | extern void task_show_regs(struct seq_file *m, struct task_struct *task); |
174 | 174 | ||
175 | extern void show_registers(struct pt_regs *regs); | ||
176 | extern void show_code(struct pt_regs *regs); | 175 | extern void show_code(struct pt_regs *regs); |
177 | extern void show_trace(struct task_struct *task, unsigned long *sp); | ||
178 | #ifdef CONFIG_64BIT | ||
179 | extern void show_last_breaking_event(struct pt_regs *regs); | ||
180 | #else | ||
181 | static inline void show_last_breaking_event(struct pt_regs *regs) | ||
182 | { | ||
183 | } | ||
184 | #endif | ||
185 | 176 | ||
186 | unsigned long get_wchan(struct task_struct *p); | 177 | unsigned long get_wchan(struct task_struct *p); |
187 | #define task_pt_regs(tsk) ((struct pt_regs *) \ | 178 | #define task_pt_regs(tsk) ((struct pt_regs *) \ |
diff --git a/include/asm-s390/ptrace.h b/include/asm-s390/ptrace.h index 61f6952f2e35..441d7c260857 100644 --- a/include/asm-s390/ptrace.h +++ b/include/asm-s390/ptrace.h | |||
@@ -463,8 +463,6 @@ struct user_regs_struct | |||
463 | }; | 463 | }; |
464 | 464 | ||
465 | #ifdef __KERNEL__ | 465 | #ifdef __KERNEL__ |
466 | #define __ARCH_SYS_PTRACE 1 | ||
467 | |||
468 | /* | 466 | /* |
469 | * These are defined as per linux/ptrace.h, which see. | 467 | * These are defined as per linux/ptrace.h, which see. |
470 | */ | 468 | */ |
diff --git a/include/asm-s390/qdio.h b/include/asm-s390/qdio.h index 4b8ff55f680e..11240342a0f4 100644 --- a/include/asm-s390/qdio.h +++ b/include/asm-s390/qdio.h | |||
@@ -127,6 +127,7 @@ extern int do_QDIO(struct ccw_device*, unsigned int flags, | |||
127 | unsigned int qidx,unsigned int count, | 127 | unsigned int qidx,unsigned int count, |
128 | struct qdio_buffer *buffers); | 128 | struct qdio_buffer *buffers); |
129 | 129 | ||
130 | extern int qdio_get_ssqd_pct(struct ccw_device*); | ||
130 | extern int qdio_synchronize(struct ccw_device*, unsigned int flags, | 131 | extern int qdio_synchronize(struct ccw_device*, unsigned int flags, |
131 | unsigned int queue_number); | 132 | unsigned int queue_number); |
132 | 133 | ||
diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h index aaf4b518b940..ba69674012a7 100644 --- a/include/asm-s390/setup.h +++ b/include/asm-s390/setup.h | |||
@@ -59,23 +59,42 @@ extern unsigned int s390_noexec; | |||
59 | */ | 59 | */ |
60 | extern unsigned long machine_flags; | 60 | extern unsigned long machine_flags; |
61 | 61 | ||
62 | #define MACHINE_IS_VM (machine_flags & 1) | 62 | #define MACHINE_FLAG_VM (1UL << 0) |
63 | #define MACHINE_IS_P390 (machine_flags & 4) | 63 | #define MACHINE_FLAG_IEEE (1UL << 1) |
64 | #define MACHINE_HAS_MVPG (machine_flags & 16) | 64 | #define MACHINE_FLAG_P390 (1UL << 2) |
65 | #define MACHINE_IS_KVM (machine_flags & 64) | 65 | #define MACHINE_FLAG_CSP (1UL << 3) |
66 | #define MACHINE_HAS_IDTE (machine_flags & 128) | 66 | #define MACHINE_FLAG_MVPG (1UL << 4) |
67 | #define MACHINE_HAS_DIAG9C (machine_flags & 256) | 67 | #define MACHINE_FLAG_DIAG44 (1UL << 5) |
68 | #define MACHINE_FLAG_IDTE (1UL << 6) | ||
69 | #define MACHINE_FLAG_DIAG9C (1UL << 7) | ||
70 | #define MACHINE_FLAG_MVCOS (1UL << 8) | ||
71 | #define MACHINE_FLAG_KVM (1UL << 9) | ||
72 | #define MACHINE_FLAG_HPAGE (1UL << 10) | ||
73 | #define MACHINE_FLAG_PFMF (1UL << 11) | ||
74 | |||
75 | #define MACHINE_IS_VM (machine_flags & MACHINE_FLAG_VM) | ||
76 | #define MACHINE_IS_KVM (machine_flags & MACHINE_FLAG_KVM) | ||
77 | #define MACHINE_IS_P390 (machine_flags & MACHINE_FLAG_P390) | ||
78 | #define MACHINE_HAS_DIAG9C (machine_flags & MACHINE_FLAG_DIAG9C) | ||
68 | 79 | ||
69 | #ifndef __s390x__ | 80 | #ifndef __s390x__ |
70 | #define MACHINE_HAS_IEEE (machine_flags & 2) | 81 | #define MACHINE_HAS_IEEE (machine_flags & MACHINE_FLAG_IEEE) |
71 | #define MACHINE_HAS_CSP (machine_flags & 8) | 82 | #define MACHINE_HAS_CSP (machine_flags & MACHINE_FLAG_CSP) |
83 | #define MACHINE_HAS_IDTE (0) | ||
72 | #define MACHINE_HAS_DIAG44 (1) | 84 | #define MACHINE_HAS_DIAG44 (1) |
85 | #define MACHINE_HAS_MVPG (machine_flags & MACHINE_FLAG_MVPG) | ||
73 | #define MACHINE_HAS_MVCOS (0) | 86 | #define MACHINE_HAS_MVCOS (0) |
87 | #define MACHINE_HAS_HPAGE (0) | ||
88 | #define MACHINE_HAS_PFMF (0) | ||
74 | #else /* __s390x__ */ | 89 | #else /* __s390x__ */ |
75 | #define MACHINE_HAS_IEEE (1) | 90 | #define MACHINE_HAS_IEEE (1) |
76 | #define MACHINE_HAS_CSP (1) | 91 | #define MACHINE_HAS_CSP (1) |
77 | #define MACHINE_HAS_DIAG44 (machine_flags & 32) | 92 | #define MACHINE_HAS_IDTE (machine_flags & MACHINE_FLAG_IDTE) |
78 | #define MACHINE_HAS_MVCOS (machine_flags & 512) | 93 | #define MACHINE_HAS_DIAG44 (machine_flags & MACHINE_FLAG_DIAG44) |
94 | #define MACHINE_HAS_MVPG (1) | ||
95 | #define MACHINE_HAS_MVCOS (machine_flags & MACHINE_FLAG_MVCOS) | ||
96 | #define MACHINE_HAS_HPAGE (machine_flags & MACHINE_FLAG_HPAGE) | ||
97 | #define MACHINE_HAS_PFMF (machine_flags & MACHINE_FLAG_PFMF) | ||
79 | #endif /* __s390x__ */ | 98 | #endif /* __s390x__ */ |
80 | 99 | ||
81 | #define MACHINE_HAS_SCLP (!MACHINE_IS_P390) | 100 | #define MACHINE_HAS_SCLP (!MACHINE_IS_P390) |
diff --git a/include/asm-s390/smp.h b/include/asm-s390/smp.h index 6f3821a6a902..ae89cf2478fc 100644 --- a/include/asm-s390/smp.h +++ b/include/asm-s390/smp.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <asm/lowcore.h> | 19 | #include <asm/lowcore.h> |
20 | #include <asm/sigp.h> | 20 | #include <asm/sigp.h> |
21 | #include <asm/ptrace.h> | 21 | #include <asm/ptrace.h> |
22 | #include <asm/system.h> | ||
22 | 23 | ||
23 | /* | 24 | /* |
24 | s390 specific smp.c headers | 25 | s390 specific smp.c headers |
@@ -53,10 +54,7 @@ extern void machine_power_off_smp(void); | |||
53 | 54 | ||
54 | static inline __u16 hard_smp_processor_id(void) | 55 | static inline __u16 hard_smp_processor_id(void) |
55 | { | 56 | { |
56 | __u16 cpu_address; | 57 | return stap(); |
57 | |||
58 | asm volatile("stap %0" : "=m" (cpu_address)); | ||
59 | return cpu_address; | ||
60 | } | 58 | } |
61 | 59 | ||
62 | /* | 60 | /* |
@@ -108,5 +106,11 @@ static inline void smp_send_stop(void) | |||
108 | #define smp_cpu_not_running(cpu) 1 | 106 | #define smp_cpu_not_running(cpu) 1 |
109 | #endif | 107 | #endif |
110 | 108 | ||
109 | #ifdef CONFIG_HOTPLUG_CPU | ||
110 | extern int smp_rescan_cpus(void); | ||
111 | #else | ||
112 | static inline int smp_rescan_cpus(void) { return 0; } | ||
113 | #endif | ||
114 | |||
111 | extern union save_area *zfcpdump_save_areas[NR_CPUS + 1]; | 115 | extern union save_area *zfcpdump_save_areas[NR_CPUS + 1]; |
112 | #endif | 116 | #endif |
diff --git a/include/asm-s390/sparsemem.h b/include/asm-s390/sparsemem.h new file mode 100644 index 000000000000..06dfdab6c0e8 --- /dev/null +++ b/include/asm-s390/sparsemem.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_S390_SPARSEMEM_H | ||
2 | #define _ASM_S390_SPARSEMEM_H | ||
3 | |||
4 | #define SECTION_SIZE_BITS 25 | ||
5 | |||
6 | #ifdef CONFIG_64BIT | ||
7 | |||
8 | #define MAX_PHYSADDR_BITS 42 | ||
9 | #define MAX_PHYSMEM_BITS 42 | ||
10 | |||
11 | #else | ||
12 | |||
13 | #define MAX_PHYSADDR_BITS 31 | ||
14 | #define MAX_PHYSMEM_BITS 31 | ||
15 | |||
16 | #endif /* CONFIG_64BIT */ | ||
17 | |||
18 | #endif /* _ASM_S390_SPARSEMEM_H */ | ||
diff --git a/include/asm-s390/sysinfo.h b/include/asm-s390/sysinfo.h index abe10ae15e46..79d01343f8b0 100644 --- a/include/asm-s390/sysinfo.h +++ b/include/asm-s390/sysinfo.h | |||
@@ -11,6 +11,9 @@ | |||
11 | * Christian Borntraeger <borntraeger@de.ibm.com> | 11 | * Christian Borntraeger <borntraeger@de.ibm.com> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifndef __ASM_S390_SYSINFO_H | ||
15 | #define __ASM_S390_SYSINFO_H | ||
16 | |||
14 | struct sysinfo_1_1_1 { | 17 | struct sysinfo_1_1_1 { |
15 | char reserved_0[32]; | 18 | char reserved_0[32]; |
16 | char manufacturer[16]; | 19 | char manufacturer[16]; |
@@ -114,3 +117,5 @@ static inline int stsi(void *sysinfo, int fc, int sel1, int sel2) | |||
114 | : "cc", "memory"); | 117 | : "cc", "memory"); |
115 | return r0; | 118 | return r0; |
116 | } | 119 | } |
120 | |||
121 | #endif /* __ASM_S390_SYSINFO_H */ | ||
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index 92098df4d6e3..c819ae25a842 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <asm/ptrace.h> | 16 | #include <asm/ptrace.h> |
17 | #include <asm/setup.h> | 17 | #include <asm/setup.h> |
18 | #include <asm/processor.h> | 18 | #include <asm/processor.h> |
19 | #include <asm/lowcore.h> | ||
19 | 20 | ||
20 | #ifdef __KERNEL__ | 21 | #ifdef __KERNEL__ |
21 | 22 | ||
@@ -422,6 +423,23 @@ extern void smp_ctl_clear_bit(int cr, int bit); | |||
422 | 423 | ||
423 | #endif /* CONFIG_SMP */ | 424 | #endif /* CONFIG_SMP */ |
424 | 425 | ||
426 | static inline unsigned int stfl(void) | ||
427 | { | ||
428 | asm volatile( | ||
429 | " .insn s,0xb2b10000,0(0)\n" /* stfl */ | ||
430 | "0:\n" | ||
431 | EX_TABLE(0b,0b)); | ||
432 | return S390_lowcore.stfl_fac_list; | ||
433 | } | ||
434 | |||
435 | static inline unsigned short stap(void) | ||
436 | { | ||
437 | unsigned short cpu_address; | ||
438 | |||
439 | asm volatile("stap %0" : "=m" (cpu_address)); | ||
440 | return cpu_address; | ||
441 | } | ||
442 | |||
425 | extern void (*_machine_restart)(char *command); | 443 | extern void (*_machine_restart)(char *command); |
426 | extern void (*_machine_halt)(void); | 444 | extern void (*_machine_halt)(void); |
427 | extern void (*_machine_power_off)(void); | 445 | extern void (*_machine_power_off)(void); |
diff --git a/include/asm-s390/thread_info.h b/include/asm-s390/thread_info.h index 0a518915bf90..99bbed99a3b2 100644 --- a/include/asm-s390/thread_info.h +++ b/include/asm-s390/thread_info.h | |||
@@ -89,7 +89,6 @@ static inline struct thread_info *current_thread_info(void) | |||
89 | * thread information flags bit numbers | 89 | * thread information flags bit numbers |
90 | */ | 90 | */ |
91 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | 91 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ |
92 | #define TIF_RESTORE_SIGMASK 1 /* restore signal mask in do_signal() */ | ||
93 | #define TIF_SIGPENDING 2 /* signal pending */ | 92 | #define TIF_SIGPENDING 2 /* signal pending */ |
94 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | 93 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
95 | #define TIF_RESTART_SVC 4 /* restart svc with new svc number */ | 94 | #define TIF_RESTART_SVC 4 /* restart svc with new svc number */ |
@@ -101,6 +100,7 @@ static inline struct thread_info *current_thread_info(void) | |||
101 | TIF_NEED_RESCHED */ | 100 | TIF_NEED_RESCHED */ |
102 | #define TIF_31BIT 18 /* 32bit process */ | 101 | #define TIF_31BIT 18 /* 32bit process */ |
103 | #define TIF_MEMDIE 19 | 102 | #define TIF_MEMDIE 19 |
103 | #define TIF_RESTORE_SIGMASK 20 /* restore signal mask in do_signal() */ | ||
104 | 104 | ||
105 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 105 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
106 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) | 106 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) |
diff --git a/include/asm-s390/tlbflush.h b/include/asm-s390/tlbflush.h index 9e57a93d7de1..d60394b9745e 100644 --- a/include/asm-s390/tlbflush.h +++ b/include/asm-s390/tlbflush.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _S390_TLBFLUSH_H | 2 | #define _S390_TLBFLUSH_H |
3 | 3 | ||
4 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
5 | #include <linux/sched.h> | ||
5 | #include <asm/processor.h> | 6 | #include <asm/processor.h> |
6 | #include <asm/pgalloc.h> | 7 | #include <asm/pgalloc.h> |
7 | 8 | ||
diff --git a/include/asm-s390/topology.h b/include/asm-s390/topology.h index 8e97b06f298a..d96c91643458 100644 --- a/include/asm-s390/topology.h +++ b/include/asm-s390/topology.h | |||
@@ -7,6 +7,10 @@ | |||
7 | 7 | ||
8 | cpumask_t cpu_coregroup_map(unsigned int cpu); | 8 | cpumask_t cpu_coregroup_map(unsigned int cpu); |
9 | 9 | ||
10 | extern cpumask_t cpu_core_map[NR_CPUS]; | ||
11 | |||
12 | #define topology_core_siblings(cpu) (cpu_core_map[cpu]) | ||
13 | |||
10 | int topology_set_cpu_management(int fc); | 14 | int topology_set_cpu_management(int fc); |
11 | void topology_schedule_update(void); | 15 | void topology_schedule_update(void); |
12 | 16 | ||
diff --git a/include/asm-sh/futex.h b/include/asm-sh/futex.h index 74ed3681d33c..68256ec5fa35 100644 --- a/include/asm-sh/futex.h +++ b/include/asm-sh/futex.h | |||
@@ -4,8 +4,8 @@ | |||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/futex.h> | 6 | #include <linux/futex.h> |
7 | #include <linux/uaccess.h> | ||
7 | #include <asm/errno.h> | 8 | #include <asm/errno.h> |
8 | #include <asm/uaccess.h> | ||
9 | 9 | ||
10 | /* XXX: UP variants, fix for SH-4A and SMP.. */ | 10 | /* XXX: UP variants, fix for SH-4A and SMP.. */ |
11 | #include <asm/futex-irq.h> | 11 | #include <asm/futex-irq.h> |
diff --git a/include/asm-sparc/head.h b/include/asm-sparc/head.h index fcdba5116339..e6532c3e09c9 100644 --- a/include/asm-sparc/head.h +++ b/include/asm-sparc/head.h | |||
@@ -52,6 +52,17 @@ | |||
52 | nop; \ | 52 | nop; \ |
53 | nop; | 53 | nop; |
54 | 54 | ||
55 | #ifdef CONFIG_KGDB | ||
56 | #define KGDB_TRAP(num) \ | ||
57 | b kgdb_trap_low; \ | ||
58 | rd %psr,%l0; \ | ||
59 | nop; \ | ||
60 | nop; | ||
61 | #else | ||
62 | #define KGDB_TRAP(num) \ | ||
63 | BAD_TRAP(num) | ||
64 | #endif | ||
65 | |||
55 | /* The Get Condition Codes software trap for userland. */ | 66 | /* The Get Condition Codes software trap for userland. */ |
56 | #define GETCC_TRAP \ | 67 | #define GETCC_TRAP \ |
57 | b getcc_trap_handler; mov %psr, %l0; nop; nop; | 68 | b getcc_trap_handler; mov %psr, %l0; nop; nop; |
diff --git a/include/asm-sparc/kgdb.h b/include/asm-sparc/kgdb.h index d120adfb429f..b6ef301d05bf 100644 --- a/include/asm-sparc/kgdb.h +++ b/include/asm-sparc/kgdb.h | |||
@@ -1,94 +1,38 @@ | |||
1 | /* $Id: kgdb.h,v 1.8 1998/01/07 06:33:44 baccala Exp $ | ||
2 | * kgdb.h: Defines and declarations for serial line source level | ||
3 | * remote debugging of the Linux kernel using gdb. | ||
4 | * | ||
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | ||
6 | */ | ||
7 | #ifndef _SPARC_KGDB_H | 1 | #ifndef _SPARC_KGDB_H |
8 | #define _SPARC_KGDB_H | 2 | #define _SPARC_KGDB_H |
9 | 3 | ||
10 | #ifndef __ASSEMBLY__ | 4 | #ifdef CONFIG_SPARC32 |
11 | /* To init the kgdb engine. */ | 5 | #define BUFMAX 2048 |
12 | extern void set_debug_traps(void); | 6 | #else |
13 | 7 | #define BUFMAX 4096 | |
14 | /* To enter the debugger explicitly. */ | 8 | #endif |
15 | extern void breakpoint(void); | 9 | |
16 | 10 | enum regnames { | |
17 | /* For convenience we define the format of a kgdb trap breakpoint | 11 | GDB_G0, GDB_G1, GDB_G2, GDB_G3, GDB_G4, GDB_G5, GDB_G6, GDB_G7, |
18 | * frame here also. | 12 | GDB_O0, GDB_O1, GDB_O2, GDB_O3, GDB_O4, GDB_O5, GDB_SP, GDB_O7, |
19 | */ | 13 | GDB_L0, GDB_L1, GDB_L2, GDB_L3, GDB_L4, GDB_L5, GDB_L6, GDB_L7, |
20 | struct kgdb_frame { | 14 | GDB_I0, GDB_I1, GDB_I2, GDB_I3, GDB_I4, GDB_I5, GDB_FP, GDB_I7, |
21 | unsigned long globals[8]; | 15 | GDB_F0, |
22 | unsigned long outs[8]; | 16 | GDB_F31 = GDB_F0 + 31, |
23 | unsigned long locals[8]; | 17 | #ifdef CONFIG_SPARC32 |
24 | unsigned long ins[8]; | 18 | GDB_Y, GDB_PSR, GDB_WIM, GDB_TBR, GDB_PC, GDB_NPC, |
25 | unsigned long fpregs[32]; | 19 | GDB_FSR, GDB_CSR, |
26 | unsigned long y; | 20 | #else |
27 | unsigned long psr; | 21 | GDB_F32 = GDB_F0 + 32, |
28 | unsigned long wim; | 22 | GDB_F62 = GDB_F32 + 15, |
29 | unsigned long tbr; | 23 | GDB_PC, GDB_NPC, GDB_STATE, GDB_FSR, GDB_FPRS, GDB_Y, |
30 | unsigned long pc; | 24 | #endif |
31 | unsigned long npc; | ||
32 | unsigned long fpsr; | ||
33 | unsigned long cpsr; | ||
34 | }; | 25 | }; |
35 | #endif /* !(__ASSEMBLY__) */ | ||
36 | |||
37 | /* Macros for assembly usage of the kgdb breakpoint frame. */ | ||
38 | #define KGDB_G0 0x000 | ||
39 | #define KGDB_G1 0x004 | ||
40 | #define KGDB_G2 0x008 | ||
41 | #define KGDB_G4 0x010 | ||
42 | #define KGDB_G6 0x018 | ||
43 | #define KGDB_I0 0x020 | ||
44 | #define KGDB_I2 0x028 | ||
45 | #define KGDB_I4 0x030 | ||
46 | #define KGDB_I6 0x038 | ||
47 | #define KGDB_Y 0x100 | ||
48 | #define KGDB_PSR 0x104 | ||
49 | #define KGDB_WIM 0x108 | ||
50 | #define KGDB_TBR 0x10c | ||
51 | #define KGDB_PC 0x110 | ||
52 | #define KGDB_NPC 0x114 | ||
53 | |||
54 | #define SAVE_KGDB_GLOBALS(reg) \ | ||
55 | std %g0, [%reg + STACKFRAME_SZ + KGDB_G0]; \ | ||
56 | std %g2, [%reg + STACKFRAME_SZ + KGDB_G2]; \ | ||
57 | std %g4, [%reg + STACKFRAME_SZ + KGDB_G4]; \ | ||
58 | std %g6, [%reg + STACKFRAME_SZ + KGDB_G6]; | ||
59 | |||
60 | #define SAVE_KGDB_INS(reg) \ | ||
61 | std %i0, [%reg + STACKFRAME_SZ + KGDB_I0]; \ | ||
62 | std %i2, [%reg + STACKFRAME_SZ + KGDB_I2]; \ | ||
63 | std %i4, [%reg + STACKFRAME_SZ + KGDB_I4]; \ | ||
64 | std %i6, [%reg + STACKFRAME_SZ + KGDB_I6]; | ||
65 | |||
66 | #define SAVE_KGDB_SREGS(reg, reg_y, reg_psr, reg_wim, reg_tbr, reg_pc, reg_npc) \ | ||
67 | st %reg_y, [%reg + STACKFRAME_SZ + KGDB_Y]; \ | ||
68 | st %reg_psr, [%reg + STACKFRAME_SZ + KGDB_PSR]; \ | ||
69 | st %reg_wim, [%reg + STACKFRAME_SZ + KGDB_WIM]; \ | ||
70 | st %reg_tbr, [%reg + STACKFRAME_SZ + KGDB_TBR]; \ | ||
71 | st %reg_pc, [%reg + STACKFRAME_SZ + KGDB_PC]; \ | ||
72 | st %reg_npc, [%reg + STACKFRAME_SZ + KGDB_NPC]; | ||
73 | 26 | ||
74 | #define LOAD_KGDB_GLOBALS(reg) \ | 27 | #ifdef CONFIG_SPARC32 |
75 | ld [%reg + STACKFRAME_SZ + KGDB_G1], %g1; \ | 28 | #define NUMREGBYTES ((GDB_CSR + 1) * 4) |
76 | ldd [%reg + STACKFRAME_SZ + KGDB_G2], %g2; \ | 29 | #else |
77 | ldd [%reg + STACKFRAME_SZ + KGDB_G4], %g4; \ | 30 | #define NUMREGBYTES ((GDB_Y + 1) * 8) |
78 | ldd [%reg + STACKFRAME_SZ + KGDB_G6], %g6; | 31 | #endif |
79 | 32 | ||
80 | #define LOAD_KGDB_INS(reg) \ | 33 | extern void arch_kgdb_breakpoint(void); |
81 | ldd [%reg + STACKFRAME_SZ + KGDB_I0], %i0; \ | ||
82 | ldd [%reg + STACKFRAME_SZ + KGDB_I2], %i2; \ | ||
83 | ldd [%reg + STACKFRAME_SZ + KGDB_I4], %i4; \ | ||
84 | ldd [%reg + STACKFRAME_SZ + KGDB_I6], %i6; | ||
85 | 34 | ||
86 | #define LOAD_KGDB_SREGS(reg, reg_y, reg_psr, reg_wim, reg_tbr, reg_pc, reg_npc) \ | 35 | #define BREAK_INSTR_SIZE 4 |
87 | ld [%reg + STACKFRAME_SZ + KGDB_Y], %reg_y; \ | 36 | #define CACHE_FLUSH_IS_SAFE 1 |
88 | ld [%reg + STACKFRAME_SZ + KGDB_PSR], %reg_psr; \ | ||
89 | ld [%reg + STACKFRAME_SZ + KGDB_WIM], %reg_wim; \ | ||
90 | ld [%reg + STACKFRAME_SZ + KGDB_TBR], %reg_tbr; \ | ||
91 | ld [%reg + STACKFRAME_SZ + KGDB_PC], %reg_pc; \ | ||
92 | ld [%reg + STACKFRAME_SZ + KGDB_NPC], %reg_npc; | ||
93 | 37 | ||
94 | #endif /* !(_SPARC_KGDB_H) */ | 38 | #endif /* _SPARC_KGDB_H */ |
diff --git a/include/asm-sparc/smp.h b/include/asm-sparc/smp.h index b3f492208fd2..e6d561599726 100644 --- a/include/asm-sparc/smp.h +++ b/include/asm-sparc/smp.h | |||
@@ -51,13 +51,11 @@ void smp_bogo(struct seq_file *); | |||
51 | void smp_info(struct seq_file *); | 51 | void smp_info(struct seq_file *); |
52 | 52 | ||
53 | BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) | 53 | BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) |
54 | BTFIXUPDEF_CALL(void, smp_message_pass, int, int, unsigned long, int) | ||
55 | BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void) | 54 | BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void) |
56 | BTFIXUPDEF_BLACKBOX(hard_smp_processor_id) | 55 | BTFIXUPDEF_BLACKBOX(hard_smp_processor_id) |
57 | BTFIXUPDEF_BLACKBOX(load_current) | 56 | BTFIXUPDEF_BLACKBOX(load_current) |
58 | 57 | ||
59 | #define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5) | 58 | #define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5) |
60 | #define smp_message_pass(target,msg,data,wait) BTFIXUP_CALL(smp_message_pass)(target,msg,data,wait) | ||
61 | 59 | ||
62 | static inline void xc0(smpfunc_t func) { smp_cross_call(func, 0, 0, 0, 0, 0); } | 60 | static inline void xc0(smpfunc_t func) { smp_cross_call(func, 0, 0, 0, 0, 0); } |
63 | static inline void xc1(smpfunc_t func, unsigned long arg1) | 61 | static inline void xc1(smpfunc_t func, unsigned long arg1) |
diff --git a/include/asm-sparc/system.h b/include/asm-sparc/system.h index 4e08210cd4c2..b4b024445fc9 100644 --- a/include/asm-sparc/system.h +++ b/include/asm-sparc/system.h | |||
@@ -94,6 +94,8 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr, | |||
94 | } while(0) | 94 | } while(0) |
95 | #endif | 95 | #endif |
96 | 96 | ||
97 | extern void flushw_all(void); | ||
98 | |||
97 | /* | 99 | /* |
98 | * Flush windows so that the VM switch which follows | 100 | * Flush windows so that the VM switch which follows |
99 | * would not pull the stack from under us. | 101 | * would not pull the stack from under us. |
diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h index df1097d6ffbe..d8378935ae90 100644 --- a/include/asm-sparc64/futex.h +++ b/include/asm-sparc64/futex.h | |||
@@ -2,9 +2,9 @@ | |||
2 | #define _SPARC64_FUTEX_H | 2 | #define _SPARC64_FUTEX_H |
3 | 3 | ||
4 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
5 | #include <linux/uaccess.h> | ||
5 | #include <asm/errno.h> | 6 | #include <asm/errno.h> |
6 | #include <asm/system.h> | 7 | #include <asm/system.h> |
7 | #include <asm/uaccess.h> | ||
8 | 8 | ||
9 | #define __futex_cas_op(insn, ret, oldval, uaddr, oparg) \ | 9 | #define __futex_cas_op(insn, ret, oldval, uaddr, oparg) \ |
10 | __asm__ __volatile__( \ | 10 | __asm__ __volatile__( \ |
diff --git a/include/asm-sparc64/kgdb.h b/include/asm-sparc64/kgdb.h new file mode 100644 index 000000000000..aa6532fd3a13 --- /dev/null +++ b/include/asm-sparc64/kgdb.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-sparc/kgdb.h> | |||
diff --git a/include/asm-sparc64/pil.h b/include/asm-sparc64/pil.h index 72927749aebf..2f5d126f7163 100644 --- a/include/asm-sparc64/pil.h +++ b/include/asm-sparc64/pil.h | |||
@@ -19,11 +19,4 @@ | |||
19 | #define PIL_SMP_CTX_NEW_VERSION 4 | 19 | #define PIL_SMP_CTX_NEW_VERSION 4 |
20 | #define PIL_DEVICE_IRQ 5 | 20 | #define PIL_DEVICE_IRQ 5 |
21 | 21 | ||
22 | #ifndef __ASSEMBLY__ | ||
23 | #define PIL_RESERVED(PIL) ((PIL) == PIL_SMP_CALL_FUNC || \ | ||
24 | (PIL) == PIL_SMP_RECEIVE_SIGNAL || \ | ||
25 | (PIL) == PIL_SMP_CAPTURE || \ | ||
26 | (PIL) == PIL_SMP_CTX_NEW_VERSION) | ||
27 | #endif | ||
28 | |||
29 | #endif /* !(_SPARC64_PIL_H) */ | 22 | #endif /* !(_SPARC64_PIL_H) */ |
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 53eae091a171..6897ac31be41 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -180,12 +180,13 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
180 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ | 180 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ |
181 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ | 181 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ |
182 | "ldx [%%g6 + %9], %%g4\n\t" \ | 182 | "ldx [%%g6 + %9], %%g4\n\t" \ |
183 | "brz,pt %%o7, 1f\n\t" \ | 183 | "brz,pt %%o7, switch_to_pc\n\t" \ |
184 | " mov %%g7, %0\n\t" \ | 184 | " mov %%g7, %0\n\t" \ |
185 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ | 185 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ |
186 | "jmpl %%g1 + %%lo(ret_from_syscall), %%g0\n\t" \ | 186 | "jmpl %%g1 + %%lo(ret_from_syscall), %%g0\n\t" \ |
187 | " nop\n\t" \ | 187 | " nop\n\t" \ |
188 | "1:\n\t" \ | 188 | ".globl switch_to_pc\n\t" \ |
189 | "switch_to_pc:\n\t" \ | ||
189 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ | 190 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ |
190 | "=r" (__local_per_cpu_offset) \ | 191 | "=r" (__local_per_cpu_offset) \ |
191 | : "0" (task_thread_info(next)), \ | 192 | : "0" (task_thread_info(next)), \ |
diff --git a/include/asm-sparc64/ttable.h b/include/asm-sparc64/ttable.h index d3cc4eff39a6..1b55538b944f 100644 --- a/include/asm-sparc64/ttable.h +++ b/include/asm-sparc64/ttable.h | |||
@@ -175,6 +175,12 @@ | |||
175 | #define KPROBES_TRAP(lvl) TRAP_ARG(bad_trap, lvl) | 175 | #define KPROBES_TRAP(lvl) TRAP_ARG(bad_trap, lvl) |
176 | #endif | 176 | #endif |
177 | 177 | ||
178 | #ifdef CONFIG_KGDB | ||
179 | #define KGDB_TRAP(lvl) TRAP_IRQ(kgdb_trap, lvl) | ||
180 | #else | ||
181 | #define KGDB_TRAP(lvl) TRAP_ARG(bad_trap, lvl) | ||
182 | #endif | ||
183 | |||
178 | #define SUN4V_ITSB_MISS \ | 184 | #define SUN4V_ITSB_MISS \ |
179 | ldxa [%g0] ASI_SCRATCHPAD, %g2; \ | 185 | ldxa [%g0] ASI_SCRATCHPAD, %g2; \ |
180 | ldx [%g2 + HV_FAULT_I_ADDR_OFFSET], %g4; \ | 186 | ldx [%g2 + HV_FAULT_I_ADDR_OFFSET], %g4; \ |
diff --git a/include/asm-x86/futex.h b/include/asm-x86/futex.h index ac0fbf24d722..e7a76b37b333 100644 --- a/include/asm-x86/futex.h +++ b/include/asm-x86/futex.h | |||
@@ -4,12 +4,12 @@ | |||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/futex.h> | 6 | #include <linux/futex.h> |
7 | #include <linux/uaccess.h> | ||
7 | 8 | ||
8 | #include <asm/asm.h> | 9 | #include <asm/asm.h> |
9 | #include <asm/errno.h> | 10 | #include <asm/errno.h> |
10 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
11 | #include <asm/system.h> | 12 | #include <asm/system.h> |
12 | #include <asm/uaccess.h> | ||
13 | 13 | ||
14 | #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \ | 14 | #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \ |
15 | asm volatile("1:\t" insn "\n" \ | 15 | asm volatile("1:\t" insn "\n" \ |
diff --git a/include/asm-x86/thread_info_32.h b/include/asm-x86/thread_info_32.h index 531859962096..b6338829d1a8 100644 --- a/include/asm-x86/thread_info_32.h +++ b/include/asm-x86/thread_info_32.h | |||
@@ -131,7 +131,6 @@ static inline struct thread_info *current_thread_info(void) | |||
131 | #define TIF_SYSCALL_EMU 5 /* syscall emulation active */ | 131 | #define TIF_SYSCALL_EMU 5 /* syscall emulation active */ |
132 | #define TIF_SYSCALL_AUDIT 6 /* syscall auditing active */ | 132 | #define TIF_SYSCALL_AUDIT 6 /* syscall auditing active */ |
133 | #define TIF_SECCOMP 7 /* secure computing */ | 133 | #define TIF_SECCOMP 7 /* secure computing */ |
134 | #define TIF_RESTORE_SIGMASK 8 /* restore signal mask in do_signal() */ | ||
135 | #define TIF_HRTICK_RESCHED 9 /* reprogram hrtick timer */ | 134 | #define TIF_HRTICK_RESCHED 9 /* reprogram hrtick timer */ |
136 | #define TIF_MEMDIE 16 | 135 | #define TIF_MEMDIE 16 |
137 | #define TIF_DEBUG 17 /* uses debug registers */ | 136 | #define TIF_DEBUG 17 /* uses debug registers */ |
@@ -151,7 +150,6 @@ static inline struct thread_info *current_thread_info(void) | |||
151 | #define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU) | 150 | #define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU) |
152 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | 151 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
153 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) | 152 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) |
154 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
155 | #define _TIF_HRTICK_RESCHED (1 << TIF_HRTICK_RESCHED) | 153 | #define _TIF_HRTICK_RESCHED (1 << TIF_HRTICK_RESCHED) |
156 | #define _TIF_DEBUG (1 << TIF_DEBUG) | 154 | #define _TIF_DEBUG (1 << TIF_DEBUG) |
157 | #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP) | 155 | #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP) |
@@ -188,9 +186,20 @@ static inline struct thread_info *current_thread_info(void) | |||
188 | this quantum (SMP) */ | 186 | this quantum (SMP) */ |
189 | #define TS_POLLING 0x0002 /* True if in idle loop | 187 | #define TS_POLLING 0x0002 /* True if in idle loop |
190 | and not sleeping */ | 188 | and not sleeping */ |
189 | #define TS_RESTORE_SIGMASK 0x0004 /* restore signal mask in do_signal() */ | ||
191 | 190 | ||
192 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) | 191 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) |
193 | 192 | ||
193 | #ifndef __ASSEMBLY__ | ||
194 | #define HAVE_SET_RESTORE_SIGMASK 1 | ||
195 | static inline void set_restore_sigmask(void) | ||
196 | { | ||
197 | struct thread_info *ti = current_thread_info(); | ||
198 | ti->status |= TS_RESTORE_SIGMASK; | ||
199 | set_bit(TIF_SIGPENDING, &ti->flags); | ||
200 | } | ||
201 | #endif /* !__ASSEMBLY__ */ | ||
202 | |||
194 | #endif /* __KERNEL__ */ | 203 | #endif /* __KERNEL__ */ |
195 | 204 | ||
196 | #endif /* _ASM_THREAD_INFO_H */ | 205 | #endif /* _ASM_THREAD_INFO_H */ |
diff --git a/include/asm-x86/thread_info_64.h b/include/asm-x86/thread_info_64.h index ed664e874dec..cb69f70abba1 100644 --- a/include/asm-x86/thread_info_64.h +++ b/include/asm-x86/thread_info_64.h | |||
@@ -109,7 +109,6 @@ static inline struct thread_info *stack_thread_info(void) | |||
109 | #define TIF_IRET 5 /* force IRET */ | 109 | #define TIF_IRET 5 /* force IRET */ |
110 | #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ | 110 | #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ |
111 | #define TIF_SECCOMP 8 /* secure computing */ | 111 | #define TIF_SECCOMP 8 /* secure computing */ |
112 | #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal */ | ||
113 | #define TIF_MCE_NOTIFY 10 /* notify userspace of an MCE */ | 112 | #define TIF_MCE_NOTIFY 10 /* notify userspace of an MCE */ |
114 | #define TIF_HRTICK_RESCHED 11 /* reprogram hrtick timer */ | 113 | #define TIF_HRTICK_RESCHED 11 /* reprogram hrtick timer */ |
115 | /* 16 free */ | 114 | /* 16 free */ |
@@ -133,7 +132,6 @@ static inline struct thread_info *stack_thread_info(void) | |||
133 | #define _TIF_IRET (1 << TIF_IRET) | 132 | #define _TIF_IRET (1 << TIF_IRET) |
134 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | 133 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
135 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) | 134 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) |
136 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
137 | #define _TIF_MCE_NOTIFY (1 << TIF_MCE_NOTIFY) | 135 | #define _TIF_MCE_NOTIFY (1 << TIF_MCE_NOTIFY) |
138 | #define _TIF_HRTICK_RESCHED (1 << TIF_HRTICK_RESCHED) | 136 | #define _TIF_HRTICK_RESCHED (1 << TIF_HRTICK_RESCHED) |
139 | #define _TIF_IA32 (1 << TIF_IA32) | 137 | #define _TIF_IA32 (1 << TIF_IA32) |
@@ -178,9 +176,20 @@ static inline struct thread_info *stack_thread_info(void) | |||
178 | #define TS_COMPAT 0x0002 /* 32bit syscall active */ | 176 | #define TS_COMPAT 0x0002 /* 32bit syscall active */ |
179 | #define TS_POLLING 0x0004 /* true if in idle loop | 177 | #define TS_POLLING 0x0004 /* true if in idle loop |
180 | and not sleeping */ | 178 | and not sleeping */ |
179 | #define TS_RESTORE_SIGMASK 0x0008 /* restore signal mask in do_signal() */ | ||
181 | 180 | ||
182 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) | 181 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) |
183 | 182 | ||
183 | #ifndef __ASSEMBLY__ | ||
184 | #define HAVE_SET_RESTORE_SIGMASK 1 | ||
185 | static inline void set_restore_sigmask(void) | ||
186 | { | ||
187 | struct thread_info *ti = current_thread_info(); | ||
188 | ti->status |= TS_RESTORE_SIGMASK; | ||
189 | set_bit(TIF_SIGPENDING, &ti->flags); | ||
190 | } | ||
191 | #endif /* !__ASSEMBLY__ */ | ||
192 | |||
184 | #endif /* __KERNEL__ */ | 193 | #endif /* __KERNEL__ */ |
185 | 194 | ||
186 | #endif /* _ASM_THREAD_INFO_H */ | 195 | #endif /* _ASM_THREAD_INFO_H */ |
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h index 03e34547d489..661d90d6cf7c 100644 --- a/include/linux/agp_backend.h +++ b/include/linux/agp_backend.h | |||
@@ -30,8 +30,6 @@ | |||
30 | #ifndef _AGP_BACKEND_H | 30 | #ifndef _AGP_BACKEND_H |
31 | #define _AGP_BACKEND_H 1 | 31 | #define _AGP_BACKEND_H 1 |
32 | 32 | ||
33 | #ifdef __KERNEL__ | ||
34 | |||
35 | #ifndef TRUE | 33 | #ifndef TRUE |
36 | #define TRUE 1 | 34 | #define TRUE 1 |
37 | #endif | 35 | #endif |
@@ -111,5 +109,4 @@ extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *); | |||
111 | extern void agp_backend_release(struct agp_bridge_data *); | 109 | extern void agp_backend_release(struct agp_bridge_data *); |
112 | extern void agp_flush_chipset(struct agp_bridge_data *); | 110 | extern void agp_flush_chipset(struct agp_bridge_data *); |
113 | 111 | ||
114 | #endif /* __KERNEL__ */ | ||
115 | #endif /* _AGP_BACKEND_H */ | 112 | #endif /* _AGP_BACKEND_H */ |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index b66fa2bdfd9c..0a24d5550eb3 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -11,9 +11,13 @@ | |||
11 | #include <linux/percpu_counter.h> | 11 | #include <linux/percpu_counter.h> |
12 | #include <linux/log2.h> | 12 | #include <linux/log2.h> |
13 | #include <linux/proportions.h> | 13 | #include <linux/proportions.h> |
14 | #include <linux/kernel.h> | ||
15 | #include <linux/fs.h> | ||
14 | #include <asm/atomic.h> | 16 | #include <asm/atomic.h> |
15 | 17 | ||
16 | struct page; | 18 | struct page; |
19 | struct device; | ||
20 | struct dentry; | ||
17 | 21 | ||
18 | /* | 22 | /* |
19 | * Bits in backing_dev_info.state | 23 | * Bits in backing_dev_info.state |
@@ -48,11 +52,26 @@ struct backing_dev_info { | |||
48 | 52 | ||
49 | struct prop_local_percpu completions; | 53 | struct prop_local_percpu completions; |
50 | int dirty_exceeded; | 54 | int dirty_exceeded; |
55 | |||
56 | unsigned int min_ratio; | ||
57 | unsigned int max_ratio, max_prop_frac; | ||
58 | |||
59 | struct device *dev; | ||
60 | |||
61 | #ifdef CONFIG_DEBUG_FS | ||
62 | struct dentry *debug_dir; | ||
63 | struct dentry *debug_stats; | ||
64 | #endif | ||
51 | }; | 65 | }; |
52 | 66 | ||
53 | int bdi_init(struct backing_dev_info *bdi); | 67 | int bdi_init(struct backing_dev_info *bdi); |
54 | void bdi_destroy(struct backing_dev_info *bdi); | 68 | void bdi_destroy(struct backing_dev_info *bdi); |
55 | 69 | ||
70 | int bdi_register(struct backing_dev_info *bdi, struct device *parent, | ||
71 | const char *fmt, ...); | ||
72 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | ||
73 | void bdi_unregister(struct backing_dev_info *bdi); | ||
74 | |||
56 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, | 75 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, |
57 | enum bdi_stat_item item, s64 amount) | 76 | enum bdi_stat_item item, s64 amount) |
58 | { | 77 | { |
@@ -116,6 +135,8 @@ static inline s64 bdi_stat_sum(struct backing_dev_info *bdi, | |||
116 | return sum; | 135 | return sum; |
117 | } | 136 | } |
118 | 137 | ||
138 | extern void bdi_writeout_inc(struct backing_dev_info *bdi); | ||
139 | |||
119 | /* | 140 | /* |
120 | * maximal error of a stat counter. | 141 | * maximal error of a stat counter. |
121 | */ | 142 | */ |
@@ -128,24 +149,48 @@ static inline unsigned long bdi_stat_error(struct backing_dev_info *bdi) | |||
128 | #endif | 149 | #endif |
129 | } | 150 | } |
130 | 151 | ||
152 | int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio); | ||
153 | int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio); | ||
154 | |||
131 | /* | 155 | /* |
132 | * Flags in backing_dev_info::capability | 156 | * Flags in backing_dev_info::capability |
133 | * - The first two flags control whether dirty pages will contribute to the | 157 | * |
134 | * VM's accounting and whether writepages() should be called for dirty pages | 158 | * The first three flags control whether dirty pages will contribute to the |
135 | * (something that would not, for example, be appropriate for ramfs) | 159 | * VM's accounting and whether writepages() should be called for dirty pages |
136 | * - These flags let !MMU mmap() govern direct device mapping vs immediate | 160 | * (something that would not, for example, be appropriate for ramfs) |
137 | * copying more easily for MAP_PRIVATE, especially for ROM filesystems | 161 | * |
162 | * WARNING: these flags are closely related and should not normally be | ||
163 | * used separately. The BDI_CAP_NO_ACCT_AND_WRITEBACK combines these | ||
164 | * three flags into a single convenience macro. | ||
165 | * | ||
166 | * BDI_CAP_NO_ACCT_DIRTY: Dirty pages shouldn't contribute to accounting | ||
167 | * BDI_CAP_NO_WRITEBACK: Don't write pages back | ||
168 | * BDI_CAP_NO_ACCT_WB: Don't automatically account writeback pages | ||
169 | * | ||
170 | * These flags let !MMU mmap() govern direct device mapping vs immediate | ||
171 | * copying more easily for MAP_PRIVATE, especially for ROM filesystems. | ||
172 | * | ||
173 | * BDI_CAP_MAP_COPY: Copy can be mapped (MAP_PRIVATE) | ||
174 | * BDI_CAP_MAP_DIRECT: Can be mapped directly (MAP_SHARED) | ||
175 | * BDI_CAP_READ_MAP: Can be mapped for reading | ||
176 | * BDI_CAP_WRITE_MAP: Can be mapped for writing | ||
177 | * BDI_CAP_EXEC_MAP: Can be mapped for execution | ||
138 | */ | 178 | */ |
139 | #define BDI_CAP_NO_ACCT_DIRTY 0x00000001 /* Dirty pages shouldn't contribute to accounting */ | 179 | #define BDI_CAP_NO_ACCT_DIRTY 0x00000001 |
140 | #define BDI_CAP_NO_WRITEBACK 0x00000002 /* Don't write pages back */ | 180 | #define BDI_CAP_NO_WRITEBACK 0x00000002 |
141 | #define BDI_CAP_MAP_COPY 0x00000004 /* Copy can be mapped (MAP_PRIVATE) */ | 181 | #define BDI_CAP_MAP_COPY 0x00000004 |
142 | #define BDI_CAP_MAP_DIRECT 0x00000008 /* Can be mapped directly (MAP_SHARED) */ | 182 | #define BDI_CAP_MAP_DIRECT 0x00000008 |
143 | #define BDI_CAP_READ_MAP 0x00000010 /* Can be mapped for reading */ | 183 | #define BDI_CAP_READ_MAP 0x00000010 |
144 | #define BDI_CAP_WRITE_MAP 0x00000020 /* Can be mapped for writing */ | 184 | #define BDI_CAP_WRITE_MAP 0x00000020 |
145 | #define BDI_CAP_EXEC_MAP 0x00000040 /* Can be mapped for execution */ | 185 | #define BDI_CAP_EXEC_MAP 0x00000040 |
186 | #define BDI_CAP_NO_ACCT_WB 0x00000080 | ||
187 | |||
146 | #define BDI_CAP_VMFLAGS \ | 188 | #define BDI_CAP_VMFLAGS \ |
147 | (BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP) | 189 | (BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP) |
148 | 190 | ||
191 | #define BDI_CAP_NO_ACCT_AND_WRITEBACK \ | ||
192 | (BDI_CAP_NO_WRITEBACK | BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_ACCT_WB) | ||
193 | |||
149 | #if defined(VM_MAYREAD) && \ | 194 | #if defined(VM_MAYREAD) && \ |
150 | (BDI_CAP_READ_MAP != VM_MAYREAD || \ | 195 | (BDI_CAP_READ_MAP != VM_MAYREAD || \ |
151 | BDI_CAP_WRITE_MAP != VM_MAYWRITE || \ | 196 | BDI_CAP_WRITE_MAP != VM_MAYWRITE || \ |
@@ -185,17 +230,32 @@ void clear_bdi_congested(struct backing_dev_info *bdi, int rw); | |||
185 | void set_bdi_congested(struct backing_dev_info *bdi, int rw); | 230 | void set_bdi_congested(struct backing_dev_info *bdi, int rw); |
186 | long congestion_wait(int rw, long timeout); | 231 | long congestion_wait(int rw, long timeout); |
187 | 232 | ||
188 | #define bdi_cap_writeback_dirty(bdi) \ | ||
189 | (!((bdi)->capabilities & BDI_CAP_NO_WRITEBACK)) | ||
190 | 233 | ||
191 | #define bdi_cap_account_dirty(bdi) \ | 234 | static inline bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi) |
192 | (!((bdi)->capabilities & BDI_CAP_NO_ACCT_DIRTY)) | 235 | { |
236 | return !(bdi->capabilities & BDI_CAP_NO_WRITEBACK); | ||
237 | } | ||
238 | |||
239 | static inline bool bdi_cap_account_dirty(struct backing_dev_info *bdi) | ||
240 | { | ||
241 | return !(bdi->capabilities & BDI_CAP_NO_ACCT_DIRTY); | ||
242 | } | ||
193 | 243 | ||
194 | #define mapping_cap_writeback_dirty(mapping) \ | 244 | static inline bool bdi_cap_account_writeback(struct backing_dev_info *bdi) |
195 | bdi_cap_writeback_dirty((mapping)->backing_dev_info) | 245 | { |
246 | /* Paranoia: BDI_CAP_NO_WRITEBACK implies BDI_CAP_NO_ACCT_WB */ | ||
247 | return !(bdi->capabilities & (BDI_CAP_NO_ACCT_WB | | ||
248 | BDI_CAP_NO_WRITEBACK)); | ||
249 | } | ||
196 | 250 | ||
197 | #define mapping_cap_account_dirty(mapping) \ | 251 | static inline bool mapping_cap_writeback_dirty(struct address_space *mapping) |
198 | bdi_cap_account_dirty((mapping)->backing_dev_info) | 252 | { |
253 | return bdi_cap_writeback_dirty(mapping->backing_dev_info); | ||
254 | } | ||
199 | 255 | ||
256 | static inline bool mapping_cap_account_dirty(struct address_space *mapping) | ||
257 | { | ||
258 | return bdi_cap_account_dirty(mapping->backing_dev_info); | ||
259 | } | ||
200 | 260 | ||
201 | #endif /* _LINUX_BACKING_DEV_H */ | 261 | #endif /* _LINUX_BACKING_DEV_H */ |
diff --git a/include/linux/byteorder/Kbuild b/include/linux/byteorder/Kbuild index 79bedddfd9ca..1133d5f9d818 100644 --- a/include/linux/byteorder/Kbuild +++ b/include/linux/byteorder/Kbuild | |||
@@ -1,5 +1,3 @@ | |||
1 | header-y += big_endian.h | 1 | unifdef-y += big_endian.h |
2 | header-y += little_endian.h | 2 | unifdef-y += little_endian.h |
3 | |||
4 | unifdef-y += generic.h | ||
5 | unifdef-y += swab.h | 3 | unifdef-y += swab.h |
diff --git a/include/linux/byteorder/big_endian.h b/include/linux/byteorder/big_endian.h index bef87891cb24..961ed4b48d8e 100644 --- a/include/linux/byteorder/big_endian.h +++ b/include/linux/byteorder/big_endian.h | |||
@@ -101,6 +101,8 @@ static inline __u16 __be16_to_cpup(const __be16 *p) | |||
101 | #define __cpu_to_be16s(x) do {} while (0) | 101 | #define __cpu_to_be16s(x) do {} while (0) |
102 | #define __be16_to_cpus(x) do {} while (0) | 102 | #define __be16_to_cpus(x) do {} while (0) |
103 | 103 | ||
104 | #ifdef __KERNEL__ | ||
104 | #include <linux/byteorder/generic.h> | 105 | #include <linux/byteorder/generic.h> |
106 | #endif | ||
105 | 107 | ||
106 | #endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */ | 108 | #endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */ |
diff --git a/include/linux/byteorder/generic.h b/include/linux/byteorder/generic.h index d3771551fdd9..0846e6b931ce 100644 --- a/include/linux/byteorder/generic.h +++ b/include/linux/byteorder/generic.h | |||
@@ -82,12 +82,6 @@ | |||
82 | * | 82 | * |
83 | */ | 83 | */ |
84 | 84 | ||
85 | |||
86 | #if defined(__KERNEL__) | ||
87 | /* | ||
88 | * inside the kernel, we can use nicknames; | ||
89 | * outside of it, we must avoid POSIX namespace pollution... | ||
90 | */ | ||
91 | #define cpu_to_le64 __cpu_to_le64 | 85 | #define cpu_to_le64 __cpu_to_le64 |
92 | #define le64_to_cpu __le64_to_cpu | 86 | #define le64_to_cpu __le64_to_cpu |
93 | #define cpu_to_le32 __cpu_to_le32 | 87 | #define cpu_to_le32 __cpu_to_le32 |
@@ -176,6 +170,4 @@ static inline void be64_add_cpu(__be64 *var, u64 val) | |||
176 | *var = cpu_to_be64(be64_to_cpu(*var) + val); | 170 | *var = cpu_to_be64(be64_to_cpu(*var) + val); |
177 | } | 171 | } |
178 | 172 | ||
179 | #endif /* KERNEL */ | ||
180 | |||
181 | #endif /* _LINUX_BYTEORDER_GENERIC_H */ | 173 | #endif /* _LINUX_BYTEORDER_GENERIC_H */ |
diff --git a/include/linux/byteorder/little_endian.h b/include/linux/byteorder/little_endian.h index 86e62b750176..05dc7c35b3b2 100644 --- a/include/linux/byteorder/little_endian.h +++ b/include/linux/byteorder/little_endian.h | |||
@@ -101,6 +101,8 @@ static inline __u16 __be16_to_cpup(const __be16 *p) | |||
101 | #define __cpu_to_be16s(x) __swab16s((x)) | 101 | #define __cpu_to_be16s(x) __swab16s((x)) |
102 | #define __be16_to_cpus(x) __swab16s((x)) | 102 | #define __be16_to_cpus(x) __swab16s((x)) |
103 | 103 | ||
104 | #ifdef __KERNEL__ | ||
104 | #include <linux/byteorder/generic.h> | 105 | #include <linux/byteorder/generic.h> |
106 | #endif | ||
105 | 107 | ||
106 | #endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */ | 108 | #endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */ |
diff --git a/include/linux/cdev.h b/include/linux/cdev.h index 1e29b13d0062..fb4591977b03 100644 --- a/include/linux/cdev.h +++ b/include/linux/cdev.h | |||
@@ -1,6 +1,5 @@ | |||
1 | #ifndef _LINUX_CDEV_H | 1 | #ifndef _LINUX_CDEV_H |
2 | #define _LINUX_CDEV_H | 2 | #define _LINUX_CDEV_H |
3 | #ifdef __KERNEL__ | ||
4 | 3 | ||
5 | #include <linux/kobject.h> | 4 | #include <linux/kobject.h> |
6 | #include <linux/kdev_t.h> | 5 | #include <linux/kdev_t.h> |
@@ -34,4 +33,3 @@ void cd_forget(struct inode *); | |||
34 | extern struct backing_dev_info directly_mappable_cdev_bdi; | 33 | extern struct backing_dev_info directly_mappable_cdev_bdi; |
35 | 34 | ||
36 | #endif | 35 | #endif |
37 | #endif | ||
diff --git a/include/linux/coda_fs_i.h b/include/linux/coda_fs_i.h index 424fe9cf02c4..b3ef0c461578 100644 --- a/include/linux/coda_fs_i.h +++ b/include/linux/coda_fs_i.h | |||
@@ -8,7 +8,6 @@ | |||
8 | #ifndef _LINUX_CODA_FS_I | 8 | #ifndef _LINUX_CODA_FS_I |
9 | #define _LINUX_CODA_FS_I | 9 | #define _LINUX_CODA_FS_I |
10 | 10 | ||
11 | #ifdef __KERNEL__ | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/list.h> | 12 | #include <linux/list.h> |
14 | #include <linux/coda.h> | 13 | #include <linux/coda.h> |
@@ -52,4 +51,3 @@ struct inode *coda_fid_to_inode(struct CodaFid *fid, struct super_block *sb); | |||
52 | void coda_replace_fid(struct inode *, struct CodaFid *, struct CodaFid *); | 51 | void coda_replace_fid(struct inode *, struct CodaFid *, struct CodaFid *); |
53 | 52 | ||
54 | #endif | 53 | #endif |
55 | #endif | ||
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index b2fd7547b58d..5c8351b859f0 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
@@ -29,10 +29,11 @@ | |||
29 | BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) | 29 | BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Force always-inline if the user requests it so via the .config: | 32 | * Force always-inline if the user requests it so via the .config, |
33 | * or if gcc is too old: | ||
33 | */ | 34 | */ |
34 | #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ | 35 | #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ |
35 | !defined(CONFIG_OPTIMIZE_INLINING) && (__GNUC__ >= 4) | 36 | !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) |
36 | # define inline inline __attribute__((always_inline)) | 37 | # define inline inline __attribute__((always_inline)) |
37 | # define __inline__ __inline__ __attribute__((always_inline)) | 38 | # define __inline__ __inline__ __attribute__((always_inline)) |
38 | # define __inline __inline __attribute__((always_inline)) | 39 | # define __inline __inline __attribute__((always_inline)) |
diff --git a/include/linux/concap.h b/include/linux/concap.h index 27304651d700..977acb3d1fb2 100644 --- a/include/linux/concap.h +++ b/include/linux/concap.h | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #ifndef _LINUX_CONCAP_H | 9 | #ifndef _LINUX_CONCAP_H |
10 | #define _LINUX_CONCAP_H | 10 | #define _LINUX_CONCAP_H |
11 | #ifdef __KERNEL__ | 11 | |
12 | #include <linux/skbuff.h> | 12 | #include <linux/skbuff.h> |
13 | #include <linux/netdevice.h> | 13 | #include <linux/netdevice.h> |
14 | 14 | ||
@@ -110,4 +110,3 @@ extern int concap_nop(struct concap_proto *cprot); | |||
110 | */ | 110 | */ |
111 | extern int concap_drop_skb(struct concap_proto *cprot, struct sk_buff *skb); | 111 | extern int concap_drop_skb(struct concap_proto *cprot, struct sk_buff *skb); |
112 | #endif | 112 | #endif |
113 | #endif | ||
diff --git a/include/linux/configfs.h b/include/linux/configfs.h index 4b287ad9371a..3ae65b1bf90f 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h | |||
@@ -35,8 +35,6 @@ | |||
35 | #ifndef _CONFIGFS_H_ | 35 | #ifndef _CONFIGFS_H_ |
36 | #define _CONFIGFS_H_ | 36 | #define _CONFIGFS_H_ |
37 | 37 | ||
38 | #ifdef __KERNEL__ | ||
39 | |||
40 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
41 | #include <linux/types.h> | 39 | #include <linux/types.h> |
42 | #include <linux/list.h> | 40 | #include <linux/list.h> |
@@ -194,6 +192,4 @@ void configfs_unregister_subsystem(struct configfs_subsystem *subsys); | |||
194 | int configfs_depend_item(struct configfs_subsystem *subsys, struct config_item *target); | 192 | int configfs_depend_item(struct configfs_subsystem *subsys, struct config_item *target); |
195 | void configfs_undepend_item(struct configfs_subsystem *subsys, struct config_item *target); | 193 | void configfs_undepend_item(struct configfs_subsystem *subsys, struct config_item *target); |
196 | 194 | ||
197 | #endif /* __KERNEL__ */ | ||
198 | |||
199 | #endif /* _CONFIGFS_H_ */ | 195 | #endif /* _CONFIGFS_H_ */ |
diff --git a/include/linux/console.h b/include/linux/console.h index a5f88a6a259d..a4f27fbdf549 100644 --- a/include/linux/console.h +++ b/include/linux/console.h | |||
@@ -91,6 +91,7 @@ void give_up_console(const struct consw *sw); | |||
91 | #define CON_ENABLED (4) | 91 | #define CON_ENABLED (4) |
92 | #define CON_BOOT (8) | 92 | #define CON_BOOT (8) |
93 | #define CON_ANYTIME (16) /* Safe to call when cpu is offline */ | 93 | #define CON_ANYTIME (16) /* Safe to call when cpu is offline */ |
94 | #define CON_BRL (32) /* Used for a braille device */ | ||
94 | 95 | ||
95 | struct console { | 96 | struct console { |
96 | char name[16]; | 97 | char name[16]; |
@@ -121,6 +122,9 @@ extern struct tty_driver *console_device(int *); | |||
121 | extern void console_stop(struct console *); | 122 | extern void console_stop(struct console *); |
122 | extern void console_start(struct console *); | 123 | extern void console_start(struct console *); |
123 | extern int is_console_locked(void); | 124 | extern int is_console_locked(void); |
125 | extern int braille_register_console(struct console *, int index, | ||
126 | char *console_options, char *braille_options); | ||
127 | extern int braille_unregister_console(struct console *); | ||
124 | 128 | ||
125 | extern int console_suspend_enabled; | 129 | extern int console_suspend_enabled; |
126 | 130 | ||
diff --git a/include/linux/crc-ccitt.h b/include/linux/crc-ccitt.h index 90037617da8f..f52696a1ff0d 100644 --- a/include/linux/crc-ccitt.h +++ b/include/linux/crc-ccitt.h | |||
@@ -1,6 +1,5 @@ | |||
1 | #ifndef _LINUX_CRC_CCITT_H | 1 | #ifndef _LINUX_CRC_CCITT_H |
2 | #define _LINUX_CRC_CCITT_H | 2 | #define _LINUX_CRC_CCITT_H |
3 | #ifdef __KERNEL__ | ||
4 | 3 | ||
5 | #include <linux/types.h> | 4 | #include <linux/types.h> |
6 | 5 | ||
@@ -13,5 +12,4 @@ static inline u16 crc_ccitt_byte(u16 crc, const u8 c) | |||
13 | return (crc >> 8) ^ crc_ccitt_table[(crc ^ c) & 0xff]; | 12 | return (crc >> 8) ^ crc_ccitt_table[(crc ^ c) & 0xff]; |
14 | } | 13 | } |
15 | 14 | ||
16 | #endif /* __KERNEL__ */ | ||
17 | #endif /* _LINUX_CRC_CCITT_H */ | 15 | #endif /* _LINUX_CRC_CCITT_H */ |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index cfb1627ac51c..2a6639407c80 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef __LINUX_DCACHE_H | 1 | #ifndef __LINUX_DCACHE_H |
2 | #define __LINUX_DCACHE_H | 2 | #define __LINUX_DCACHE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <asm/atomic.h> | 4 | #include <asm/atomic.h> |
7 | #include <linux/list.h> | 5 | #include <linux/list.h> |
8 | #include <linux/spinlock.h> | 6 | #include <linux/spinlock.h> |
@@ -365,6 +363,4 @@ extern struct dentry *lookup_create(struct nameidata *nd, int is_dir); | |||
365 | 363 | ||
366 | extern int sysctl_vfs_cache_pressure; | 364 | extern int sysctl_vfs_cache_pressure; |
367 | 365 | ||
368 | #endif /* __KERNEL__ */ | ||
369 | |||
370 | #endif /* __LINUX_DCACHE_H */ | 366 | #endif /* __LINUX_DCACHE_H */ |
diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h new file mode 100644 index 000000000000..8c243aaa86a7 --- /dev/null +++ b/include/linux/debugobjects.h | |||
@@ -0,0 +1,90 @@ | |||
1 | #ifndef _LINUX_DEBUGOBJECTS_H | ||
2 | #define _LINUX_DEBUGOBJECTS_H | ||
3 | |||
4 | #include <linux/list.h> | ||
5 | #include <linux/spinlock.h> | ||
6 | |||
7 | enum debug_obj_state { | ||
8 | ODEBUG_STATE_NONE, | ||
9 | ODEBUG_STATE_INIT, | ||
10 | ODEBUG_STATE_INACTIVE, | ||
11 | ODEBUG_STATE_ACTIVE, | ||
12 | ODEBUG_STATE_DESTROYED, | ||
13 | ODEBUG_STATE_NOTAVAILABLE, | ||
14 | ODEBUG_STATE_MAX, | ||
15 | }; | ||
16 | |||
17 | struct debug_obj_descr; | ||
18 | |||
19 | /** | ||
20 | * struct debug_obj - representaion of an tracked object | ||
21 | * @node: hlist node to link the object into the tracker list | ||
22 | * @state: tracked object state | ||
23 | * @object: pointer to the real object | ||
24 | * @descr: pointer to an object type specific debug description structure | ||
25 | */ | ||
26 | struct debug_obj { | ||
27 | struct hlist_node node; | ||
28 | enum debug_obj_state state; | ||
29 | void *object; | ||
30 | struct debug_obj_descr *descr; | ||
31 | }; | ||
32 | |||
33 | /** | ||
34 | * struct debug_obj_descr - object type specific debug description structure | ||
35 | * @name: name of the object typee | ||
36 | * @fixup_init: fixup function, which is called when the init check | ||
37 | * fails | ||
38 | * @fixup_activate: fixup function, which is called when the activate check | ||
39 | * fails | ||
40 | * @fixup_destroy: fixup function, which is called when the destroy check | ||
41 | * fails | ||
42 | * @fixup_free: fixup function, which is called when the free check | ||
43 | * fails | ||
44 | */ | ||
45 | struct debug_obj_descr { | ||
46 | const char *name; | ||
47 | |||
48 | int (*fixup_init) (void *addr, enum debug_obj_state state); | ||
49 | int (*fixup_activate) (void *addr, enum debug_obj_state state); | ||
50 | int (*fixup_destroy) (void *addr, enum debug_obj_state state); | ||
51 | int (*fixup_free) (void *addr, enum debug_obj_state state); | ||
52 | }; | ||
53 | |||
54 | #ifdef CONFIG_DEBUG_OBJECTS | ||
55 | extern void debug_object_init (void *addr, struct debug_obj_descr *descr); | ||
56 | extern void | ||
57 | debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr); | ||
58 | extern void debug_object_activate (void *addr, struct debug_obj_descr *descr); | ||
59 | extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr); | ||
60 | extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr); | ||
61 | extern void debug_object_free (void *addr, struct debug_obj_descr *descr); | ||
62 | |||
63 | extern void debug_objects_early_init(void); | ||
64 | extern void debug_objects_mem_init(void); | ||
65 | #else | ||
66 | static inline void | ||
67 | debug_object_init (void *addr, struct debug_obj_descr *descr) { } | ||
68 | static inline void | ||
69 | debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr) { } | ||
70 | static inline void | ||
71 | debug_object_activate (void *addr, struct debug_obj_descr *descr) { } | ||
72 | static inline void | ||
73 | debug_object_deactivate(void *addr, struct debug_obj_descr *descr) { } | ||
74 | static inline void | ||
75 | debug_object_destroy (void *addr, struct debug_obj_descr *descr) { } | ||
76 | static inline void | ||
77 | debug_object_free (void *addr, struct debug_obj_descr *descr) { } | ||
78 | |||
79 | static inline void debug_objects_early_init(void) { } | ||
80 | static inline void debug_objects_mem_init(void) { } | ||
81 | #endif | ||
82 | |||
83 | #ifdef CONFIG_DEBUG_OBJECTS_FREE | ||
84 | extern void debug_check_no_obj_freed(const void *address, unsigned long size); | ||
85 | #else | ||
86 | static inline void | ||
87 | debug_check_no_obj_freed(const void *address, unsigned long size) { } | ||
88 | #endif | ||
89 | |||
90 | #endif | ||
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index ad3b787479a4..0d8d419d191a 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
@@ -8,8 +8,6 @@ | |||
8 | #ifndef _LINUX_DEVICE_MAPPER_H | 8 | #ifndef _LINUX_DEVICE_MAPPER_H |
9 | #define _LINUX_DEVICE_MAPPER_H | 9 | #define _LINUX_DEVICE_MAPPER_H |
10 | 10 | ||
11 | #ifdef __KERNEL__ | ||
12 | |||
13 | #include <linux/bio.h> | 11 | #include <linux/bio.h> |
14 | 12 | ||
15 | struct dm_target; | 13 | struct dm_target; |
@@ -344,5 +342,4 @@ static inline unsigned long to_bytes(sector_t n) | |||
344 | return (n << SECTOR_SHIFT); | 342 | return (n << SECTOR_SHIFT); |
345 | } | 343 | } |
346 | 344 | ||
347 | #endif /* __KERNEL__ */ | ||
348 | #endif /* _LINUX_DEVICE_MAPPER_H */ | 345 | #endif /* _LINUX_DEVICE_MAPPER_H */ |
diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h index b672ddc00735..154769cad3f3 100644 --- a/include/linux/devpts_fs.h +++ b/include/linux/devpts_fs.h | |||
@@ -17,6 +17,8 @@ | |||
17 | 17 | ||
18 | #ifdef CONFIG_UNIX98_PTYS | 18 | #ifdef CONFIG_UNIX98_PTYS |
19 | 19 | ||
20 | int devpts_new_index(void); | ||
21 | void devpts_kill_index(int idx); | ||
20 | int devpts_pty_new(struct tty_struct *tty); /* mknod in devpts */ | 22 | int devpts_pty_new(struct tty_struct *tty); /* mknod in devpts */ |
21 | struct tty_struct *devpts_get_tty(int number); /* get tty structure */ | 23 | struct tty_struct *devpts_get_tty(int number); /* get tty structure */ |
22 | void devpts_pty_kill(int number); /* unlink */ | 24 | void devpts_pty_kill(int number); /* unlink */ |
@@ -24,6 +26,8 @@ void devpts_pty_kill(int number); /* unlink */ | |||
24 | #else | 26 | #else |
25 | 27 | ||
26 | /* Dummy stubs in the no-pty case */ | 28 | /* Dummy stubs in the no-pty case */ |
29 | static inline int devpts_new_index(void) { return -EINVAL; } | ||
30 | static inline void devpts_kill_index(int idx) { } | ||
27 | static inline int devpts_pty_new(struct tty_struct *tty) { return -EINVAL; } | 31 | static inline int devpts_pty_new(struct tty_struct *tty) { return -EINVAL; } |
28 | static inline struct tty_struct *devpts_get_tty(int number) { return NULL; } | 32 | static inline struct tty_struct *devpts_get_tty(int number) { return NULL; } |
29 | static inline void devpts_pty_kill(int number) { } | 33 | static inline void devpts_pty_kill(int number) { } |
diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b489fc6d0b62..a701399b7fed 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h | |||
@@ -8,9 +8,6 @@ | |||
8 | #ifndef _LINUX_EVENTFD_H | 8 | #ifndef _LINUX_EVENTFD_H |
9 | #define _LINUX_EVENTFD_H | 9 | #define _LINUX_EVENTFD_H |
10 | 10 | ||
11 | |||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | #ifdef CONFIG_EVENTFD | 11 | #ifdef CONFIG_EVENTFD |
15 | 12 | ||
16 | struct file *eventfd_fget(int fd); | 13 | struct file *eventfd_fget(int fd); |
@@ -24,7 +21,5 @@ static inline int eventfd_signal(struct file *file, int n) | |||
24 | 21 | ||
25 | #endif /* CONFIG_EVENTFD */ | 22 | #endif /* CONFIG_EVENTFD */ |
26 | 23 | ||
27 | #endif /* __KERNEL__ */ | ||
28 | |||
29 | #endif /* _LINUX_EVENTFD_H */ | 24 | #endif /* _LINUX_EVENTFD_H */ |
30 | 25 | ||
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 2cad5c67397e..c415a496de3a 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
@@ -14,7 +14,6 @@ | |||
14 | * option) any later version. | 14 | * option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #ifdef __KERNEL__ | ||
18 | #ifndef _FSL_DEVICE_H_ | 17 | #ifndef _FSL_DEVICE_H_ |
19 | #define _FSL_DEVICE_H_ | 18 | #define _FSL_DEVICE_H_ |
20 | 19 | ||
@@ -127,4 +126,3 @@ struct mpc8xx_pcmcia_ops { | |||
127 | }; | 126 | }; |
128 | 127 | ||
129 | #endif /* _FSL_DEVICE_H_ */ | 128 | #endif /* _FSL_DEVICE_H_ */ |
130 | #endif /* __KERNEL__ */ | ||
diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index d4b7c4ac72e6..a89513188ce7 100644 --- a/include/linux/fsnotify.h +++ b/include/linux/fsnotify.h | |||
@@ -11,8 +11,6 @@ | |||
11 | * (C) Copyright 2005 Robert Love | 11 | * (C) Copyright 2005 Robert Love |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifdef __KERNEL__ | ||
15 | |||
16 | #include <linux/dnotify.h> | 14 | #include <linux/dnotify.h> |
17 | #include <linux/inotify.h> | 15 | #include <linux/inotify.h> |
18 | #include <linux/audit.h> | 16 | #include <linux/audit.h> |
@@ -296,6 +294,4 @@ static inline void fsnotify_oldname_free(const char *old_name) | |||
296 | 294 | ||
297 | #endif /* ! CONFIG_INOTIFY */ | 295 | #endif /* ! CONFIG_INOTIFY */ |
298 | 296 | ||
299 | #endif /* __KERNEL__ */ | ||
300 | |||
301 | #endif /* _LINUX_FS_NOTIFY_H */ | 297 | #endif /* _LINUX_FS_NOTIFY_H */ |
diff --git a/include/linux/generic_serial.h b/include/linux/generic_serial.h index 5412da28fa47..110833666e37 100644 --- a/include/linux/generic_serial.h +++ b/include/linux/generic_serial.h | |||
@@ -78,7 +78,7 @@ struct gs_port { | |||
78 | #define GS_DEBUG_WRITE 0x00000040 | 78 | #define GS_DEBUG_WRITE 0x00000040 |
79 | 79 | ||
80 | #ifdef __KERNEL__ | 80 | #ifdef __KERNEL__ |
81 | void gs_put_char(struct tty_struct *tty, unsigned char ch); | 81 | int gs_put_char(struct tty_struct *tty, unsigned char ch); |
82 | int gs_write(struct tty_struct *tty, | 82 | int gs_write(struct tty_struct *tty, |
83 | const unsigned char *buf, int count); | 83 | const unsigned char *buf, int count); |
84 | int gs_write_room(struct tty_struct *tty); | 84 | int gs_write_room(struct tty_struct *tty); |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 56f3236da829..31a4d653389f 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -266,6 +266,21 @@ extern ktime_t ktime_get_real(void); | |||
266 | extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, | 266 | extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, |
267 | enum hrtimer_mode mode); | 267 | enum hrtimer_mode mode); |
268 | 268 | ||
269 | #ifdef CONFIG_DEBUG_OBJECTS_TIMERS | ||
270 | extern void hrtimer_init_on_stack(struct hrtimer *timer, clockid_t which_clock, | ||
271 | enum hrtimer_mode mode); | ||
272 | |||
273 | extern void destroy_hrtimer_on_stack(struct hrtimer *timer); | ||
274 | #else | ||
275 | static inline void hrtimer_init_on_stack(struct hrtimer *timer, | ||
276 | clockid_t which_clock, | ||
277 | enum hrtimer_mode mode) | ||
278 | { | ||
279 | hrtimer_init(timer, which_clock, mode); | ||
280 | } | ||
281 | static inline void destroy_hrtimer_on_stack(struct hrtimer *timer) { } | ||
282 | #endif | ||
283 | |||
269 | /* Basic timer operations: */ | 284 | /* Basic timer operations: */ |
270 | extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, | 285 | extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, |
271 | const enum hrtimer_mode mode); | 286 | const enum hrtimer_mode mode); |
diff --git a/include/linux/hw_random.h b/include/linux/hw_random.h index 85d11916e9ea..7244456e7e65 100644 --- a/include/linux/hw_random.h +++ b/include/linux/hw_random.h | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #ifndef LINUX_HWRANDOM_H_ | 12 | #ifndef LINUX_HWRANDOM_H_ |
13 | #define LINUX_HWRANDOM_H_ | 13 | #define LINUX_HWRANDOM_H_ |
14 | #ifdef __KERNEL__ | ||
15 | 14 | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/list.h> | 16 | #include <linux/list.h> |
@@ -46,5 +45,4 @@ extern int hwrng_register(struct hwrng *rng); | |||
46 | /** Unregister a Hardware Random Number Generator driver. */ | 45 | /** Unregister a Hardware Random Number Generator driver. */ |
47 | extern void hwrng_unregister(struct hwrng *rng); | 46 | extern void hwrng_unregister(struct hwrng *rng); |
48 | 47 | ||
49 | #endif /* __KERNEL__ */ | ||
50 | #endif /* LINUX_HWRANDOM_H_ */ | 48 | #endif /* LINUX_HWRANDOM_H_ */ |
diff --git a/include/linux/i2o.h b/include/linux/i2o.h index f65e58a1d925..7d51cbca49ab 100644 --- a/include/linux/i2o.h +++ b/include/linux/i2o.h | |||
@@ -18,8 +18,6 @@ | |||
18 | #ifndef _I2O_H | 18 | #ifndef _I2O_H |
19 | #define _I2O_H | 19 | #define _I2O_H |
20 | 20 | ||
21 | #ifdef __KERNEL__ /* This file to be included by kernel only */ | ||
22 | |||
23 | #include <linux/i2o-dev.h> | 21 | #include <linux/i2o-dev.h> |
24 | 22 | ||
25 | /* How many different OSM's are we allowing */ | 23 | /* How many different OSM's are we allowing */ |
@@ -1255,5 +1253,4 @@ extern void i2o_dump_message(struct i2o_message *); | |||
1255 | extern void i2o_dump_hrt(struct i2o_controller *c); | 1253 | extern void i2o_dump_hrt(struct i2o_controller *c); |
1256 | extern void i2o_debug_state(struct i2o_controller *c); | 1254 | extern void i2o_debug_state(struct i2o_controller *c); |
1257 | 1255 | ||
1258 | #endif /* __KERNEL__ */ | ||
1259 | #endif /* _I2O_H */ | 1256 | #endif /* _I2O_H */ |
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index 0d9d7ea2c1cc..5f200bac3749 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h | |||
@@ -1,9 +1,6 @@ | |||
1 | #ifndef _LINUX_IF_MACVLAN_H | 1 | #ifndef _LINUX_IF_MACVLAN_H |
2 | #define _LINUX_IF_MACVLAN_H | 2 | #define _LINUX_IF_MACVLAN_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | extern struct sk_buff *(*macvlan_handle_frame_hook)(struct sk_buff *); | 4 | extern struct sk_buff *(*macvlan_handle_frame_hook)(struct sk_buff *); |
7 | 5 | ||
8 | #endif /* __KERNEL__ */ | ||
9 | #endif /* _LINUX_IF_MACVLAN_H */ | 6 | #endif /* _LINUX_IF_MACVLAN_H */ |
diff --git a/include/linux/inet.h b/include/linux/inet.h index 675a7dbe86f8..1354080cf8cf 100644 --- a/include/linux/inet.h +++ b/include/linux/inet.h | |||
@@ -42,11 +42,9 @@ | |||
42 | #ifndef _LINUX_INET_H | 42 | #ifndef _LINUX_INET_H |
43 | #define _LINUX_INET_H | 43 | #define _LINUX_INET_H |
44 | 44 | ||
45 | #ifdef __KERNEL__ | ||
46 | #include <linux/types.h> | 45 | #include <linux/types.h> |
47 | 46 | ||
48 | extern __be32 in_aton(const char *str); | 47 | extern __be32 in_aton(const char *str); |
49 | extern int in4_pton(const char *src, int srclen, u8 *dst, int delim, const char **end); | 48 | extern int in4_pton(const char *src, int srclen, u8 *dst, int delim, const char **end); |
50 | extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const char **end); | 49 | extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const char **end); |
51 | #endif | ||
52 | #endif /* _LINUX_INET_H */ | 50 | #endif /* _LINUX_INET_H */ |
diff --git a/include/linux/isicom.h b/include/linux/isicom.h index 8f4c71759d73..bbd42197298f 100644 --- a/include/linux/isicom.h +++ b/include/linux/isicom.h | |||
@@ -1,11 +1,6 @@ | |||
1 | #ifndef _LINUX_ISICOM_H | 1 | #ifndef _LINUX_ISICOM_H |
2 | #define _LINUX_ISICOM_H | 2 | #define _LINUX_ISICOM_H |
3 | 3 | ||
4 | /*#define ISICOM_DEBUG*/ | ||
5 | /*#define ISICOM_DEBUG_DTR_RTS*/ | ||
6 | |||
7 | #ifdef __KERNEL__ | ||
8 | |||
9 | #define YES 1 | 4 | #define YES 1 |
10 | #define NO 0 | 5 | #define NO 0 |
11 | 6 | ||
@@ -85,6 +80,4 @@ | |||
85 | 80 | ||
86 | #define ISI_TXOK 0x0001 | 81 | #define ISI_TXOK 0x0001 |
87 | 82 | ||
88 | #endif /* __KERNEL__ */ | ||
89 | |||
90 | #endif /* ISICOM_H */ | 83 | #endif /* ISICOM_H */ |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 53839ba265ec..4d46e299afb5 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -338,33 +338,90 @@ extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, | |||
338 | #endif /* __LITTLE_ENDIAN */ | 338 | #endif /* __LITTLE_ENDIAN */ |
339 | 339 | ||
340 | /* | 340 | /* |
341 | * min()/max() macros that also do | 341 | * min()/max()/clamp() macros that also do |
342 | * strict type-checking.. See the | 342 | * strict type-checking.. See the |
343 | * "unnecessary" pointer comparison. | 343 | * "unnecessary" pointer comparison. |
344 | */ | 344 | */ |
345 | #define min(x,y) ({ \ | 345 | #define min(x, y) ({ \ |
346 | typeof(x) _x = (x); \ | 346 | typeof(x) _min1 = (x); \ |
347 | typeof(y) _y = (y); \ | 347 | typeof(y) _min2 = (y); \ |
348 | (void) (&_x == &_y); \ | 348 | (void) (&_min1 == &_min2); \ |
349 | _x < _y ? _x : _y; }) | 349 | _min1 < _min2 ? _min1 : _min2; }) |
350 | 350 | ||
351 | #define max(x,y) ({ \ | 351 | #define max(x, y) ({ \ |
352 | typeof(x) _x = (x); \ | 352 | typeof(x) _max1 = (x); \ |
353 | typeof(y) _y = (y); \ | 353 | typeof(y) _max2 = (y); \ |
354 | (void) (&_x == &_y); \ | 354 | (void) (&_max1 == &_max2); \ |
355 | _x > _y ? _x : _y; }) | 355 | _max1 > _max2 ? _max1 : _max2; }) |
356 | |||
357 | /** | ||
358 | * clamp - return a value clamped to a given range with strict typechecking | ||
359 | * @val: current value | ||
360 | * @min: minimum allowable value | ||
361 | * @max: maximum allowable value | ||
362 | * | ||
363 | * This macro does strict typechecking of min/max to make sure they are of the | ||
364 | * same type as val. See the unnecessary pointer comparisons. | ||
365 | */ | ||
366 | #define clamp(val, min, max) ({ \ | ||
367 | typeof(val) __val = (val); \ | ||
368 | typeof(min) __min = (min); \ | ||
369 | typeof(max) __max = (max); \ | ||
370 | (void) (&__val == &__min); \ | ||
371 | (void) (&__val == &__max); \ | ||
372 | __val = __val < __min ? __min: __val; \ | ||
373 | __val > __max ? __max: __val; }) | ||
356 | 374 | ||
357 | /* | 375 | /* |
358 | * ..and if you can't take the strict | 376 | * ..and if you can't take the strict |
359 | * types, you can specify one yourself. | 377 | * types, you can specify one yourself. |
360 | * | 378 | * |
361 | * Or not use min/max at all, of course. | 379 | * Or not use min/max/clamp at all, of course. |
380 | */ | ||
381 | #define min_t(type, x, y) ({ \ | ||
382 | type __min1 = (x); \ | ||
383 | type __min2 = (y); \ | ||
384 | __min1 < __min2 ? __min1: __min2; }) | ||
385 | |||
386 | #define max_t(type, x, y) ({ \ | ||
387 | type __max1 = (x); \ | ||
388 | type __max2 = (y); \ | ||
389 | __max1 > __max2 ? __max1: __max2; }) | ||
390 | |||
391 | /** | ||
392 | * clamp_t - return a value clamped to a given range using a given type | ||
393 | * @type: the type of variable to use | ||
394 | * @val: current value | ||
395 | * @min: minimum allowable value | ||
396 | * @max: maximum allowable value | ||
397 | * | ||
398 | * This macro does no typechecking and uses temporary variables of type | ||
399 | * 'type' to make all the comparisons. | ||
362 | */ | 400 | */ |
363 | #define min_t(type,x,y) \ | 401 | #define clamp_t(type, val, min, max) ({ \ |
364 | ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; }) | 402 | type __val = (val); \ |
365 | #define max_t(type,x,y) \ | 403 | type __min = (min); \ |
366 | ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) | 404 | type __max = (max); \ |
405 | __val = __val < __min ? __min: __val; \ | ||
406 | __val > __max ? __max: __val; }) | ||
367 | 407 | ||
408 | /** | ||
409 | * clamp_val - return a value clamped to a given range using val's type | ||
410 | * @val: current value | ||
411 | * @min: minimum allowable value | ||
412 | * @max: maximum allowable value | ||
413 | * | ||
414 | * This macro does no typechecking and uses temporary variables of whatever | ||
415 | * type the input argument 'val' is. This is useful when val is an unsigned | ||
416 | * type and min and max are literals that will otherwise be assigned a signed | ||
417 | * integer type. | ||
418 | */ | ||
419 | #define clamp_val(val, min, max) ({ \ | ||
420 | typeof(val) __val = (val); \ | ||
421 | typeof(val) __min = (min); \ | ||
422 | typeof(val) __max = (max); \ | ||
423 | __val = __val < __min ? __min: __val; \ | ||
424 | __val > __max ? __max: __val; }) | ||
368 | 425 | ||
369 | /** | 426 | /** |
370 | * container_of - cast a member of a structure out to the containing structure | 427 | * container_of - cast a member of a structure out to the containing structure |
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h index 404f4464cb1a..29f62e1733ff 100644 --- a/include/linux/kfifo.h +++ b/include/linux/kfifo.h | |||
@@ -21,8 +21,6 @@ | |||
21 | #ifndef _LINUX_KFIFO_H | 21 | #ifndef _LINUX_KFIFO_H |
22 | #define _LINUX_KFIFO_H | 22 | #define _LINUX_KFIFO_H |
23 | 23 | ||
24 | #ifdef __KERNEL__ | ||
25 | |||
26 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
27 | #include <linux/spinlock.h> | 25 | #include <linux/spinlock.h> |
28 | 26 | ||
@@ -151,7 +149,4 @@ static inline unsigned int kfifo_len(struct kfifo *fifo) | |||
151 | return ret; | 149 | return ret; |
152 | } | 150 | } |
153 | 151 | ||
154 | #else | ||
155 | #warning "don't include kernel headers in userspace" | ||
156 | #endif /* __KERNEL__ */ | ||
157 | #endif | 152 | #endif |
diff --git a/include/linux/kobj_map.h b/include/linux/kobj_map.h index bafe178a381f..73717ed9ea79 100644 --- a/include/linux/kobj_map.h +++ b/include/linux/kobj_map.h | |||
@@ -1,5 +1,3 @@ | |||
1 | #ifdef __KERNEL__ | ||
2 | |||
3 | #include <linux/mutex.h> | 1 | #include <linux/mutex.h> |
4 | 2 | ||
5 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); | 3 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); |
@@ -10,5 +8,3 @@ int kobj_map(struct kobj_map *, dev_t, unsigned long, struct module *, | |||
10 | void kobj_unmap(struct kobj_map *, dev_t, unsigned long); | 8 | void kobj_unmap(struct kobj_map *, dev_t, unsigned long); |
11 | struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *); | 9 | struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *); |
12 | struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *); | 10 | struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *); |
13 | |||
14 | #endif | ||
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index caa3f411f15d..39e709f88aa0 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -16,8 +16,6 @@ | |||
16 | #ifndef _KOBJECT_H_ | 16 | #ifndef _KOBJECT_H_ |
17 | #define _KOBJECT_H_ | 17 | #define _KOBJECT_H_ |
18 | 18 | ||
19 | #ifdef __KERNEL__ | ||
20 | |||
21 | #include <linux/types.h> | 19 | #include <linux/types.h> |
22 | #include <linux/list.h> | 20 | #include <linux/list.h> |
23 | #include <linux/sysfs.h> | 21 | #include <linux/sysfs.h> |
@@ -224,5 +222,4 @@ static inline int kobject_action_type(const char *buf, size_t count, | |||
224 | { return -EINVAL; } | 222 | { return -EINVAL; } |
225 | #endif | 223 | #endif |
226 | 224 | ||
227 | #endif /* __KERNEL__ */ | ||
228 | #endif /* _KOBJECT_H_ */ | 225 | #endif /* _KOBJECT_H_ */ |
diff --git a/include/linux/kref.h b/include/linux/kref.h index 5d185635786e..0cef6badd6fb 100644 --- a/include/linux/kref.h +++ b/include/linux/kref.h | |||
@@ -15,8 +15,6 @@ | |||
15 | #ifndef _KREF_H_ | 15 | #ifndef _KREF_H_ |
16 | #define _KREF_H_ | 16 | #define _KREF_H_ |
17 | 17 | ||
18 | #ifdef __KERNEL__ | ||
19 | |||
20 | #include <linux/types.h> | 18 | #include <linux/types.h> |
21 | #include <asm/atomic.h> | 19 | #include <asm/atomic.h> |
22 | 20 | ||
@@ -29,5 +27,4 @@ void kref_init(struct kref *kref); | |||
29 | void kref_get(struct kref *kref); | 27 | void kref_get(struct kref *kref); |
30 | int kref_put(struct kref *kref, void (*release) (struct kref *kref)); | 28 | int kref_put(struct kref *kref, void (*release) (struct kref *kref)); |
31 | 29 | ||
32 | #endif /* __KERNEL__ */ | ||
33 | #endif /* _KREF_H_ */ | 30 | #endif /* _KREF_H_ */ |
diff --git a/include/linux/list.h b/include/linux/list.h index 7627508f1b74..08cf4f651889 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _LINUX_LIST_H | 1 | #ifndef _LINUX_LIST_H |
2 | #define _LINUX_LIST_H | 2 | #define _LINUX_LIST_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/stddef.h> | 4 | #include <linux/stddef.h> |
7 | #include <linux/poison.h> | 5 | #include <linux/poison.h> |
8 | #include <linux/prefetch.h> | 6 | #include <linux/prefetch.h> |
@@ -983,7 +981,4 @@ static inline void hlist_add_after_rcu(struct hlist_node *prev, | |||
983 | ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ | 981 | ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ |
984 | pos = rcu_dereference(pos->next)) | 982 | pos = rcu_dereference(pos->next)) |
985 | 983 | ||
986 | #else | ||
987 | #warning "don't include kernel headers in userspace" | ||
988 | #endif /* __KERNEL__ */ | ||
989 | #endif | 984 | #endif |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index aad98003176f..c463cd8a15a4 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _LINUX_MMZONE_H | 1 | #ifndef _LINUX_MMZONE_H |
2 | #define _LINUX_MMZONE_H | 2 | #define _LINUX_MMZONE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
6 | #ifndef __GENERATING_BOUNDS_H | 5 | #ifndef __GENERATING_BOUNDS_H |
7 | 6 | ||
@@ -97,6 +96,7 @@ enum zone_stat_item { | |||
97 | NR_UNSTABLE_NFS, /* NFS unstable pages */ | 96 | NR_UNSTABLE_NFS, /* NFS unstable pages */ |
98 | NR_BOUNCE, | 97 | NR_BOUNCE, |
99 | NR_VMSCAN_WRITE, | 98 | NR_VMSCAN_WRITE, |
99 | NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ | ||
100 | #ifdef CONFIG_NUMA | 100 | #ifdef CONFIG_NUMA |
101 | NUMA_HIT, /* allocated in intended node */ | 101 | NUMA_HIT, /* allocated in intended node */ |
102 | NUMA_MISS, /* allocated in non intended node */ | 102 | NUMA_MISS, /* allocated in non intended node */ |
@@ -1004,5 +1004,4 @@ unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long); | |||
1004 | 1004 | ||
1005 | #endif /* !__GENERATING_BOUNDS.H */ | 1005 | #endif /* !__GENERATING_BOUNDS.H */ |
1006 | #endif /* !__ASSEMBLY__ */ | 1006 | #endif /* !__ASSEMBLY__ */ |
1007 | #endif /* __KERNEL__ */ | ||
1008 | #endif /* _LINUX_MMZONE_H */ | 1007 | #endif /* _LINUX_MMZONE_H */ |
diff --git a/include/linux/mount.h b/include/linux/mount.h index b4836d58f428..4374d1adeb4b 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | #ifndef _LINUX_MOUNT_H | 11 | #ifndef _LINUX_MOUNT_H |
12 | #define _LINUX_MOUNT_H | 12 | #define _LINUX_MOUNT_H |
13 | #ifdef __KERNEL__ | ||
14 | 13 | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/list.h> | 15 | #include <linux/list.h> |
@@ -114,5 +113,4 @@ extern void mark_mounts_for_expiry(struct list_head *mounts); | |||
114 | extern spinlock_t vfsmount_lock; | 113 | extern spinlock_t vfsmount_lock; |
115 | extern dev_t name_to_dev_t(char *name); | 114 | extern dev_t name_to_dev_t(char *name); |
116 | 115 | ||
117 | #endif | ||
118 | #endif /* _LINUX_MOUNT_H */ | 116 | #endif /* _LINUX_MOUNT_H */ |
diff --git a/include/linux/ncp_fs_i.h b/include/linux/ncp_fs_i.h index bdb4c8ae6924..4b0bec477846 100644 --- a/include/linux/ncp_fs_i.h +++ b/include/linux/ncp_fs_i.h | |||
@@ -8,8 +8,6 @@ | |||
8 | #ifndef _LINUX_NCP_FS_I | 8 | #ifndef _LINUX_NCP_FS_I |
9 | #define _LINUX_NCP_FS_I | 9 | #define _LINUX_NCP_FS_I |
10 | 10 | ||
11 | #ifdef __KERNEL__ | ||
12 | |||
13 | /* | 11 | /* |
14 | * This is the ncpfs part of the inode structure. This must contain | 12 | * This is the ncpfs part of the inode structure. This must contain |
15 | * all the information we need to work with an inode after creation. | 13 | * all the information we need to work with an inode after creation. |
@@ -28,6 +26,4 @@ struct ncp_inode_info { | |||
28 | struct inode vfs_inode; | 26 | struct inode vfs_inode; |
29 | }; | 27 | }; |
30 | 28 | ||
31 | #endif /* __KERNEL__ */ | ||
32 | |||
33 | #endif /* _LINUX_NCP_FS_I */ | 29 | #endif /* _LINUX_NCP_FS_I */ |
diff --git a/include/linux/of_device.h b/include/linux/of_device.h index 6dc11959770c..afe338217d91 100644 --- a/include/linux/of_device.h +++ b/include/linux/of_device.h | |||
@@ -1,6 +1,5 @@ | |||
1 | #ifndef _LINUX_OF_DEVICE_H | 1 | #ifndef _LINUX_OF_DEVICE_H |
2 | #define _LINUX_OF_DEVICE_H | 2 | #define _LINUX_OF_DEVICE_H |
3 | #ifdef __KERNEL__ | ||
4 | 3 | ||
5 | #include <linux/device.h> | 4 | #include <linux/device.h> |
6 | #include <linux/of.h> | 5 | #include <linux/of.h> |
@@ -25,5 +24,4 @@ static inline void of_device_free(struct of_device *dev) | |||
25 | of_release_dev(&dev->dev); | 24 | of_release_dev(&dev->dev); |
26 | } | 25 | } |
27 | 26 | ||
28 | #endif /* __KERNEL__ */ | ||
29 | #endif /* _LINUX_OF_DEVICE_H */ | 27 | #endif /* _LINUX_OF_DEVICE_H */ |
diff --git a/include/linux/pid.h b/include/linux/pid.h index c7980810eb09..c21c7e8124a7 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h | |||
@@ -60,7 +60,7 @@ struct pid | |||
60 | /* lists of tasks that use this pid */ | 60 | /* lists of tasks that use this pid */ |
61 | struct hlist_head tasks[PIDTYPE_MAX]; | 61 | struct hlist_head tasks[PIDTYPE_MAX]; |
62 | struct rcu_head rcu; | 62 | struct rcu_head rcu; |
63 | int level; | 63 | unsigned int level; |
64 | struct upid numbers[1]; | 64 | struct upid numbers[1]; |
65 | }; | 65 | }; |
66 | 66 | ||
@@ -89,9 +89,11 @@ extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); | |||
89 | * attach_pid() and detach_pid() must be called with the tasklist_lock | 89 | * attach_pid() and detach_pid() must be called with the tasklist_lock |
90 | * write-held. | 90 | * write-held. |
91 | */ | 91 | */ |
92 | extern int attach_pid(struct task_struct *task, enum pid_type type, | 92 | extern void attach_pid(struct task_struct *task, enum pid_type type, |
93 | struct pid *pid); | 93 | struct pid *pid); |
94 | extern void detach_pid(struct task_struct *task, enum pid_type); | 94 | extern void detach_pid(struct task_struct *task, enum pid_type); |
95 | extern void change_pid(struct task_struct *task, enum pid_type, | ||
96 | struct pid *pid); | ||
95 | extern void transfer_pid(struct task_struct *old, struct task_struct *new, | 97 | extern void transfer_pid(struct task_struct *old, struct task_struct *new, |
96 | enum pid_type); | 98 | enum pid_type); |
97 | 99 | ||
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index fcd61fa2c833..caff5283d15c 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
@@ -20,7 +20,7 @@ struct pid_namespace { | |||
20 | int last_pid; | 20 | int last_pid; |
21 | struct task_struct *child_reaper; | 21 | struct task_struct *child_reaper; |
22 | struct kmem_cache *pid_cachep; | 22 | struct kmem_cache *pid_cachep; |
23 | int level; | 23 | unsigned int level; |
24 | struct pid_namespace *parent; | 24 | struct pid_namespace *parent; |
25 | #ifdef CONFIG_PROC_FS | 25 | #ifdef CONFIG_PROC_FS |
26 | struct vfsmount *proc_mnt; | 26 | struct vfsmount *proc_mnt; |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 1de72cbbe0d1..39a7ee859b67 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
@@ -21,8 +21,6 @@ | |||
21 | #ifndef _LINUX_PM_H | 21 | #ifndef _LINUX_PM_H |
22 | #define _LINUX_PM_H | 22 | #define _LINUX_PM_H |
23 | 23 | ||
24 | #ifdef __KERNEL__ | ||
25 | |||
26 | #include <linux/list.h> | 24 | #include <linux/list.h> |
27 | #include <asm/atomic.h> | 25 | #include <asm/atomic.h> |
28 | #include <asm/errno.h> | 26 | #include <asm/errno.h> |
@@ -225,6 +223,4 @@ extern unsigned int pm_flags; | |||
225 | #define PM_APM 1 | 223 | #define PM_APM 1 |
226 | #define PM_ACPI 2 | 224 | #define PM_ACPI 2 |
227 | 225 | ||
228 | #endif /* __KERNEL__ */ | ||
229 | |||
230 | #endif /* _LINUX_PM_H */ | 226 | #endif /* _LINUX_PM_H */ |
diff --git a/include/linux/pnp.h b/include/linux/pnp.h index b2f05c230f4b..2f3bcf73052c 100644 --- a/include/linux/pnp.h +++ b/include/linux/pnp.h | |||
@@ -6,8 +6,6 @@ | |||
6 | #ifndef _LINUX_PNP_H | 6 | #ifndef _LINUX_PNP_H |
7 | #define _LINUX_PNP_H | 7 | #define _LINUX_PNP_H |
8 | 8 | ||
9 | #ifdef __KERNEL__ | ||
10 | |||
11 | #include <linux/device.h> | 9 | #include <linux/device.h> |
12 | #include <linux/list.h> | 10 | #include <linux/list.h> |
13 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
@@ -466,6 +464,4 @@ static inline void pnp_unregister_driver(struct pnp_driver *drv) { } | |||
466 | #define pnp_dbg(format, arg...) do {} while (0) | 464 | #define pnp_dbg(format, arg...) do {} while (0) |
467 | #endif | 465 | #endif |
468 | 466 | ||
469 | #endif /* __KERNEL__ */ | ||
470 | |||
471 | #endif /* _LINUX_PNP_H */ | 467 | #endif /* _LINUX_PNP_H */ |
diff --git a/include/linux/poison.h b/include/linux/poison.h index a9c31be7052c..9f31683728fd 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h | |||
@@ -10,6 +10,13 @@ | |||
10 | #define LIST_POISON1 ((void *) 0x00100100) | 10 | #define LIST_POISON1 ((void *) 0x00100100) |
11 | #define LIST_POISON2 ((void *) 0x00200200) | 11 | #define LIST_POISON2 ((void *) 0x00200200) |
12 | 12 | ||
13 | /********** include/linux/timer.h **********/ | ||
14 | /* | ||
15 | * Magic number "tsta" to indicate a static timer initializer | ||
16 | * for the object debugging code. | ||
17 | */ | ||
18 | #define TIMER_ENTRY_STATIC ((void *) 0x74737461) | ||
19 | |||
13 | /********** mm/slab.c **********/ | 20 | /********** mm/slab.c **********/ |
14 | /* | 21 | /* |
15 | * Magic nums for obj red zoning. | 22 | * Magic nums for obj red zoning. |
diff --git a/include/linux/profile.h b/include/linux/profile.h index ff576d1db67d..05c1cc736937 100644 --- a/include/linux/profile.h +++ b/include/linux/profile.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _LINUX_PROFILE_H | 1 | #ifndef _LINUX_PROFILE_H |
2 | #define _LINUX_PROFILE_H | 2 | #define _LINUX_PROFILE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
7 | #include <linux/init.h> | 5 | #include <linux/init.h> |
8 | #include <linux/cpumask.h> | 6 | #include <linux/cpumask.h> |
@@ -118,6 +116,4 @@ static inline void unregister_timer_hook(int (*hook)(struct pt_regs *)) | |||
118 | 116 | ||
119 | #endif /* CONFIG_PROFILING */ | 117 | #endif /* CONFIG_PROFILING */ |
120 | 118 | ||
121 | #endif /* __KERNEL__ */ | ||
122 | |||
123 | #endif /* _LINUX_PROFILE_H */ | 119 | #endif /* _LINUX_PROFILE_H */ |
diff --git a/include/linux/proportions.h b/include/linux/proportions.h index 2c3b3cad92be..5afc1b23346d 100644 --- a/include/linux/proportions.h +++ b/include/linux/proportions.h | |||
@@ -78,6 +78,19 @@ void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl) | |||
78 | } | 78 | } |
79 | 79 | ||
80 | /* | 80 | /* |
81 | * Limit the time part in order to ensure there are some bits left for the | ||
82 | * cycle counter and fraction multiply. | ||
83 | */ | ||
84 | #define PROP_MAX_SHIFT (3*BITS_PER_LONG/4) | ||
85 | |||
86 | #define PROP_FRAC_SHIFT (BITS_PER_LONG - PROP_MAX_SHIFT - 1) | ||
87 | #define PROP_FRAC_BASE (1UL << PROP_FRAC_SHIFT) | ||
88 | |||
89 | void __prop_inc_percpu_max(struct prop_descriptor *pd, | ||
90 | struct prop_local_percpu *pl, long frac); | ||
91 | |||
92 | |||
93 | /* | ||
81 | * ----- SINGLE ------ | 94 | * ----- SINGLE ------ |
82 | */ | 95 | */ |
83 | 96 | ||
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index ebe0c17039cf..f98501ba557e 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
@@ -98,6 +98,10 @@ extern void ptrace_untrace(struct task_struct *child); | |||
98 | extern int ptrace_may_attach(struct task_struct *task); | 98 | extern int ptrace_may_attach(struct task_struct *task); |
99 | extern int __ptrace_may_attach(struct task_struct *task); | 99 | extern int __ptrace_may_attach(struct task_struct *task); |
100 | 100 | ||
101 | static inline int ptrace_reparented(struct task_struct *child) | ||
102 | { | ||
103 | return child->real_parent != child->parent; | ||
104 | } | ||
101 | static inline void ptrace_link(struct task_struct *child, | 105 | static inline void ptrace_link(struct task_struct *child, |
102 | struct task_struct *new_parent) | 106 | struct task_struct *new_parent) |
103 | { | 107 | { |
diff --git a/include/linux/raid/md.h b/include/linux/raid/md.h index 8ab630b67fcc..81a1a02d4566 100644 --- a/include/linux/raid/md.h +++ b/include/linux/raid/md.h | |||
@@ -94,6 +94,7 @@ extern int sync_page_io(struct block_device *bdev, sector_t sector, int size, | |||
94 | extern void md_do_sync(mddev_t *mddev); | 94 | extern void md_do_sync(mddev_t *mddev); |
95 | extern void md_new_event(mddev_t *mddev); | 95 | extern void md_new_event(mddev_t *mddev); |
96 | extern void md_allow_write(mddev_t *mddev); | 96 | extern void md_allow_write(mddev_t *mddev); |
97 | extern void md_wait_for_blocked_rdev(mdk_rdev_t *rdev, mddev_t *mddev); | ||
97 | 98 | ||
98 | #endif /* CONFIG_MD */ | 99 | #endif /* CONFIG_MD */ |
99 | #endif | 100 | #endif |
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 7bb6d1abf71e..812ffa590cff 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h | |||
@@ -84,6 +84,10 @@ struct mdk_rdev_s | |||
84 | #define AllReserved 6 /* If whole device is reserved for | 84 | #define AllReserved 6 /* If whole device is reserved for |
85 | * one array */ | 85 | * one array */ |
86 | #define AutoDetected 7 /* added by auto-detect */ | 86 | #define AutoDetected 7 /* added by auto-detect */ |
87 | #define Blocked 8 /* An error occured on an externally | ||
88 | * managed array, don't allow writes | ||
89 | * until it is cleared */ | ||
90 | wait_queue_head_t blocked_wait; | ||
87 | 91 | ||
88 | int desc_nr; /* descriptor index in the superblock */ | 92 | int desc_nr; /* descriptor index in the superblock */ |
89 | int raid_disk; /* role of device in array */ | 93 | int raid_disk; /* role of device in array */ |
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h index b3dccd68629e..b3aa05baab8a 100644 --- a/include/linux/rcuclassic.h +++ b/include/linux/rcuclassic.h | |||
@@ -33,8 +33,6 @@ | |||
33 | #ifndef __LINUX_RCUCLASSIC_H | 33 | #ifndef __LINUX_RCUCLASSIC_H |
34 | #define __LINUX_RCUCLASSIC_H | 34 | #define __LINUX_RCUCLASSIC_H |
35 | 35 | ||
36 | #ifdef __KERNEL__ | ||
37 | |||
38 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
39 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
40 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
@@ -163,5 +161,4 @@ extern long rcu_batches_completed_bh(void); | |||
163 | #define rcu_enter_nohz() do { } while (0) | 161 | #define rcu_enter_nohz() do { } while (0) |
164 | #define rcu_exit_nohz() do { } while (0) | 162 | #define rcu_exit_nohz() do { } while (0) |
165 | 163 | ||
166 | #endif /* __KERNEL__ */ | ||
167 | #endif /* __LINUX_RCUCLASSIC_H */ | 164 | #endif /* __LINUX_RCUCLASSIC_H */ |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 37a642c54871..8082d6587a0f 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -33,8 +33,6 @@ | |||
33 | #ifndef __LINUX_RCUPDATE_H | 33 | #ifndef __LINUX_RCUPDATE_H |
34 | #define __LINUX_RCUPDATE_H | 34 | #define __LINUX_RCUPDATE_H |
35 | 35 | ||
36 | #ifdef __KERNEL__ | ||
37 | |||
38 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
39 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
40 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
@@ -245,5 +243,4 @@ extern long rcu_batches_completed_bh(void); | |||
245 | extern void rcu_init(void); | 243 | extern void rcu_init(void); |
246 | extern int rcu_needs_cpu(int cpu); | 244 | extern int rcu_needs_cpu(int cpu); |
247 | 245 | ||
248 | #endif /* __KERNEL__ */ | ||
249 | #endif /* __LINUX_RCUPDATE_H */ | 246 | #endif /* __LINUX_RCUPDATE_H */ |
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index d038aa6e5ee1..8a05c7e20bc4 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
@@ -33,8 +33,6 @@ | |||
33 | #ifndef __LINUX_RCUPREEMPT_H | 33 | #ifndef __LINUX_RCUPREEMPT_H |
34 | #define __LINUX_RCUPREEMPT_H | 34 | #define __LINUX_RCUPREEMPT_H |
35 | 35 | ||
36 | #ifdef __KERNEL__ | ||
37 | |||
38 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
39 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
40 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
@@ -104,5 +102,4 @@ static inline void rcu_exit_nohz(void) | |||
104 | #define rcu_exit_nohz() do { } while (0) | 102 | #define rcu_exit_nohz() do { } while (0) |
105 | #endif /* CONFIG_NO_HZ */ | 103 | #endif /* CONFIG_NO_HZ */ |
106 | 104 | ||
107 | #endif /* __KERNEL__ */ | ||
108 | #endif /* __LINUX_RCUPREEMPT_H */ | 105 | #endif /* __LINUX_RCUPREEMPT_H */ |
diff --git a/include/linux/rcupreempt_trace.h b/include/linux/rcupreempt_trace.h index 21cd6b2a5c42..b99ae073192a 100644 --- a/include/linux/rcupreempt_trace.h +++ b/include/linux/rcupreempt_trace.h | |||
@@ -32,7 +32,6 @@ | |||
32 | #ifndef __LINUX_RCUPREEMPT_TRACE_H | 32 | #ifndef __LINUX_RCUPREEMPT_TRACE_H |
33 | #define __LINUX_RCUPREEMPT_TRACE_H | 33 | #define __LINUX_RCUPREEMPT_TRACE_H |
34 | 34 | ||
35 | #ifdef __KERNEL__ | ||
36 | #include <linux/types.h> | 35 | #include <linux/types.h> |
37 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
38 | 37 | ||
@@ -95,5 +94,4 @@ extern void rcupreempt_trace_done_remove(struct rcupreempt_trace *trace); | |||
95 | extern void rcupreempt_trace_invoke(struct rcupreempt_trace *trace); | 94 | extern void rcupreempt_trace_invoke(struct rcupreempt_trace *trace); |
96 | extern void rcupreempt_trace_next_add(struct rcupreempt_trace *trace); | 95 | extern void rcupreempt_trace_next_add(struct rcupreempt_trace *trace); |
97 | 96 | ||
98 | #endif /* __KERNEL__ */ | ||
99 | #endif /* __LINUX_RCUPREEMPT_TRACE_H */ | 97 | #endif /* __LINUX_RCUPREEMPT_TRACE_H */ |
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h index db5ef9b83c3f..336ee43ed7d8 100644 --- a/include/linux/reiserfs_fs_sb.h +++ b/include/linux/reiserfs_fs_sb.h | |||
@@ -177,7 +177,6 @@ struct reiserfs_journal { | |||
177 | struct reiserfs_journal_cnode *j_last; /* newest journal block */ | 177 | struct reiserfs_journal_cnode *j_last; /* newest journal block */ |
178 | struct reiserfs_journal_cnode *j_first; /* oldest journal block. start here for traverse */ | 178 | struct reiserfs_journal_cnode *j_first; /* oldest journal block. start here for traverse */ |
179 | 179 | ||
180 | struct file *j_dev_file; | ||
181 | struct block_device *j_dev_bd; | 180 | struct block_device *j_dev_bd; |
182 | int j_1st_reserved_block; /* first block on s_dev of reserved area journal */ | 181 | int j_1st_reserved_block; /* first block on s_dev of reserved area journal */ |
183 | 182 | ||
diff --git a/include/linux/rio.h b/include/linux/rio.h index cfb66bbc0f27..c1c99c9643d3 100644 --- a/include/linux/rio.h +++ b/include/linux/rio.h | |||
@@ -14,8 +14,6 @@ | |||
14 | #ifndef LINUX_RIO_H | 14 | #ifndef LINUX_RIO_H |
15 | #define LINUX_RIO_H | 15 | #define LINUX_RIO_H |
16 | 16 | ||
17 | #ifdef __KERNEL__ | ||
18 | |||
19 | #include <linux/types.h> | 17 | #include <linux/types.h> |
20 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
21 | #include <linux/list.h> | 19 | #include <linux/list.h> |
@@ -331,5 +329,4 @@ extern void rio_close_inb_mbox(struct rio_mport *, int); | |||
331 | extern int rio_open_outb_mbox(struct rio_mport *, void *, int, int); | 329 | extern int rio_open_outb_mbox(struct rio_mport *, void *, int, int); |
332 | extern void rio_close_outb_mbox(struct rio_mport *, int); | 330 | extern void rio_close_outb_mbox(struct rio_mport *, int); |
333 | 331 | ||
334 | #endif /* __KERNEL__ */ | ||
335 | #endif /* LINUX_RIO_H */ | 332 | #endif /* LINUX_RIO_H */ |
diff --git a/include/linux/rio_drv.h b/include/linux/rio_drv.h index 7adb2a1aac92..90987b7bcc1b 100644 --- a/include/linux/rio_drv.h +++ b/include/linux/rio_drv.h | |||
@@ -13,8 +13,6 @@ | |||
13 | #ifndef LINUX_RIO_DRV_H | 13 | #ifndef LINUX_RIO_DRV_H |
14 | #define LINUX_RIO_DRV_H | 14 | #define LINUX_RIO_DRV_H |
15 | 15 | ||
16 | #ifdef __KERNEL__ | ||
17 | |||
18 | #include <linux/types.h> | 16 | #include <linux/types.h> |
19 | #include <linux/ioport.h> | 17 | #include <linux/ioport.h> |
20 | #include <linux/list.h> | 18 | #include <linux/list.h> |
@@ -465,5 +463,4 @@ extern struct rio_dev *rio_get_device(u16 vid, u16 did, struct rio_dev *from); | |||
465 | extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did, | 463 | extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did, |
466 | struct rio_dev *from); | 464 | struct rio_dev *from); |
467 | 465 | ||
468 | #endif /* __KERNEL__ */ | ||
469 | #endif /* LINUX_RIO_DRV_H */ | 466 | #endif /* LINUX_RIO_DRV_H */ |
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 7b524b4109a0..efd348fe8ca7 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h | |||
@@ -9,8 +9,6 @@ | |||
9 | 9 | ||
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | #include <linux/types.h> | 12 | #include <linux/types.h> |
15 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
16 | #include <asm/system.h> | 14 | #include <asm/system.h> |
@@ -90,5 +88,4 @@ extern void up_read_non_owner(struct rw_semaphore *sem); | |||
90 | # define up_read_non_owner(sem) up_read(sem) | 88 | # define up_read_non_owner(sem) up_read(sem) |
91 | #endif | 89 | #endif |
92 | 90 | ||
93 | #endif /* __KERNEL__ */ | ||
94 | #endif /* _LINUX_RWSEM_H */ | 91 | #endif /* _LINUX_RWSEM_H */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 1d02babdb2c7..03c238088aee 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -554,6 +554,14 @@ struct signal_struct { | |||
554 | #define SIGNAL_STOP_DEQUEUED 0x00000002 /* stop signal dequeued */ | 554 | #define SIGNAL_STOP_DEQUEUED 0x00000002 /* stop signal dequeued */ |
555 | #define SIGNAL_STOP_CONTINUED 0x00000004 /* SIGCONT since WCONTINUED reap */ | 555 | #define SIGNAL_STOP_CONTINUED 0x00000004 /* SIGCONT since WCONTINUED reap */ |
556 | #define SIGNAL_GROUP_EXIT 0x00000008 /* group exit in progress */ | 556 | #define SIGNAL_GROUP_EXIT 0x00000008 /* group exit in progress */ |
557 | /* | ||
558 | * Pending notifications to parent. | ||
559 | */ | ||
560 | #define SIGNAL_CLD_STOPPED 0x00000010 | ||
561 | #define SIGNAL_CLD_CONTINUED 0x00000020 | ||
562 | #define SIGNAL_CLD_MASK (SIGNAL_CLD_STOPPED|SIGNAL_CLD_CONTINUED) | ||
563 | |||
564 | #define SIGNAL_UNKILLABLE 0x00000040 /* for init: ignore fatal signals */ | ||
557 | 565 | ||
558 | /* If true, all threads except ->group_exit_task have pending SIGKILL */ | 566 | /* If true, all threads except ->group_exit_task have pending SIGKILL */ |
559 | static inline int signal_group_exit(const struct signal_struct *sig) | 567 | static inline int signal_group_exit(const struct signal_struct *sig) |
@@ -1167,7 +1175,7 @@ struct task_struct { | |||
1167 | struct sighand_struct *sighand; | 1175 | struct sighand_struct *sighand; |
1168 | 1176 | ||
1169 | sigset_t blocked, real_blocked; | 1177 | sigset_t blocked, real_blocked; |
1170 | sigset_t saved_sigmask; /* To be restored with TIF_RESTORE_SIGMASK */ | 1178 | sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */ |
1171 | struct sigpending pending; | 1179 | struct sigpending pending; |
1172 | 1180 | ||
1173 | unsigned long sas_ss_sp; | 1181 | unsigned long sas_ss_sp; |
@@ -1669,7 +1677,10 @@ extern struct pid_namespace init_pid_ns; | |||
1669 | extern struct task_struct *find_task_by_pid_type_ns(int type, int pid, | 1677 | extern struct task_struct *find_task_by_pid_type_ns(int type, int pid, |
1670 | struct pid_namespace *ns); | 1678 | struct pid_namespace *ns); |
1671 | 1679 | ||
1672 | extern struct task_struct *find_task_by_pid(pid_t nr); | 1680 | static inline struct task_struct *__deprecated find_task_by_pid(pid_t nr) |
1681 | { | ||
1682 | return find_task_by_pid_type_ns(PIDTYPE_PID, nr, &init_pid_ns); | ||
1683 | } | ||
1673 | extern struct task_struct *find_task_by_vpid(pid_t nr); | 1684 | extern struct task_struct *find_task_by_vpid(pid_t nr); |
1674 | extern struct task_struct *find_task_by_pid_ns(pid_t nr, | 1685 | extern struct task_struct *find_task_by_pid_ns(pid_t nr, |
1675 | struct pid_namespace *ns); | 1686 | struct pid_namespace *ns); |
@@ -1745,8 +1756,7 @@ extern void zap_other_threads(struct task_struct *p); | |||
1745 | extern int kill_proc(pid_t, int, int); | 1756 | extern int kill_proc(pid_t, int, int); |
1746 | extern struct sigqueue *sigqueue_alloc(void); | 1757 | extern struct sigqueue *sigqueue_alloc(void); |
1747 | extern void sigqueue_free(struct sigqueue *); | 1758 | extern void sigqueue_free(struct sigqueue *); |
1748 | extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); | 1759 | extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group); |
1749 | extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); | ||
1750 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); | 1760 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); |
1751 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); | 1761 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); |
1752 | 1762 | ||
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 5b5369c3c209..a66304a09955 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h | |||
@@ -1,6 +1,5 @@ | |||
1 | #ifndef _LINUX_SEQ_FILE_H | 1 | #ifndef _LINUX_SEQ_FILE_H |
2 | #define _LINUX_SEQ_FILE_H | 2 | #define _LINUX_SEQ_FILE_H |
3 | #ifdef __KERNEL__ | ||
4 | 3 | ||
5 | #include <linux/types.h> | 4 | #include <linux/types.h> |
6 | #include <linux/string.h> | 5 | #include <linux/string.h> |
@@ -69,4 +68,3 @@ extern struct list_head *seq_list_next(void *v, struct list_head *head, | |||
69 | loff_t *ppos); | 68 | loff_t *ppos); |
70 | 69 | ||
71 | #endif | 70 | #endif |
72 | #endif | ||
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 7cb094a82456..d32123ae08ad 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -149,13 +149,15 @@ | |||
149 | /* Freescale ColdFire */ | 149 | /* Freescale ColdFire */ |
150 | #define PORT_MCF 78 | 150 | #define PORT_MCF 78 |
151 | 151 | ||
152 | #define PORT_SC26XX 79 | 152 | /* Blackfin SPORT */ |
153 | 153 | #define PORT_BFIN_SPORT 79 | |
154 | 154 | ||
155 | /* MN10300 on-chip UART numbers */ | 155 | /* MN10300 on-chip UART numbers */ |
156 | #define PORT_MN10300 80 | 156 | #define PORT_MN10300 80 |
157 | #define PORT_MN10300_CTS 81 | 157 | #define PORT_MN10300_CTS 81 |
158 | 158 | ||
159 | #define PORT_SC26XX 82 | ||
160 | |||
159 | #ifdef __KERNEL__ | 161 | #ifdef __KERNEL__ |
160 | 162 | ||
161 | #include <linux/compiler.h> | 163 | #include <linux/compiler.h> |
diff --git a/include/linux/signal.h b/include/linux/signal.h index 42d2e0a948f4..84f997f8aa53 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -362,8 +362,6 @@ int unhandled_signal(struct task_struct *tsk, int sig); | |||
362 | #define sig_kernel_stop(sig) \ | 362 | #define sig_kernel_stop(sig) \ |
363 | (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_STOP_MASK)) | 363 | (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_STOP_MASK)) |
364 | 364 | ||
365 | #define sig_needs_tasklist(sig) ((sig) == SIGCONT) | ||
366 | |||
367 | #define sig_user_defined(t, signr) \ | 365 | #define sig_user_defined(t, signr) \ |
368 | (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \ | 366 | (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \ |
369 | ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN)) | 367 | ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN)) |
diff --git a/include/linux/slab.h b/include/linux/slab.h index f62caaad94e0..805ed4b92f9a 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
@@ -9,8 +9,6 @@ | |||
9 | #ifndef _LINUX_SLAB_H | 9 | #ifndef _LINUX_SLAB_H |
10 | #define _LINUX_SLAB_H | 10 | #define _LINUX_SLAB_H |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | #include <linux/gfp.h> | 12 | #include <linux/gfp.h> |
15 | #include <linux/types.h> | 13 | #include <linux/types.h> |
16 | 14 | ||
@@ -29,6 +27,13 @@ | |||
29 | #define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */ | 27 | #define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */ |
30 | #define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */ | 28 | #define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */ |
31 | 29 | ||
30 | /* Flag to prevent checks on free */ | ||
31 | #ifdef CONFIG_DEBUG_OBJECTS | ||
32 | # define SLAB_DEBUG_OBJECTS 0x00400000UL | ||
33 | #else | ||
34 | # define SLAB_DEBUG_OBJECTS 0x00000000UL | ||
35 | #endif | ||
36 | |||
32 | /* The following flags affect the page allocator grouping pages by mobility */ | 37 | /* The following flags affect the page allocator grouping pages by mobility */ |
33 | #define SLAB_RECLAIM_ACCOUNT 0x00020000UL /* Objects are reclaimable */ | 38 | #define SLAB_RECLAIM_ACCOUNT 0x00020000UL /* Objects are reclaimable */ |
34 | #define SLAB_TEMPORARY SLAB_RECLAIM_ACCOUNT /* Objects are short-lived */ | 39 | #define SLAB_TEMPORARY SLAB_RECLAIM_ACCOUNT /* Objects are short-lived */ |
@@ -276,5 +281,4 @@ extern const struct seq_operations slabinfo_op; | |||
276 | ssize_t slabinfo_write(struct file *, const char __user *, size_t, loff_t *); | 281 | ssize_t slabinfo_write(struct file *, const char __user *, size_t, loff_t *); |
277 | #endif | 282 | #endif |
278 | 283 | ||
279 | #endif /* __KERNEL__ */ | ||
280 | #endif /* _LINUX_SLAB_H */ | 284 | #endif /* _LINUX_SLAB_H */ |
diff --git a/include/linux/smb_fs_i.h b/include/linux/smb_fs_i.h index 8516954a5141..8ccf4eca2c3d 100644 --- a/include/linux/smb_fs_i.h +++ b/include/linux/smb_fs_i.h | |||
@@ -9,7 +9,6 @@ | |||
9 | #ifndef _LINUX_SMB_FS_I | 9 | #ifndef _LINUX_SMB_FS_I |
10 | #define _LINUX_SMB_FS_I | 10 | #define _LINUX_SMB_FS_I |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/fs.h> | 13 | #include <linux/fs.h> |
15 | 14 | ||
@@ -36,4 +35,3 @@ struct smb_inode_info { | |||
36 | }; | 35 | }; |
37 | 36 | ||
38 | #endif | 37 | #endif |
39 | #endif | ||
diff --git a/include/linux/smb_fs_sb.h b/include/linux/smb_fs_sb.h index 3aa97aa4277f..8a060a7040d8 100644 --- a/include/linux/smb_fs_sb.h +++ b/include/linux/smb_fs_sb.h | |||
@@ -9,8 +9,6 @@ | |||
9 | #ifndef _SMB_FS_SB | 9 | #ifndef _SMB_FS_SB |
10 | #define _SMB_FS_SB | 10 | #define _SMB_FS_SB |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | #include <linux/types.h> | 12 | #include <linux/types.h> |
15 | #include <linux/smb.h> | 13 | #include <linux/smb.h> |
16 | 14 | ||
@@ -96,6 +94,4 @@ smb_unlock_server(struct smb_sb_info *server) | |||
96 | up(&(server->sem)); | 94 | up(&(server->sem)); |
97 | } | 95 | } |
98 | 96 | ||
99 | #endif /* __KERNEL__ */ | ||
100 | |||
101 | #endif | 97 | #endif |
diff --git a/include/linux/svga.h b/include/linux/svga.h index 13ad0b82ac28..c59a51a2b0e7 100644 --- a/include/linux/svga.h +++ b/include/linux/svga.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _LINUX_SVGA_H | 1 | #ifndef _LINUX_SVGA_H |
2 | #define _LINUX_SVGA_H | 2 | #define _LINUX_SVGA_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/pci.h> | 4 | #include <linux/pci.h> |
7 | #include <video/vga.h> | 5 | #include <video/vga.h> |
8 | 6 | ||
@@ -122,6 +120,5 @@ void svga_set_timings(const struct svga_timing_regs *tm, struct fb_var_screeninf | |||
122 | 120 | ||
123 | int svga_match_format(const struct svga_fb_format *frm, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix); | 121 | int svga_match_format(const struct svga_fb_format *frm, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix); |
124 | 122 | ||
125 | #endif /* __KERNEL__ */ | ||
126 | #endif /* _LINUX_SVGA_H */ | 123 | #endif /* _LINUX_SVGA_H */ |
127 | 124 | ||
diff --git a/include/linux/textsearch.h b/include/linux/textsearch.h index 004808a6df1d..6f371f24160b 100644 --- a/include/linux/textsearch.h +++ b/include/linux/textsearch.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef __LINUX_TEXTSEARCH_H | 1 | #ifndef __LINUX_TEXTSEARCH_H |
2 | #define __LINUX_TEXTSEARCH_H | 2 | #define __LINUX_TEXTSEARCH_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/types.h> | 4 | #include <linux/types.h> |
7 | #include <linux/list.h> | 5 | #include <linux/list.h> |
8 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
@@ -177,6 +175,4 @@ static inline void *ts_config_priv(struct ts_config *conf) | |||
177 | return ((u8 *) conf + TS_PRIV_ALIGN(sizeof(struct ts_config))); | 175 | return ((u8 *) conf + TS_PRIV_ALIGN(sizeof(struct ts_config))); |
178 | } | 176 | } |
179 | 177 | ||
180 | #endif /* __KERNEL__ */ | ||
181 | |||
182 | #endif | 178 | #endif |
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index accd7bad35b0..38a56477f27a 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h | |||
@@ -92,6 +92,31 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) | |||
92 | #define set_need_resched() set_thread_flag(TIF_NEED_RESCHED) | 92 | #define set_need_resched() set_thread_flag(TIF_NEED_RESCHED) |
93 | #define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED) | 93 | #define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED) |
94 | 94 | ||
95 | #endif | 95 | #if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK |
96 | /* | ||
97 | * An arch can define its own version of set_restore_sigmask() to get the | ||
98 | * job done however works, with or without TIF_RESTORE_SIGMASK. | ||
99 | */ | ||
100 | #define HAVE_SET_RESTORE_SIGMASK 1 | ||
101 | |||
102 | /** | ||
103 | * set_restore_sigmask() - make sure saved_sigmask processing gets done | ||
104 | * | ||
105 | * This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code | ||
106 | * will run before returning to user mode, to process the flag. For | ||
107 | * all callers, TIF_SIGPENDING is already set or it's no harm to set | ||
108 | * it. TIF_RESTORE_SIGMASK need not be in the set of bits that the | ||
109 | * arch code will notice on return to user mode, in case those bits | ||
110 | * are scarce. We set TIF_SIGPENDING here to ensure that the arch | ||
111 | * signal code always gets run when TIF_RESTORE_SIGMASK is set. | ||
112 | */ | ||
113 | static inline void set_restore_sigmask(void) | ||
114 | { | ||
115 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
116 | set_thread_flag(TIF_SIGPENDING); | ||
117 | } | ||
118 | #endif /* TIF_RESTORE_SIGMASK && !HAVE_SET_RESTORE_SIGMASK */ | ||
119 | |||
120 | #endif /* __KERNEL__ */ | ||
96 | 121 | ||
97 | #endif /* _LINUX_THREAD_INFO_H */ | 122 | #endif /* _LINUX_THREAD_INFO_H */ |
diff --git a/include/linux/timer.h b/include/linux/timer.h index 979fefdeb862..d4ba79248a27 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/list.h> | 4 | #include <linux/list.h> |
5 | #include <linux/ktime.h> | 5 | #include <linux/ktime.h> |
6 | #include <linux/stddef.h> | 6 | #include <linux/stddef.h> |
7 | #include <linux/debugobjects.h> | ||
7 | 8 | ||
8 | struct tvec_base; | 9 | struct tvec_base; |
9 | 10 | ||
@@ -25,6 +26,7 @@ struct timer_list { | |||
25 | extern struct tvec_base boot_tvec_bases; | 26 | extern struct tvec_base boot_tvec_bases; |
26 | 27 | ||
27 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ | 28 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ |
29 | .entry = { .prev = TIMER_ENTRY_STATIC }, \ | ||
28 | .function = (_function), \ | 30 | .function = (_function), \ |
29 | .expires = (_expires), \ | 31 | .expires = (_expires), \ |
30 | .data = (_data), \ | 32 | .data = (_data), \ |
@@ -38,6 +40,17 @@ extern struct tvec_base boot_tvec_bases; | |||
38 | void init_timer(struct timer_list *timer); | 40 | void init_timer(struct timer_list *timer); |
39 | void init_timer_deferrable(struct timer_list *timer); | 41 | void init_timer_deferrable(struct timer_list *timer); |
40 | 42 | ||
43 | #ifdef CONFIG_DEBUG_OBJECTS_TIMERS | ||
44 | extern void init_timer_on_stack(struct timer_list *timer); | ||
45 | extern void destroy_timer_on_stack(struct timer_list *timer); | ||
46 | #else | ||
47 | static inline void destroy_timer_on_stack(struct timer_list *timer) { } | ||
48 | static inline void init_timer_on_stack(struct timer_list *timer) | ||
49 | { | ||
50 | init_timer(timer); | ||
51 | } | ||
52 | #endif | ||
53 | |||
41 | static inline void setup_timer(struct timer_list * timer, | 54 | static inline void setup_timer(struct timer_list * timer, |
42 | void (*function)(unsigned long), | 55 | void (*function)(unsigned long), |
43 | unsigned long data) | 56 | unsigned long data) |
@@ -47,6 +60,15 @@ static inline void setup_timer(struct timer_list * timer, | |||
47 | init_timer(timer); | 60 | init_timer(timer); |
48 | } | 61 | } |
49 | 62 | ||
63 | static inline void setup_timer_on_stack(struct timer_list *timer, | ||
64 | void (*function)(unsigned long), | ||
65 | unsigned long data) | ||
66 | { | ||
67 | timer->function = function; | ||
68 | timer->data = data; | ||
69 | init_timer_on_stack(timer); | ||
70 | } | ||
71 | |||
50 | /** | 72 | /** |
51 | * timer_pending - is a timer pending? | 73 | * timer_pending - is a timer pending? |
52 | * @timer: the timer in question | 74 | * @timer: the timer in question |
@@ -164,5 +186,4 @@ unsigned long __round_jiffies_relative(unsigned long j, int cpu); | |||
164 | unsigned long round_jiffies(unsigned long j); | 186 | unsigned long round_jiffies(unsigned long j); |
165 | unsigned long round_jiffies_relative(unsigned long j); | 187 | unsigned long round_jiffies_relative(unsigned long j); |
166 | 188 | ||
167 | |||
168 | #endif | 189 | #endif |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 265831ccaa88..7f7121f9c968 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -177,27 +177,33 @@ struct signal_struct; | |||
177 | * size each time the window is created or resized anyway. | 177 | * size each time the window is created or resized anyway. |
178 | * - TYT, 9/14/92 | 178 | * - TYT, 9/14/92 |
179 | */ | 179 | */ |
180 | |||
181 | struct tty_operations; | ||
182 | |||
180 | struct tty_struct { | 183 | struct tty_struct { |
181 | int magic; | 184 | int magic; |
182 | struct tty_driver *driver; | 185 | struct tty_driver *driver; |
186 | const struct tty_operations *ops; | ||
183 | int index; | 187 | int index; |
184 | struct tty_ldisc ldisc; | 188 | struct tty_ldisc ldisc; |
185 | struct mutex termios_mutex; | 189 | struct mutex termios_mutex; |
190 | spinlock_t ctrl_lock; | ||
191 | /* Termios values are protected by the termios mutex */ | ||
186 | struct ktermios *termios, *termios_locked; | 192 | struct ktermios *termios, *termios_locked; |
187 | char name[64]; | 193 | char name[64]; |
188 | struct pid *pgrp; | 194 | struct pid *pgrp; /* Protected by ctrl lock */ |
189 | struct pid *session; | 195 | struct pid *session; |
190 | unsigned long flags; | 196 | unsigned long flags; |
191 | int count; | 197 | int count; |
192 | struct winsize winsize; | 198 | struct winsize winsize; /* termios mutex */ |
193 | unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1; | 199 | unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1; |
194 | unsigned char low_latency:1, warned:1; | 200 | unsigned char low_latency:1, warned:1; |
195 | unsigned char ctrl_status; | 201 | unsigned char ctrl_status; /* ctrl_lock */ |
196 | unsigned int receive_room; /* Bytes free for queue */ | 202 | unsigned int receive_room; /* Bytes free for queue */ |
197 | 203 | ||
198 | struct tty_struct *link; | 204 | struct tty_struct *link; |
199 | struct fasync_struct *fasync; | 205 | struct fasync_struct *fasync; |
200 | struct tty_bufhead buf; | 206 | struct tty_bufhead buf; /* Locked internally */ |
201 | int alt_speed; /* For magic substitution of 38400 bps */ | 207 | int alt_speed; /* For magic substitution of 38400 bps */ |
202 | wait_queue_head_t write_wait; | 208 | wait_queue_head_t write_wait; |
203 | wait_queue_head_t read_wait; | 209 | wait_queue_head_t read_wait; |
@@ -211,6 +217,7 @@ struct tty_struct { | |||
211 | /* | 217 | /* |
212 | * The following is data for the N_TTY line discipline. For | 218 | * The following is data for the N_TTY line discipline. For |
213 | * historical reasons, this is included in the tty structure. | 219 | * historical reasons, this is included in the tty structure. |
220 | * Mostly locked by the BKL. | ||
214 | */ | 221 | */ |
215 | unsigned int column; | 222 | unsigned int column; |
216 | unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1; | 223 | unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1; |
@@ -292,8 +299,15 @@ extern void tty_unregister_device(struct tty_driver *driver, unsigned index); | |||
292 | extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp, | 299 | extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp, |
293 | int buflen); | 300 | int buflen); |
294 | extern void tty_write_message(struct tty_struct *tty, char *msg); | 301 | extern void tty_write_message(struct tty_struct *tty, char *msg); |
302 | extern int tty_put_char(struct tty_struct *tty, unsigned char c); | ||
303 | extern int tty_chars_in_buffer(struct tty_struct *tty); | ||
304 | extern int tty_write_room(struct tty_struct *tty); | ||
305 | extern void tty_driver_flush_buffer(struct tty_struct *tty); | ||
306 | extern void tty_throttle(struct tty_struct *tty); | ||
307 | extern void tty_unthrottle(struct tty_struct *tty); | ||
295 | 308 | ||
296 | extern int is_current_pgrp_orphaned(void); | 309 | extern int is_current_pgrp_orphaned(void); |
310 | extern struct pid *tty_get_pgrp(struct tty_struct *tty); | ||
297 | extern int is_ignored(int sig); | 311 | extern int is_ignored(int sig); |
298 | extern int tty_signal(int sig, struct tty_struct *tty); | 312 | extern int tty_signal(int sig, struct tty_struct *tty); |
299 | extern void tty_hangup(struct tty_struct * tty); | 313 | extern void tty_hangup(struct tty_struct * tty); |
@@ -323,8 +337,7 @@ extern void tty_ldisc_put(int); | |||
323 | extern void tty_wakeup(struct tty_struct *tty); | 337 | extern void tty_wakeup(struct tty_struct *tty); |
324 | extern void tty_ldisc_flush(struct tty_struct *tty); | 338 | extern void tty_ldisc_flush(struct tty_struct *tty); |
325 | 339 | ||
326 | extern int tty_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | 340 | extern long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg); |
327 | unsigned long arg); | ||
328 | extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, | 341 | extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, |
329 | unsigned int cmd, unsigned long arg); | 342 | unsigned int cmd, unsigned long arg); |
330 | extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); | 343 | extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); |
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index 21f69aca4505..59f1c0bd8f9c 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
@@ -12,11 +12,15 @@ | |||
12 | * This routine is called when a particular tty device is opened. | 12 | * This routine is called when a particular tty device is opened. |
13 | * This routine is mandatory; if this routine is not filled in, | 13 | * This routine is mandatory; if this routine is not filled in, |
14 | * the attempted open will fail with ENODEV. | 14 | * the attempted open will fail with ENODEV. |
15 | * | ||
16 | * Required method. | ||
15 | * | 17 | * |
16 | * void (*close)(struct tty_struct * tty, struct file * filp); | 18 | * void (*close)(struct tty_struct * tty, struct file * filp); |
17 | * | 19 | * |
18 | * This routine is called when a particular tty device is closed. | 20 | * This routine is called when a particular tty device is closed. |
19 | * | 21 | * |
22 | * Required method. | ||
23 | * | ||
20 | * int (*write)(struct tty_struct * tty, | 24 | * int (*write)(struct tty_struct * tty, |
21 | * const unsigned char *buf, int count); | 25 | * const unsigned char *buf, int count); |
22 | * | 26 | * |
@@ -26,7 +30,9 @@ | |||
26 | * number of characters actually accepted for writing. This | 30 | * number of characters actually accepted for writing. This |
27 | * routine is mandatory. | 31 | * routine is mandatory. |
28 | * | 32 | * |
29 | * void (*put_char)(struct tty_struct *tty, unsigned char ch); | 33 | * Optional: Required for writable devices. |
34 | * | ||
35 | * int (*put_char)(struct tty_struct *tty, unsigned char ch); | ||
30 | * | 36 | * |
31 | * This routine is called by the kernel to write a single | 37 | * This routine is called by the kernel to write a single |
32 | * character to the tty device. If the kernel uses this routine, | 38 | * character to the tty device. If the kernel uses this routine, |
@@ -34,10 +40,18 @@ | |||
34 | * done stuffing characters into the driver. If there is no room | 40 | * done stuffing characters into the driver. If there is no room |
35 | * in the queue, the character is ignored. | 41 | * in the queue, the character is ignored. |
36 | * | 42 | * |
43 | * Optional: Kernel will use the write method if not provided. | ||
44 | * | ||
45 | * Note: Do not call this function directly, call tty_put_char | ||
46 | * | ||
37 | * void (*flush_chars)(struct tty_struct *tty); | 47 | * void (*flush_chars)(struct tty_struct *tty); |
38 | * | 48 | * |
39 | * This routine is called by the kernel after it has written a | 49 | * This routine is called by the kernel after it has written a |
40 | * series of characters to the tty device using put_char(). | 50 | * series of characters to the tty device using put_char(). |
51 | * | ||
52 | * Optional: | ||
53 | * | ||
54 | * Note: Do not call this function directly, call tty_driver_flush_chars | ||
41 | * | 55 | * |
42 | * int (*write_room)(struct tty_struct *tty); | 56 | * int (*write_room)(struct tty_struct *tty); |
43 | * | 57 | * |
@@ -45,6 +59,10 @@ | |||
45 | * will accept for queuing to be written. This number is subject | 59 | * will accept for queuing to be written. This number is subject |
46 | * to change as output buffers get emptied, or if the output flow | 60 | * to change as output buffers get emptied, or if the output flow |
47 | * control is acted. | 61 | * control is acted. |
62 | * | ||
63 | * Required if write method is provided else not needed. | ||
64 | * | ||
65 | * Note: Do not call this function directly, call tty_write_room | ||
48 | * | 66 | * |
49 | * int (*ioctl)(struct tty_struct *tty, struct file * file, | 67 | * int (*ioctl)(struct tty_struct *tty, struct file * file, |
50 | * unsigned int cmd, unsigned long arg); | 68 | * unsigned int cmd, unsigned long arg); |
@@ -53,28 +71,37 @@ | |||
53 | * device-specific ioctl's. If the ioctl number passed in cmd | 71 | * device-specific ioctl's. If the ioctl number passed in cmd |
54 | * is not recognized by the driver, it should return ENOIOCTLCMD. | 72 | * is not recognized by the driver, it should return ENOIOCTLCMD. |
55 | * | 73 | * |
74 | * Optional | ||
75 | * | ||
56 | * long (*compat_ioctl)(struct tty_struct *tty, struct file * file, | 76 | * long (*compat_ioctl)(struct tty_struct *tty, struct file * file, |
57 | * unsigned int cmd, unsigned long arg); | 77 | * unsigned int cmd, unsigned long arg); |
58 | * | 78 | * |
59 | * implement ioctl processing for 32 bit process on 64 bit system | 79 | * implement ioctl processing for 32 bit process on 64 bit system |
80 | * | ||
81 | * Optional | ||
60 | * | 82 | * |
61 | * void (*set_termios)(struct tty_struct *tty, struct ktermios * old); | 83 | * void (*set_termios)(struct tty_struct *tty, struct ktermios * old); |
62 | * | 84 | * |
63 | * This routine allows the tty driver to be notified when | 85 | * This routine allows the tty driver to be notified when |
64 | * device's termios settings have changed. Note that a | 86 | * device's termios settings have changed. |
65 | * well-designed tty driver should be prepared to accept the case | 87 | * |
66 | * where old == NULL, and try to do something rational. | 88 | * Optional: Called under the termios lock |
89 | * | ||
67 | * | 90 | * |
68 | * void (*set_ldisc)(struct tty_struct *tty); | 91 | * void (*set_ldisc)(struct tty_struct *tty); |
69 | * | 92 | * |
70 | * This routine allows the tty driver to be notified when the | 93 | * This routine allows the tty driver to be notified when the |
71 | * device's termios settings have changed. | 94 | * device's termios settings have changed. |
95 | * | ||
96 | * Optional: Called under BKL (currently) | ||
72 | * | 97 | * |
73 | * void (*throttle)(struct tty_struct * tty); | 98 | * void (*throttle)(struct tty_struct * tty); |
74 | * | 99 | * |
75 | * This routine notifies the tty driver that input buffers for | 100 | * This routine notifies the tty driver that input buffers for |
76 | * the line discipline are close to full, and it should somehow | 101 | * the line discipline are close to full, and it should somehow |
77 | * signal that no more characters should be sent to the tty. | 102 | * signal that no more characters should be sent to the tty. |
103 | * | ||
104 | * Optional: Always invoke via tty_throttle(); | ||
78 | * | 105 | * |
79 | * void (*unthrottle)(struct tty_struct * tty); | 106 | * void (*unthrottle)(struct tty_struct * tty); |
80 | * | 107 | * |
@@ -82,21 +109,33 @@ | |||
82 | * that characters can now be sent to the tty without fear of | 109 | * that characters can now be sent to the tty without fear of |
83 | * overrunning the input buffers of the line disciplines. | 110 | * overrunning the input buffers of the line disciplines. |
84 | * | 111 | * |
112 | * Optional: Always invoke via tty_unthrottle(); | ||
113 | * | ||
85 | * void (*stop)(struct tty_struct *tty); | 114 | * void (*stop)(struct tty_struct *tty); |
86 | * | 115 | * |
87 | * This routine notifies the tty driver that it should stop | 116 | * This routine notifies the tty driver that it should stop |
88 | * outputting characters to the tty device. | 117 | * outputting characters to the tty device. |
118 | * | ||
119 | * Optional: | ||
120 | * | ||
121 | * Note: Call stop_tty not this method. | ||
89 | * | 122 | * |
90 | * void (*start)(struct tty_struct *tty); | 123 | * void (*start)(struct tty_struct *tty); |
91 | * | 124 | * |
92 | * This routine notifies the tty driver that it resume sending | 125 | * This routine notifies the tty driver that it resume sending |
93 | * characters to the tty device. | 126 | * characters to the tty device. |
127 | * | ||
128 | * Optional: | ||
129 | * | ||
130 | * Note: Call start_tty not this method. | ||
94 | * | 131 | * |
95 | * void (*hangup)(struct tty_struct *tty); | 132 | * void (*hangup)(struct tty_struct *tty); |
96 | * | 133 | * |
97 | * This routine notifies the tty driver that it should hangup the | 134 | * This routine notifies the tty driver that it should hangup the |
98 | * tty device. | 135 | * tty device. |
99 | * | 136 | * |
137 | * Required: | ||
138 | * | ||
100 | * void (*break_ctl)(struct tty_stuct *tty, int state); | 139 | * void (*break_ctl)(struct tty_stuct *tty, int state); |
101 | * | 140 | * |
102 | * This optional routine requests the tty driver to turn on or | 141 | * This optional routine requests the tty driver to turn on or |
@@ -106,18 +145,26 @@ | |||
106 | * | 145 | * |
107 | * If this routine is implemented, the high-level tty driver will | 146 | * If this routine is implemented, the high-level tty driver will |
108 | * handle the following ioctls: TCSBRK, TCSBRKP, TIOCSBRK, | 147 | * handle the following ioctls: TCSBRK, TCSBRKP, TIOCSBRK, |
109 | * TIOCCBRK. Otherwise, these ioctls will be passed down to the | 148 | * TIOCCBRK. |
110 | * driver to handle. | 149 | * |
150 | * Optional: Required for TCSBRK/BRKP/etc handling. | ||
111 | * | 151 | * |
112 | * void (*wait_until_sent)(struct tty_struct *tty, int timeout); | 152 | * void (*wait_until_sent)(struct tty_struct *tty, int timeout); |
113 | * | 153 | * |
114 | * This routine waits until the device has written out all of the | 154 | * This routine waits until the device has written out all of the |
115 | * characters in its transmitter FIFO. | 155 | * characters in its transmitter FIFO. |
116 | * | 156 | * |
157 | * Optional: If not provided the device is assumed to have no FIFO | ||
158 | * | ||
159 | * Note: Usually correct to call tty_wait_until_sent | ||
160 | * | ||
117 | * void (*send_xchar)(struct tty_struct *tty, char ch); | 161 | * void (*send_xchar)(struct tty_struct *tty, char ch); |
118 | * | 162 | * |
119 | * This routine is used to send a high-priority XON/XOFF | 163 | * This routine is used to send a high-priority XON/XOFF |
120 | * character to the device. | 164 | * character to the device. |
165 | * | ||
166 | * Optional: If not provided then the write method is called under | ||
167 | * the atomic write lock to keep it serialized with the ldisc. | ||
121 | */ | 168 | */ |
122 | 169 | ||
123 | #include <linux/fs.h> | 170 | #include <linux/fs.h> |
@@ -132,7 +179,7 @@ struct tty_operations { | |||
132 | void (*close)(struct tty_struct * tty, struct file * filp); | 179 | void (*close)(struct tty_struct * tty, struct file * filp); |
133 | int (*write)(struct tty_struct * tty, | 180 | int (*write)(struct tty_struct * tty, |
134 | const unsigned char *buf, int count); | 181 | const unsigned char *buf, int count); |
135 | void (*put_char)(struct tty_struct *tty, unsigned char ch); | 182 | int (*put_char)(struct tty_struct *tty, unsigned char ch); |
136 | void (*flush_chars)(struct tty_struct *tty); | 183 | void (*flush_chars)(struct tty_struct *tty); |
137 | int (*write_room)(struct tty_struct *tty); | 184 | int (*write_room)(struct tty_struct *tty); |
138 | int (*chars_in_buffer)(struct tty_struct *tty); | 185 | int (*chars_in_buffer)(struct tty_struct *tty); |
@@ -153,8 +200,6 @@ struct tty_operations { | |||
153 | void (*send_xchar)(struct tty_struct *tty, char ch); | 200 | void (*send_xchar)(struct tty_struct *tty, char ch); |
154 | int (*read_proc)(char *page, char **start, off_t off, | 201 | int (*read_proc)(char *page, char **start, off_t off, |
155 | int count, int *eof, void *data); | 202 | int count, int *eof, void *data); |
156 | int (*write_proc)(struct file *file, const char __user *buffer, | ||
157 | unsigned long count, void *data); | ||
158 | int (*tiocmget)(struct tty_struct *tty, struct file *file); | 203 | int (*tiocmget)(struct tty_struct *tty, struct file *file); |
159 | int (*tiocmset)(struct tty_struct *tty, struct file *file, | 204 | int (*tiocmset)(struct tty_struct *tty, struct file *file, |
160 | unsigned int set, unsigned int clear); | 205 | unsigned int set, unsigned int clear); |
@@ -190,48 +235,13 @@ struct tty_driver { | |||
190 | struct tty_struct **ttys; | 235 | struct tty_struct **ttys; |
191 | struct ktermios **termios; | 236 | struct ktermios **termios; |
192 | struct ktermios **termios_locked; | 237 | struct ktermios **termios_locked; |
193 | void *driver_state; /* only used for the PTY driver */ | 238 | void *driver_state; |
194 | 239 | ||
195 | /* | 240 | /* |
196 | * Interface routines from the upper tty layer to the tty | 241 | * Driver methods |
197 | * driver. Will be replaced with struct tty_operations. | ||
198 | */ | 242 | */ |
199 | int (*open)(struct tty_struct * tty, struct file * filp); | ||
200 | void (*close)(struct tty_struct * tty, struct file * filp); | ||
201 | int (*write)(struct tty_struct * tty, | ||
202 | const unsigned char *buf, int count); | ||
203 | void (*put_char)(struct tty_struct *tty, unsigned char ch); | ||
204 | void (*flush_chars)(struct tty_struct *tty); | ||
205 | int (*write_room)(struct tty_struct *tty); | ||
206 | int (*chars_in_buffer)(struct tty_struct *tty); | ||
207 | int (*ioctl)(struct tty_struct *tty, struct file * file, | ||
208 | unsigned int cmd, unsigned long arg); | ||
209 | long (*compat_ioctl)(struct tty_struct *tty, struct file * file, | ||
210 | unsigned int cmd, unsigned long arg); | ||
211 | void (*set_termios)(struct tty_struct *tty, struct ktermios * old); | ||
212 | void (*throttle)(struct tty_struct * tty); | ||
213 | void (*unthrottle)(struct tty_struct * tty); | ||
214 | void (*stop)(struct tty_struct *tty); | ||
215 | void (*start)(struct tty_struct *tty); | ||
216 | void (*hangup)(struct tty_struct *tty); | ||
217 | void (*break_ctl)(struct tty_struct *tty, int state); | ||
218 | void (*flush_buffer)(struct tty_struct *tty); | ||
219 | void (*set_ldisc)(struct tty_struct *tty); | ||
220 | void (*wait_until_sent)(struct tty_struct *tty, int timeout); | ||
221 | void (*send_xchar)(struct tty_struct *tty, char ch); | ||
222 | int (*read_proc)(char *page, char **start, off_t off, | ||
223 | int count, int *eof, void *data); | ||
224 | int (*write_proc)(struct file *file, const char __user *buffer, | ||
225 | unsigned long count, void *data); | ||
226 | int (*tiocmget)(struct tty_struct *tty, struct file *file); | ||
227 | int (*tiocmset)(struct tty_struct *tty, struct file *file, | ||
228 | unsigned int set, unsigned int clear); | ||
229 | #ifdef CONFIG_CONSOLE_POLL | ||
230 | int (*poll_init)(struct tty_driver *driver, int line, char *options); | ||
231 | int (*poll_get_char)(struct tty_driver *driver, int line); | ||
232 | void (*poll_put_char)(struct tty_driver *driver, int line, char ch); | ||
233 | #endif | ||
234 | 243 | ||
244 | const struct tty_operations *ops; | ||
235 | struct list_head tty_drivers; | 245 | struct list_head tty_drivers; |
236 | }; | 246 | }; |
237 | 247 | ||
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index b7b3362f7717..f462439cc288 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -114,6 +114,9 @@ struct file; | |||
114 | int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *, | 114 | int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *, |
115 | void __user *, size_t *, loff_t *); | 115 | void __user *, size_t *, loff_t *); |
116 | 116 | ||
117 | void get_dirty_limits(long *pbackground, long *pdirty, long *pbdi_dirty, | ||
118 | struct backing_dev_info *bdi); | ||
119 | |||
117 | void page_writeback_init(void); | 120 | void page_writeback_init(void); |
118 | void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, | 121 | void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, |
119 | unsigned long nr_pages_dirtied); | 122 | unsigned long nr_pages_dirtied); |
diff --git a/include/net/compat.h b/include/net/compat.h index 05fa5d0254ab..164cb682e220 100644 --- a/include/net/compat.h +++ b/include/net/compat.h | |||
@@ -42,5 +42,8 @@ extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsi | |||
42 | 42 | ||
43 | extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, int, | 43 | extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, int, |
44 | int (*)(struct sock *, int, int, char __user *, int)); | 44 | int (*)(struct sock *, int, int, char __user *, int)); |
45 | extern int compat_mc_getsockopt(struct sock *, int, int, char __user *, | ||
46 | int __user *, int (*)(struct sock *, int, int, char __user *, | ||
47 | int __user *)); | ||
45 | 48 | ||
46 | #endif /* NET_COMPAT_H */ | 49 | #endif /* NET_COMPAT_H */ |
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 56f3c94ae620..9a51ebad3f1f 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -405,7 +405,8 @@ struct sk_buff; | |||
405 | struct ip_vs_protocol { | 405 | struct ip_vs_protocol { |
406 | struct ip_vs_protocol *next; | 406 | struct ip_vs_protocol *next; |
407 | char *name; | 407 | char *name; |
408 | __u16 protocol; | 408 | u16 protocol; |
409 | u16 num_states; | ||
409 | int dont_defrag; | 410 | int dont_defrag; |
410 | atomic_t appcnt; /* counter of proto app incs */ | 411 | atomic_t appcnt; /* counter of proto app incs */ |
411 | int *timeout_table; /* protocol timeout table */ | 412 | int *timeout_table; /* protocol timeout table */ |
diff --git a/include/net/netfilter/nf_conntrack_tuple.h b/include/net/netfilter/nf_conntrack_tuple.h index 1bb7087833d3..a6874ba22d54 100644 --- a/include/net/netfilter/nf_conntrack_tuple.h +++ b/include/net/netfilter/nf_conntrack_tuple.h | |||
@@ -107,16 +107,6 @@ struct nf_conntrack_tuple_mask | |||
107 | } src; | 107 | } src; |
108 | }; | 108 | }; |
109 | 109 | ||
110 | /* This is optimized opposed to a memset of the whole structure. Everything we | ||
111 | * really care about is the source/destination unions */ | ||
112 | #define NF_CT_TUPLE_U_BLANK(tuple) \ | ||
113 | do { \ | ||
114 | (tuple)->src.u.all = 0; \ | ||
115 | (tuple)->dst.u.all = 0; \ | ||
116 | memset(&(tuple)->src.u3, 0, sizeof((tuple)->src.u3)); \ | ||
117 | memset(&(tuple)->dst.u3, 0, sizeof((tuple)->dst.u3)); \ | ||
118 | } while (0) | ||
119 | |||
120 | #ifdef __KERNEL__ | 110 | #ifdef __KERNEL__ |
121 | 111 | ||
122 | static inline void nf_ct_dump_tuple_ip(const struct nf_conntrack_tuple *t) | 112 | static inline void nf_ct_dump_tuple_ip(const struct nf_conntrack_tuple *t) |
diff --git a/include/net/route.h b/include/net/route.h index c6338802e8f1..fc836ff824cc 100644 --- a/include/net/route.h +++ b/include/net/route.h | |||
@@ -116,7 +116,7 @@ extern int __ip_route_output_key(struct net *, struct rtable **, const struct f | |||
116 | extern int ip_route_output_key(struct net *, struct rtable **, struct flowi *flp); | 116 | extern int ip_route_output_key(struct net *, struct rtable **, struct flowi *flp); |
117 | extern int ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk, int flags); | 117 | extern int ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk, int flags); |
118 | extern int ip_route_input(struct sk_buff*, __be32 dst, __be32 src, u8 tos, struct net_device *devin); | 118 | extern int ip_route_input(struct sk_buff*, __be32 dst, __be32 src, u8 tos, struct net_device *devin); |
119 | extern unsigned short ip_rt_frag_needed(struct net *net, struct iphdr *iph, unsigned short new_mtu); | 119 | extern unsigned short ip_rt_frag_needed(struct net *net, struct iphdr *iph, unsigned short new_mtu, struct net_device *dev); |
120 | extern void ip_rt_send_redirect(struct sk_buff *skb); | 120 | extern void ip_rt_send_redirect(struct sk_buff *skb); |
121 | 121 | ||
122 | extern unsigned inet_addr_type(struct net *net, __be32 addr); | 122 | extern unsigned inet_addr_type(struct net *net, __be32 addr); |