cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ChangeLog (4406B)


      12003-03-22  Ralph Siemsen <ralphs@netwinder.org>
      2	* Reformat all but softfloat files to get a consistent coding style.
      3	  Used "indent -kr -i8 -ts8 -sob -l132 -ss" and a few manual fixups.
      4	* Removed dead code and fixed function protypes to match definitions.
      5	* Consolidated use of (opcode && MASK_ARITHMETIC_OPCODE) >> 20.
      6	* Make 80-bit precision a compile-time option. (1%)
      7	* Only initialize FPE state once in repeat-FP situations. (6%)
      8
      92002-01-19  Russell King <rmk@arm.linux.org.uk>
     10
     11	* fpa11.h - Add documentation
     12	          - remove userRegisters pointer from this structure.
     13	          - add new method to obtain integer register values.
     14	* softfloat.c - Remove float128
     15	* softfloat.h - Remove float128
     16	* softfloat-specialize - Remove float128
     17
     18	* The FPA11 structure is not a kernel-specific data structure.
     19	  It is used by users of ptrace to examine the values of the
     20	  floating point registers.  Therefore, any changes to the
     21	  FPA11 structure (size or position of elements contained
     22	  within) have to be well thought out.
     23
     24	* Since 128-bit float requires the FPA11 structure to change
     25	  size, it has been removed.  128-bit float is currently unused,
     26	  and needs various things to be re-worked so that we won't
     27	  overflow the available space in the task structure.
     28
     29	* The changes are designed to break any patch that goes on top
     30	  of this code, so that the authors properly review their changes.
     31
     321999-08-19  Scott Bambrough  <scottb@netwinder.org>
     33
     34	* fpmodule.c - Changed version number to 0.95
     35	* fpa11.h - modified FPA11, FPREG structures
     36	* fpa11.c - Changes due to FPA11, FPREG structure alterations.
     37	* fpa11_cpdo.c - Changes due to FPA11, FPREG structure alterations.
     38	* fpa11_cpdt.c - Changes due to FPA11, FPREG structure alterations.
     39	* fpa11_cprt.c - Changes due to FPA11, FPREG structure alterations.
     40	* single_cpdo.c - Changes due to FPA11, FPREG structure alterations.
     41	* double_cpdo.c - Changes due to FPA11, FPREG structure alterations.
     42	* extended_cpdo.c - Changes due to FPA11, FPREG structure alterations.
     43
     44	* I discovered several bugs.  First and worst is that the kernel
     45	  passes in a pointer to the FPE's state area.	This is defined
     46	  as a struct user_fp (see user.h).  This pointer was cast to a
     47	  FPA11*.  Unfortunately FPA11 and user_fp are of different sizes;
     48	  user_fp is smaller.  This meant that the FPE scribbled on things
     49	  below its area, which is bad, as the area is in the thread_struct
     50	  embedded in the process task structure.  Thus we were scribbling
     51	  over one of the most important structures in the entire OS.
     52
     53	* user_fp and FPA11 have now been harmonized.  Most of the changes
     54	  in the above code were dereferencing problems due to moving the
     55	  register type out of FPREG, and getting rid of the union variable
     56	  fpvalue.
     57
     58	* Second I noticed resetFPA11 was not always being called for a
     59	  task.  This should happen on the first floating point exception
     60	  that occurs.	It is controlled by init_flag in FPA11.  The
     61	  comment in the code beside init_flag state the kernel guarantees
     62	  this to be zero.  Not so.  I found that the kernel recycles task
     63	  structures, and that recycled ones may not have init_flag zeroed.
     64	  I couldn't even find anything that guarantees it is zeroed when
     65	  when the task structure is initially allocated.  In any case
     66	  I now initialize the entire FPE state in the thread structure to
     67	  zero when allocated and recycled.  See alloc_task_struct() and
     68	  flush_thread() in arch/arm/process.c.  The change to
     69	  alloc_task_struct() may not be necessary, but I left it in for
     70	  completeness (better safe than sorry).
     71
     721998-11-23  Scott Bambrough  <scottb@netwinder.org>
     73
     74	* README.FPE - fix typo in description of lfm/sfm instructions
     75	* NOTES - Added file to describe known bugs/problems
     76	* fpmodule.c - Changed version number to 0.94
     77
     781998-11-20  Scott Bambrough  <scottb@netwinder.org>
     79
     80	* README.FPE - fix description of URD, NRM instructions
     81	* TODO - remove URD, NRM instructions from TODO list
     82	* single_cpdo.c - implement URD, NRM
     83	* double_cpdo.c - implement URD, NRM
     84	* extended_cpdo.c - implement URD, NRM
     85
     861998-11-19  Scott Bambrough  <scottb@netwinder.org>
     87
     88	* ChangeLog - Added this file to track changes made.
     89	* fpa11.c - added code to initialize register types to typeNone
     90	* fpa11_cpdt.c - fixed bug in storeExtended (typeExtended changed to
     91	  typeDouble in switch statement)