Thanks, Adrian.

  I noticed that some arches that use SFBUF_MAP actually override
only the sf_buf_unmap() routine, and sf_buf_map() matches the
default one.

  Might be a good idea to add SFBUF_UNMAP macro, and override
sf_buf_map()/sf_buf_unmap() separately, to reduce copy-n-paste
a little bit.

On Sat, Sep 06, 2014 at 10:38:33PM +0000, Adrian Chadd wrote:
A> Author: adrian
A> Date: Sat Sep  6 22:38:32 2014
A> New Revision: 271213
A> URL: http://svnweb.freebsd.org/changeset/base/271213
A> 
A> Log:
A>   Implement local sfbuf_map and sfbuf_unmap for MIPS32.
A>   
A>   The pre-rework behaviour was not to keep the cached mappings around after
A>   the sfbuf was used but instead to recycle said mappings.
A>   
A>   PR:                kern/193400
A> 
A> Modified:
A>   head/sys/mips/include/sf_buf.h
A>   head/sys/mips/include/vmparam.h
A> 
A> Modified: head/sys/mips/include/sf_buf.h
A> 
==============================================================================
A> --- head/sys/mips/include/sf_buf.h   Sat Sep  6 22:37:47 2014        
(r271212)
A> +++ head/sys/mips/include/sf_buf.h   Sat Sep  6 22:38:32 2014        
(r271213)
A> @@ -48,4 +48,23 @@ sf_buf_page(struct sf_buf *sf)
A>  }
A>  
A>  #endif /* __mips_n64 */
A> +
A> +#ifndef     __mips_n64      /* in 32 bit mode we manage our own mappings */
A> +
A> +static inline void
A> +sf_buf_map(struct sf_buf *sf, int flags)
A> +{
A> +
A> +    pmap_qenter(sf->kva, &sf->m, 1);
A> +}
A> +
A> +static inline int
A> +sf_buf_unmap(struct sf_buf *sf)
A> +{
A> +    pmap_qremove(sf->kva, 1);
A> +    return (1);
A> +}
A> +
A> +#endif      /* ! __mips_n64 */
A> +
A>  #endif /* !_MACHINE_SF_BUF_H_ */
A> 
A> Modified: head/sys/mips/include/vmparam.h
A> 
==============================================================================
A> --- head/sys/mips/include/vmparam.h  Sat Sep  6 22:37:47 2014        
(r271212)
A> +++ head/sys/mips/include/vmparam.h  Sat Sep  6 22:38:32 2014        
(r271213)
A> @@ -189,6 +189,7 @@
A>  
A>  #ifndef __mips_n64
A>  #define     SFBUF
A> +#define     SFBUF_MAP
A>  #endif
A>  
A>  #endif /* !_MACHINE_VMPARAM_H_ */
A> 

-- 
Totus tuus, Glebius.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to